не восстанавливаются правила iptables

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

Модератор: Bizdelnick

IMB
Сообщения: 2567
ОС: Debian

не восстанавливаются правила iptables

Сообщение IMB »

Доброго дня!
В организации собрали свой почтовый сервер, от старого, находится на внешний площадки, не отказываемся и организовали проброс запросов клиентов на внешний почтовик. Проблема в том, что после перезагрузки правила проброса не отрабатываются, помогает только ручная загрузка из файла.
/etc/network/interfaces

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

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth1
iface eth1 inet static
    address x.x.x.x
    netmask x.x.x.x
    network x.x.x.x
    broadcast x.x.x.x
    gateway x.x.x.x
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 195.14.50.1
    pre-up /sbin/iptables-restore < /etc/network/firewall
    post-down /sbin/iptables-save > /etc/network/firewall

allow-hotplug eth0
iface eth0 inet static
    address 192.168.0.252
    netmask    255.255.255.0

/etc/network/firewall

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

# Generated by iptables-save v1.3.6 on Thu Aug 23 14:08:24 2007
*nat
:PREROUTING ACCEPT [2726:215711]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [11:678]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 120 -j DNAT --to-destination 195.128.120.27:110
-A PREROUTING -i eth0 -p tcp -m tcp --dport 121 -j DNAT --to-destination 194.85.88.226:110
-A POSTROUTING -o eth1 -j SNAT --to-source x.x.x.x
-A OUTPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 120 -j DNAT --to-destination 195.128.120.27:110
-A OUTPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 121 -j DNAT --to-destination 194.85.88.226:110
COMMIT
# Completed on Thu Aug 23 14:08:24 2007
# Generated by iptables-save v1.3.6 on Thu Aug 23 14:08:24 2007
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 10.0.0.0/255.0.0.0 -j DROP
-A INPUT -d 10.0.0.0/255.0.0.0 -j DROP
-A INPUT -s 172.16.0.0/255.240.0.0 -j DROP
-A INPUT -d 172.16.0.0/255.240.0.0 -j DROP
-A INPUT -s 224.0.0.0/240.0.0.0 -j DROP
-A INPUT -d 224.0.0.0/240.0.0.0 -j DROP
-A INPUT -s 240.0.0.0/248.0.0.0 -j DROP
-A INPUT -d 240.0.0.0/248.0.0.0 -j DROP
-A INPUT -s 127.0.0.1 -j DROP
-A INPUT -d 127.0.0.1 -j DROP
-A INPUT -d 192.168.0.255 -i eth0 -p udp -m udp --dport 137:138 -j DROP
-A INPUT -d 192.168.0.255 -i eth0 -p udp -m udp --dport 8765 -j DROP
-A INPUT -d 192.168.0.255 -i eth0 -p tcp -m tcp --dport 135:139 -j DROP
-A INPUT -s 192.168.0.0/255.255.255.0 -i eth0 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 15000:15050 -j ACCEPT
-A INPUT -d x.x.x.x -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -s 10.0.0.0/255.0.0.0 -j DROP
-A OUTPUT -d 10.0.0.0/255.0.0.0 -j DROP
-A OUTPUT -s 172.16.0.0/255.240.0.0 -j DROP
-A OUTPUT -d 172.16.0.0/255.240.0.0 -j DROP
-A OUTPUT -s 224.0.0.0/240.0.0.0 -j DROP
-A OUTPUT -d 224.0.0.0/240.0.0.0 -j DROP
-A OUTPUT -s 240.0.0.0/248.0.0.0 -j DROP
-A OUTPUT -d 240.0.0.0/248.0.0.0 -j DROP
-A OUTPUT -s 192.168.0.252 -j ACCEPT
-A OUTPUT -s x.x.x.x -j ACCEPT
COMMIT
# Completed on Thu Aug 23 14:08:24 2007

Я не понимаю почему не работает. Спасибо.
Спасибо сказали:
Аватара пользователя
mczim
Сообщения: 665
ОС: Debian/Ubuntu

Re: не восстанавливаются правила iptables

Сообщение mczim »

я так понимаю ОС Debian? Где у вас находится файл фаервола? всмысле его местоположение в файловой системе? Нужно что бы он был в /etc/network/if-up.d и были необходимые права!
Я странный...
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: не восстанавливаются правила iptables

Сообщение IMB »

mczim писал(а):
23.08.2007 15:26
я так понимаю ОС Debian? Где у вас находится файл фаервола? всмысле его местоположение в файловой системе? Нужно что бы он был в /etc/network/if-up.d и были необходимые права!

Я понял Вашу мысль, но она имеет смысл только если правила оформлены в виде скрипта. Я же пошел более простым путем - создал файл правил, загрузил его и прописал правила для сохранения/восстановления правил через директивы pre-up/post-down в /etc/network/interfaces. И ведь работает, правила сохраняются и восстанавливаются. Проблемы только с DNAT.
Спасибо сказали:
Аватара пользователя
mczim
Сообщения: 665
ОС: Debian/Ubuntu

Re: не восстанавливаются правила iptables

Сообщение mczim »

никакого особого скрипта не нужно как обысно подгружаешь шел вначале файла и прописываешь правила! ВСЕ, и никаких проблема все работает!
Я странный...
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: не восстанавливаются правила iptables

Сообщение IMB »

Спасибо за совет, попробую. Но хотелось бы понять почему происходит сбой в описанном мной варианте.
Спасибо сказали:
Аватара пользователя
mczim
Сообщения: 665
ОС: Debian/Ubuntu

Re: не восстанавливаются правила iptables

Сообщение mczim »

опиши подробней где у тебя находится файл и как он себя ведет при старте системы?
Я странный...
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: не восстанавливаются правила iptables

Сообщение IMB »

mczim писал(а):
23.08.2007 15:58
опиши подробней где у тебя находится файл и как он себя ведет при старте системы?

Где физически находится файл на мой взгляд абсолютно не принципиально. Итак, как я делал - созданный файл правил я загрузил в память командой sh firewall, где firewall - файл правил. Все нормально загрузилось и правила действуют. Далее я в /etc/network/interfaces прописал команду на сохранение правил в файл при выключении - post-down /sbin/iptables-save > /etc/network/firewall и команду на восстановление правил при загрузке - pre-up /sbin/iptables-restore < etc/network/firewall. Все отрабатывает как надо за исключением DNAT. Замечу что такой же принцип сохранения/восстановления я применяю и на проки-сервере, все работает как положено.
Я не понимаю почему возникают проблемы с DNAT. После перезагрузки я специально просматривал правила, они были корректно загружены и полностью соответствовали тем которые я составлял.
Спасибо сказали:
Аватара пользователя
mczim
Сообщения: 665
ОС: Debian/Ubuntu

Re: не восстанавливаются правила iptables

Сообщение mczim »

на прокси сервере вы так же используете DNAT? он отрабатывает там? если есть!
Я странный...
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: не восстанавливаются правила iptables

Сообщение IMB »

mczim писал(а):
23.08.2007 16:16
на прокси сервере вы так же используете DNAT? он отрабатывает там? если есть!

Нет, там DNAT-а нет. Там используется тот же принцип загрузки/восстановления правил, а именно через директивы pre-up и post-down файла /etc/network/interfaces.
Спасибо сказали:
Аватара пользователя
mczim
Сообщения: 665
ОС: Debian/Ubuntu

Re: не восстанавливаются правила iptables

Сообщение mczim »

IMB писал(а):
23.08.2007 16:45
mczim писал(а):
23.08.2007 16:16
на прокси сервере вы так же используете DNAT? он отрабатывает там? если есть!

Нет, там DNAT-а нет. Там используется тот же принцип загрузки/восстановления правил, а именно через директивы pre-up и post-down файла /etc/network/interfaces.


может стоит почитать об этом? Как ведет себя DNAT при таком подходе применения правил!
Я странный...
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: не восстанавливаются правила iptables

Сообщение IMB »

mczim писал(а):
23.08.2007 16:46
может стоит почитать об этом? Как ведет себя DNAT при таком подходе применения правил!

С удовольствием, а где? Я это к тому что как то неожидал что при использовании DNAT есть такие тонкости. И тогда еще вопрос - чем мой подход применения правил неверен/некорректен? Ведь насколько я понимаю данные директивы, pre-up и иже с ней, именно для того и предназначены - выполнять некие команды до/вовремя/после активации сети.
Где у вас находится файл фаервола? всмысле его местоположение в файловой системе? Нужно что бы он был в /etc/network/if-up.d и были необходимые права!

Спасибо за данный совет. Уже опробовал и все работает. Но на мой взгляд это только один из способов.
Спасибо сказали:
Аватара пользователя
mczim
Сообщения: 665
ОС: Debian/Ubuntu

Re: не восстанавливаются правила iptables

Сообщение mczim »

прочитать естесвенно можно в сети интернет. Ну если работает тот вариант который описал я, почему бы его не использовать?
Я странный...
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: не восстанавливаются правила iptables

Сообщение IMB »

mczim писал(а):
23.08.2007 17:14
прочитать естесвенно можно в сети интернет. Ну если работает тот вариант который описал я, почему бы его не использовать?

Да вариант работает и на данный момент я его использую. Но хочется разобраться почему подругому нет.
А по поводу почитать - дайте хоть ссылку какую. По поводу iptables и DNAT я читал, иначе как все настраивал. Меня очень смущает это -
может стоит почитать об этом? Как ведет себя DNAT при таком подходе применения правил!

Я что то не могу сообразить чем мой подход неверен/уникален мой подход применения правил. Пожалуйста, прошу не из лени или вредности. Просто не могу сообразить что мне искать.
Спасибо сказали:
Аватара пользователя
mczim
Сообщения: 665
ОС: Debian/Ubuntu

Re: не восстанавливаются правила iptables

Сообщение mczim »

я немогу тебе сказать что конкретно, но проблема с iptables-restore, такая проблема существовала еще когда было актуально ядро 2.4.22

FIX: my fault
Я странный...
Спасибо сказали:
Kostman
Сообщения: 10
ОС: Mandriva 2008

Re: не восстанавливаются правила iptables

Сообщение Kostman »

У меня такая проблема была в Мандрива, долго капал.... выяснил, что загрузка правил ни как не влияет на опцию ядра ip_forward (т.е. не ставит в "1"), т.е. её надо туда занести!
Возможно у вас тоже с этим связана проблема?
Чем больше я узнаю людей, тем больше я люблю компьютеры
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: не восстанавливаются правила iptables

Сообщение IMB »

Kostman писал(а):
12.11.2007 17:20
У меня такая проблема была в Мандрива, долго капал.... выяснил, что загрузка правил ни как не влияет на опцию ядра ip_forward (т.е. не ставит в "1"), т.е. её надо туда занести!
Возможно у вас тоже с этим связана проблема?

Интересное предположение, но сомнительное. Почему сомнительное? Потому что ip_forward я выставлял в любом случае, а проблемы возникли только когда понадобился DNAT. Сейчас подгружаю файл с правилами перед понятием интерфейсов, работает.
Но интересно найти причину антагонизма iptables-restore и DNAT-а. Может попозже "покопаю" еще на эту тему.
Спасибо сказали: