iptables (помогите с правилами)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

iptables

Сообщение Voice »

Вот нашел я пару сттей по iptables, но много чего так и не понял:(

Вот составил примерный файл конфигурации, может кто посмотреть, сказать что здесь не так.

Код: Выделить всё

IPTABLES = "/sbin/iptables"

# delete all rules from this chains
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD

# set default chains policy
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# create new chains
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets
$IPTABLES -N bad_tcp_packets


# allow DHCP connections
$IPTABLES  -I INPUT -i eth0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT

# allow all packets from loopback interface
$IPTABLES -A INPUT -p ALL -i lo -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -o lo -j ACCEPT


# redirect packet to another chain
$IPTABLES -A INPUT -p ALL -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i eth0 -j tcp_packets
$IPTABLES -A INPUT -p UDP -i eth0 -j udp_packets
$IPTABLES -A INPUT -p ICMP -i eth0 -j icmp_packets


#
# rules for tcp_packets chain
#
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed


#
# rules for udp_packets chain
#
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT


#
# ICMP rules
#
$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


#
# rules for bad_tcp_packets chain
#
$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 DROP


#
# rules for allowed chain
#
$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


Я вот не пойму какие цепочки проходит пакет. Насколько я понимаю приходящий к нам пакет проходит INPUT -- FORWARD -- OUTPUT. Так ли это? И какой путь проходит исходящий от нашей машины пакет?
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: iptables

Сообщение elide »

приходящий на твою машину пакет проходит INPUT.
исходящий с твоей машины пакет проходит OUTPUT.
FORWARD проходят пакеты, которые отправлены какой-то другой машиной и предназначены для какой-то другой машины. а через тебя они проходят потому как ты - роутер. если ты не роутер, то оставь для FORWARD по умолчанию DROP и вообще забудь, что такая фигня есть.

а правила у тебя странные. такое ощущение, что это был какой-то больший скрипт, из которого ты как-то криво повырезал куски, не совсем представляя, что они делают...
например, зачем тебе

Код: Выделить всё

$IPTABLES -N bad_tcp_packets
#
# rules for bad_tcp_packets chain
#
$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 DROP
если у тебя нет ни одного правила, которое бы отправляло бы пакеты в эту цепочку?
если у тебя одним из первых правил стоит

Код: Выделить всё

$IPTABLES -A INPUT -p ALL -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
то зачем тебе аналогичное правило для цепочки allowed? пакеты, которые RELATED у тебя до allowed все равно не дойдут.... да и вообще нафиг тебе нужна эта цепочка под единственное правило для dport 80 ? почему бы прямо там не прописать -j ACCEPT и не успкоится? вобщем странно все это. либо переделка из другого, либо автогенерация какой-то подозрительной программой.
человек бы такие правила не написал...
слава роботам!
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: iptables

Сообщение Voice »

Мой пакет: Процес -> OUTPUT -> Inet
Мне пакет: Inet -> INPUT -> Процес
Правильно?
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: iptables

Сообщение Voice »

elide писал(а):
25.01.2007 21:12
а правила у тебя странные. такое ощущение, что это был какой-то больший скрипт, из которого ты как-то криво повырезал куски, не совсем представляя, что они делают...

Да, вирезал с одной статти :)

Логику работы правил и цепочек я уже начинаю понимать.
Осталось (пока) три вопроса:
- можете показать пример правил для ICMP пакетов, ну чтоб комп снаружи не пинговался например.
- и как создать правила для ФТП сервера и клиента, Там просто чуть не понятно, соединение для передачи данных устанавливается на нам наперед не известные порты.
- ICQ. Для него нужно разрешить пакеты где порт сервера 5190 и порт назначения 4000 (это пакеты мне от сервера) и наоборот?
Спасибо.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: iptables

Сообщение elide »

отключить пинг можно командой

Код: Выделить всё

echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_all
но если уж очень хочется именно iptables, то

Код: Выделить всё

$IPTABLES -A INPUT -p ICMP --icmp-type echo-request -j DROP #чтоб запросы не приходили
$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-reply -j DROP #чтоб ответы не уходили.
ты можешь спросить, какого диавола будут уходить ответы, если нет запроса... фиг его знает. но лучше перестраховаться (:

для фтп есть два решения. разрешить все исходящие соединения и юзать фтп в passive mode. второй вариант - ip_conntrack_ftp. но, насколько я помню, там это было как-то нетривиально. читай iptables tutorial.

для аськи.... для аськи правильное решение - юзать jabber гейт (:
тогда можно просто открыть 5222 и не иметь проблем (:
слава роботам!
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: iptables

Сообщение Voice »

elide писал(а):
25.01.2007 21:59
для аськи.... для аськи правильное решение - юзать jabber гейт (:
тогда можно просто открыть 5222 и не иметь проблем (:

Возможно, а предложенные мной два правила сработают?
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: iptables

Сообщение elide »

предложенные мной два правила сработают?

откуда ж я знаю... у меня аськи нету... попробуй и посмотри.
но лучше жабер юзай. оно как-то понадёжнее будет.
слава роботам!
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: iptables

Сообщение Voice »

Ок. Очень благодарен за помощь.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: iptables

Сообщение Voice »

Возник еще один мааааленький вопросик.
При перезагрузке все правила файрвола скидаются, насколько я начитался это нормально и нужно просто в автозагру поставить скрипт, который будет их туда опять добавлять.

А как этот самый скрипт в автозагрузку поставить?
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: iptables

Сообщение elide »

сложить куда-нибудь в /etc/init.d и положить симлинк на него в соответствующий рабочему уровню /etc/rc.*
слава роботам!
Спасибо сказали:
Аватара пользователя
shich
Сообщения: 34
ОС: MOPSLinux 5.1

Re: iptables

Сообщение shich »

А есть ли какой-нибудь фаер с графическим интерфейсом? или хотя бы приспособа(интерфейс) для этих таблиц, чтоб вид у них понетнее был?
В детстве я играл в футбол,
А когда подрос - стал играть рок'н'ролл
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: iptables

Сообщение Voice »

shich писал(а):
26.01.2007 23:02
А есть ли какой-нибудь фаер с графическим интерфейсом? или хотя бы приспособа(интерфейс) для этих таблиц, чтоб вид у них понетнее был?

guarddog -> http://www.simonzone.com/software/guarddog/

Ребята проблемка с автозапуском сценария правил для iptables.
Значит положил я его в /etc/init.d/, сделал исолняемым, но приперезагрузке таблицы опять пустые :(
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: iptables

Сообщение elide »

я же написал:
.... и положить симлинк на него в соответствующий рабочему уровню /etc/rc.*
слава роботам!
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: iptables

Сообщение Voice »

elide писал(а):
29.01.2007 16:23
.... и положить симлинк на него в соответствующий рабочему уровню /etc/rc.*

Да я понял но не совсем.
"в соответствующий рабочему уровню /etc/rc.*" -- это куда?
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: iptables

Сообщение elide »

ну у тебя там должны быть папочки типа rc.1 rc.2 rc.3 или как-то так.
вот если у тебя runlevel 3, то клади в rc.3....
что именно не понятно?
слава роботам!
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: iptables

Сообщение Voice »

Код: Выделить всё

lrwxrwxrwx   1 root       root            7 Jan 17 14:00 rc -> rc.d/rc*
lrwxrwxrwx   1 root       root           10 Jan 17 14:00 rc0.d -> rc.d/rc0.d/
lrwxrwxrwx   1 root       root           10 Jan 17 14:00 rc1.d -> rc.d/rc1.d/
lrwxrwxrwx   1 root       root           10 Jan 17 14:00 rc2.d -> rc.d/rc2.d/
lrwxrwxrwx   1 root       root           10 Jan 17 14:00 rc3.d -> rc.d/rc3.d/
lrwxrwxrwx   1 root       root           10 Jan 17 14:00 rc4.d -> rc.d/rc4.d/
lrwxrwxrwx   1 root       root           10 Jan 17 14:00 rc5.d -> rc.d/rc5.d/
lrwxrwxrwx   1 root       root           10 Jan 17 14:00 rc6.d -> rc.d/rc6.d/

Понятно, почти. Так в какой левел ложить? В rc3.d?
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: iptables

Сообщение elide »

так откуда я знаю, в какой ты левел загружаешься?
вот в какой загружаешься, туда и клади. это же твоя машина, а не моя....
слава роботам!
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: iptables

Сообщение Voice »

Ладно, ничего не понял но всеравно спасибо :)
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: iptables

Сообщение elide »

сделай

Код: Выделить всё

grep default /etc/inittab | cut -f2 -d:
и узнаешь, в какую папку писать
слава роботам!
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: iptables

Сообщение Voice »

Так бы и сразу :)
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
4esz
Сообщения: 3
ОС: win xp, gentoo

Re: iptables

Сообщение 4esz »

Добрый день
подскажите плиз
как я понимаю есть 3 вида цепочек INPUT OUTPUT FORWARD
что тогда обозначает
$IPT -N allowed
-N как я понял означает новое правило


$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets
#
# allowed chain
#
$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
#
# TCP rules
#
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
а как понимать вот это?
Спасибо сказали:
Yurik
Сообщения: 46
ОС: FC6

Re: iptables

Сообщение Yurik »

ключ -N задает новую пользовательскую цепочку allowed
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
это надо понимать как ?
я так понимаю разрешить все тср пакеты с син битом. но разрешить кому???

- А это задает новое правило в цепочке allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed

- А это - правило, при выполнении которого пакет переходит в цепочку allowed, там он пропускается если является запросом на установление соединения (флаг SYN) либо если принадлежит уже установленному соединению, остальное сбрасывается. Т.е. в данном случае будут пропускаться пакеты только на/с портов 21 и 22.

А вообще, если ты брал этот скрипт из iptables-tutorial то там все это описано...
В целях природы обуздания, В целях рассеять неученья тьму.
Берем картину мироздания, да! И тупо смотрим что к чему...
(с) братья Стругацкие
Спасибо сказали:
4esz
Сообщения: 3
ОС: win xp, gentoo

Re: iptables

Сообщение 4esz »

А вообще, если ты брал этот скрипт из iptables-tutorial то там все это описано...[quote]
нет я брал не оттуда
а можно плиз ссылку на этот док
Спасибо сказали:
Yurik
Сообщения: 46
ОС: FC6

Re: iptables

Сообщение Yurik »

да пожалуйста - вот. Довольно таки доходчиво все расписано...
Для сохранения правил можно сделать так (для федоры по крайней мере):
создаешь скрипт с правилами, загружаешь его, затем
#iptables-save > /etc/sysconfig/iptables
а если потом еще что-то будешь менять, сохранять можно будет так:
#service iptables save
В целях природы обуздания, В целях рассеять неученья тьму.
Берем картину мироздания, да! И тупо смотрим что к чему...
(с) братья Стругацкие
Спасибо сказали:
4esz
Сообщения: 3
ОС: win xp, gentoo

Re: iptables

Сообщение 4esz »

подскажите плиз как посмотреть какие опции включенны в ядро?
Спасибо сказали: