Страница 1 из 2
Настройка iptables
Добавлено: 2012-04-16 10:42:48
icb
Linux не использую вообще, но надо настроить простенькое правило в iptales: запретить все соеденения, разрешить только с моего IP.
Подскажите как сделать, а то даже протестировать негде

Re: Настройка iptables
Добавлено: 2012-04-16 12:37:05
Graf
icb писал(а):Linux не использую вообще, но надо настроить простенькое правило в iptales: запретить все соеденения, разрешить только с моего IP.
Подскажите как сделать, а то даже протестировать негде

из от куда и куда? все порты и протоколы?
Re: Настройка iptables
Добавлено: 2012-04-16 12:56:32
icb
из от куда и куда? все порты и протоколы?
Закрыть доступ от всех (по всем протоколам), кроме доступа с моего IP.
Нагуглил такое решение:
Код: Выделить всё
iptables -P INPUT DROP
iptables -A INPUT --source 192.168.1.2 -j ACCEPT
Корректно ли оно?
Re: Настройка iptables
Добавлено: 2012-04-16 14:20:58
Graf
вроде не жарко, но чет недопонимаю.... уж сорри

т.е. есть некий комп (допустим с IP - 192.168.1.1), выхода в инет с этого компа нет, надо разрешить IP - 192.168.1.2 доступ к этому компу(192.168.1.1), а все остальные идут лесом, так?
а сам комп (192.168.1.1) куданить ходить может (должен), или он только для 192.168.1.2 будет работать? Логи вести надо?
Re: Настройка iptables
Добавлено: 2012-04-16 15:08:08
icb
т.е. есть некий комп (допустим с IP - 192.168.1.1), выхода в инет с этого компа нет, надо разрешить IP - 192.168.1.2 доступ к этому компу(192.168.1.1), а все остальные идут лесом, так?
Почти. Наверное я зря использовал подсеть 192.168.x.x - она вводит в заблуждение.
Вот более развернуто: есть хост 111.111.111.111 (IP взят для примера), подключен к интернету (colocation). На нем запущено несколько сервисов (SSH, HTTP, VNC и т.п.).
Я хочу: чтобы с моего IP (222.222.222.222) я мог обращаться ко всем сервисам этого хоста, а другие IP не имели доступа к нему.
а сам комп (192.168.1.1) куданить ходить может (должен), или он только для 192.168.1.2 будет работать? Логи вести надо?
Сам хост (комп) ходить может. Логи нужны (если сложности - можно и без них).
P.S. Это я пытаюсь защитить
IPMI.
Re: Настройка iptables
Добавлено: 2012-04-16 17:00:24
Graf
как-то так..., если я все правильно понял.
Код: Выделить всё
#!/bin/sh
iptables --flush
clear
INET_IP="111.111.111.111"
INET_IFACE="eth1"
# Какой IP смотрит в локалку, если есть
LAN_IP="192.168.1.1"
LAN_IP_RANGE="192.168.1.0/24"
LAN_IFACE="eth0"
LO_IFACE="lo"
LO_IP="127.0.0.1"
IPTABLES="iptables"
# Модули
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
#
# Не обязательные
#
# /sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
# /sbin/modprobe ipt_MASQUERADE
# /sbin/modprobe ip_conntrack_ftp #
# /sbin/modprobe ip_conntrack_irc
# /sbin/modprobe ip_nat_ftp #
# /sbin/modprobe ip_nat_irc
# Если будет форвард
#
echo "1" > /proc/sys/net/ipv4/ip_forward
# Политики по умолчанию, т.е. не поддающие правилам уничтожаются
#
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets
$IPTABLES -A bad_tcp_packets -p TCP --tcp-flags SYN,ACK SYN,ACK -m \
state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j \
LOG --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
# тут пинги и прочие ICMP
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
# Открываем нужные порты, нужному IP
$IPTABLES -A INPUT -p TCP -s 222.222.222.222 -m multiport --port 443,21,22,53 -j ACCEPT
$IPTABLES -A INPUT -p UDP -s 222.222.222.222 -m multiport --port 80,53,123 -j ACCEPT
$IPTABLES -A INPUT -p TCP -m state --state RELATED -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -s $LAN_IP_RANGE -d $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT INPUT packet died: "
#
# если надо форвардить (FORWARD)
#
$IPTABLES -A FORWARD -p TCP -j bad_tcp_packets
# тут пишем кого куда и по каким портам.
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT FORWARD packet died: "
#
# OUTPUT
#
$IPTABLES -A OUTPUT -p TCP -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
--log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
Re: Настройка iptables
Добавлено: 2012-04-17 8:40:51
icb
как-то так...
Сложновато и многовато для простой задачи.
Этими двумя строками я обойтись не смогу?
Код: Выделить всё
iptables -P INPUT DROP
iptables -A INPUT -s 222.222.222.222 -j ACCEPT
Столкнулся со сложностями при вызове некоторых команд:
Код: Выделить всё
# /sbin/modprobe ip_tables
modprobe: could not parse modules.dep
# iptables -A INPUT -s 222.222.222.222 -j ACCEPT
iptables v1.2.11: Couldn't load target `standard':/lib/iptables/libipt_standard.so: cannot open shared object file: No such file or directory
Как можно обойти эти ошибки?
Re: Настройка iptables
Добавлено: 2012-04-17 11:29:16
Graf
icb писал(а):Сложновато и многовато для простой задачи.
Это для более подробного разъяснения (или, чтоб больше напугать

)
http://www.opennet.ru/docs/RUS/iptables
icb писал(а):
Этими двумя строками я обойтись не смогу?
Код: Выделить всё
iptables -P INPUT DROP
iptables -A INPUT -s 222.222.222.222 -j ACCEPT
Судя по тому, что выдало, уже нет.
У тебя старое ядро со старым iptables, а уже 1.4.13 выложено
http://www.netfilter.org/projects/iptab ... loads.html.
И скомпилировано оно у тебя без некоторых модулей.
Давай посмотрим на
Re: Настройка iptables
Добавлено: 2012-04-17 11:36:20
Graf
P.S. Имхо, лучше правила составлять в скрипте, потомучто они в скрипте упорядочены как тебе надо и ты можешь проследить порядок прохождения пакета по цепочкам, а так как хочешь ты, ты просто добавляешь правило вконец цепочки, не отменяя и(или) удаляя старое. Искать где косяк, потом будет гораздо сложней.
Re: Настройка iptables
Добавлено: 2012-04-17 11:48:21
icb
У тебя старое ядро со старым iptables
Обновить его я не могу
Имхо, лучше правила составлять в скрипте, потомучто они в скрипте упорядочены как тебе надо и ты можешь проследить порядок прохождения пакета по цепочкам
Согласен, но кроме этих 2 строк особо ничего в файле и не будет. Если точнее, то
Код: Выделить всё
#!/bin/sh
iptables --flush
iptables -P INPUT DROP
iptables -A INPUT -s 222.222.222.222 -j ACCEPT
и вызов этого скрипта в кроне.
Re: Настройка iptables
Добавлено: 2012-04-17 11:59:14
Graf
icb писал(а):У тебя старое ядро со старым iptables
Обновить его я не могу
И не надо, работает же без проблем.
icb писал(а):Имхо, лучше правила составлять в скрипте, потомучто они в скрипте упорядочены как тебе надо и ты можешь проследить порядок прохождения пакета по цепочкам
Согласен, но кроме этих 2 строк особо ничего в файле и не будет. Если точнее, то
Код: Выделить всё
#!/bin/sh
iptables --flush
iptables -P INPUT DROP
iptables -A INPUT -s 222.222.222.222 -j ACCEPT
и вызов этого скрипта в кроне.
дык ошибку же выдало, значит не сработает.
Столкнулся со сложностями при вызове некоторых команд:
Код: Выделить всё
# iptables -A INPUT -s 222.222.222.222 -j ACCEPT
iptables v1.2.11: Couldn't load target `standard':/lib/iptables/libipt_standard.so: cannot open shared object file: No such file or directory
давай на iptables -L все же поглядим.
Re: Настройка iptables
Добавлено: 2012-04-18 8:49:46
icb
Код: Выделить всё
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Re: Настройка iptables
Добавлено: 2012-04-18 12:07:31
Graf
мдя...
двумя-тремя строками тут не обойтись.
запретить весь INPUT, кроме себя любимого нельзя.
да и для себя открывай только те порты, с которыми будешь работать, зачем тебе более 65 000 портов?

Re: Настройка iptables
Добавлено: 2012-04-18 12:43:02
icb
двумя-тремя строками тут не обойтись.
Что писать?
да и для себя открывай только те порты, с которыми будешь работать, зачем тебе более 65 000 портов?
Думал так проще

Re: Настройка iptables
Добавлено: 2012-04-18 13:03:06
Graf
icb писал(а):двумя-тремя строками тут не обойтись.
Что писать?
запусти скрипт, тот, что я выше давал и смотри логи.
Re: Настройка iptables
Добавлено: 2012-04-18 13:36:31
icb
запусти скрипт, тот, что я выше давал и смотри логи.
Полностью скрипт запускать не решаюсь: если часть правил не отработает, то я не получу доступ к серверу.
Так уже было - отработали правила DROP, а ACCEPT не отработали.
Re: Настройка iptables
Добавлено: 2012-04-19 5:56:44
FiL
icb писал(а):запусти скрипт, тот, что я выше давал и смотри логи.
Полностью скрипт запускать не решаюсь: если часть правил не отработает, то я не получу доступ к серверу.
Так уже было - отработали правила DROP, а ACCEPT не отработали.
Поэтому надо написать скрипт, который сбрасывает все правила и полиси устанавливает в ACCEPT.
И этот скрипт в крон раз в час.
И потом спокойно играть. Если что не так, то максимум через час правила сбросятся.
Ну а далее... далее двух строчек мало. Нужно минимум 3.
Код: Выделить всё
#!/bin/sh
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 222.222.222.222 -j ACCEPT
Re: Настройка iptables
Добавлено: 2012-04-19 6:48:58
Graf
2icb
FiL писал(а):
Поэтому надо написать скрипт, который сбрасывает все правила и полиси устанавливает в ACCEPT.
И этот скрипт в крон раз в час.
И потом спокойно играть. Если что не так, то максимум через час правила сбросятся.
Код: Выделить всё
#!/bin/sh
IPTABLES="/usr/sbin/iptables"
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
Re: Настройка iptables
Добавлено: 2012-04-19 8:55:30
icb
Поэтому надо написать скрипт, который сбрасывает все правила и полиси устанавливает в ACCEPT.
Так проблемы именно в том, что ACCEPT правила не работают (похоже не нравится аргумент -j).
Т.е. можно сколько угодно экспериментировать, но пока правила с ACCEPT не заработают - будет только отрубаться доступ (уже проверял пару раз).
Код: Выделить всё
$IPTABLES -P INPUT ACCEPT
.......
$IPTABLES -F
-F не отменит первое разрешение?
Re: Настройка iptables
Добавлено: 2012-04-19 9:22:01
Graf
icb писал(а):Поэтому надо написать скрипт, который сбрасывает все правила и полиси устанавливает в ACCEPT.
Так проблемы именно в том, что ACCEPT правила не работают (похоже не нравится аргумент -j).
Т.е. можно сколько угодно экспериментировать, но пока правила с ACCEPT не заработают - будет только отрубаться доступ (уже проверял пару раз).
а из чего следует, что ACCEPT не срабатывает? т.е. есть некий вывод ошибки? можно взглянуть?
icb писал(а):
Код: Выделить всё
$IPTABLES -P INPUT ACCEPT
.......
$IPTABLES -F
-F не отменит первое разрешение?
нет.
Код: Выделить всё
# man iptables
..........
-F, --flush [chain]
Flush the selected chain (all the chains in the table if none is given). This is equivalent to deleting all the rules
one by one.
..........
-P, --policy chain target
Set the policy for the chain to the given target. See the section TARGETS for the legal targets. Only built-in (non-
user-defined) chains can have policies, and neither built-in nor user-defined chains can be policy targets.
...........
Re: Настройка iptables
Добавлено: 2012-04-19 9:54:13
icb
а из чего следует, что ACCEPT не срабатывает? т.е. есть некий вывод ошибки? можно взглянуть?
Код: Выделить всё
# iptables -A INPUT -s 222.222.222.222 -j ACCEPT
iptables v1.2.11: Couldn't load target `standard':/lib/iptables/libipt_standard.so: cannot open shared object file: No such file or directory
Re: Настройка iptables
Добавлено: 2012-04-19 16:46:05
FiL
ты определись какую проблему мы тебе решаем - настройка правил фаера или сам факт, что у тебя фаер в принципе не работает?
Это две абсолютно разные, непересекающиеся проблемы. Судя по первому посту - мы тебе помогаем правила написать. А уж настроить систему, чтоб фаервол работал в принципе - это уже тема совершенно другого топика.
Re: Настройка iptables
Добавлено: 2012-04-19 16:58:58
Hrafn
ТС, конфиг фаера полностью покажите... а также если еще что-то касательно его настраивали
Re: Настройка iptables
Добавлено: 2012-04-20 9:03:24
icb
ты определись какую проблему мы тебе решаем - настройка правил фаера или сам факт, что у тебя фаер в принципе не работает?
Проблема одна - запретить все соеденения, разрешить только с моего IP.
Сказать что iptables не работает нельзя - общие правила отрабатывают корректно. И выше было сказано:
Graf писал(а):icb писал(а):У тебя старое ядро со старым iptables
Обновить его я не могу
И не надо, работает же без проблем.
Я сделал вывод, что в новой версии изменился формат правил
конфиг фаера полностью покажите... а также если еще что-то касательно его настраивали
Ничего не настраивал. Откуда оно взялось
уже писал.
Конфига возможно вообще нет (не могу найти).
Re: Настройка iptables
Добавлено: 2012-04-20 9:42:52
Graf
Hrafn писал(а):ТС, конфиг фаера полностью покажите... а также если еще что-то касательно его настраивали
думаю, его вообще нет

, ибо
icb писал(а):Код: Выделить всё
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
2icb
Покажи