Хочу запретить забор и отправку почты из локалки с/на чужие серверы. Т.е. разрешить соединения на 25 порт только на один IP.
Пишу в iptables (filter):
-A INPUT -p tcp -s my.network -d ! my.ip --dport 25 -j REJECT
Ругается на --dport
Система - ALT Linux 2.0
Что в этой строчке не так? Как можно реальзовать такую штуку иначе?
>Ругается на --dportЧтобы работал --dport, достаточно, чтобы был указан протокол (-p tcp, -p udp).
У вас видно, что он указан. Т.е. именно это правило должно работать.
В man iptables написано, что --dport это удобное сокращение от --destination-port, попробуйте, может в AltLinux iptables какой-нибудь перепатченный.
>>Ругается на --dport
>
>Чтобы работал --dport, достаточно, чтобы был указан протокол (-p tcp, -p udp).
>
>У вас видно, что он указан. Т.е. именно это правило должно работать.
>
>В man iptables написано, что --dport это удобное сокращение от --destination-port, попробуйте,
>может в AltLinux iptables какой-нибудь перепатченный.Все то же - unknown arg "--destination port"
Записал эту строчку как -A tcp_packets и обрабатываю с другими аналогичными правилами - ругани нет, но и не работает она.
>>>Ругается на --dport
>>Чтобы работал --dport, достаточно, чтобы был указан протокол (-p tcp, -p >Все то же - unknown arg "--destination port"
>Записал эту строчку как -A tcp_packets и обрабатываю с другими аналогичными правилами
>- ругани нет, но и не работает она.ничего не понял. то есть есть две совершенно одинаковые строчки, которые отличаются только названием цепочки - tcp_packets или INPUT, и одна работает, а другая нет?
можно две точные строки - какая проглатывается, а какая ругается?
>ничего не понял. то есть есть две совершенно одинаковые строчки, которые отличаются
>только названием цепочки - tcp_packets или INPUT, и одна работает, а
>другая нет?
>можно две точные строки - какая проглатывается, а какая ругается?-A INPUT -p tcp -s my.network -d ! my.ip --destination-port 25 -j REJECT - не проходит.
А вот такая комбинация:
-A INPUT -i eth2 -p tcp -j tcp_packets
-A tcp_packets -p tcp -m tcp -s my.networks -d ! my.ip --dport 25 -j REJECT
проглатывается на ура.
>-A INPUT -p tcp -s my.network -d ! my.ip --destination-port 25 -j
>REJECT - не проходит.
>А вот такая комбинация:
>-A INPUT -i eth2 -p tcp -j tcp_packets
>-A tcp_packets -p tcp -m tcp -s my.networks -d ! my.ip --dport
>25 -j REJECT
>проглатывается на ура.По документации на iptables, цитирую:
MATCH EXTENSIONS
iptables can use extended packet matching modules. These are loaded in two ways: implicitly, when -p or
--protocol is specified, or with the -m or --match options, followed by the matching module name;
и еще:
tcp
These extensions are loaded if `--protocol tcp' is specified. It provides the following options:
конец цитаты.То есть, если вы указываете -p tcp, должен автоматически подгрузиться и модуль iptables "tcp", который уже будет интерпретировать --dport. В последнем варианте у вас явно указана подгрузка -m tcp, поэтому скорее всего оно и работает. Вероятно, что iptables у вас какой-то кривой, как я и предполагал. Если все окажется так, то сработает правило:
-A INPUT -p tcp -m tcp -s my.network -d ! my.ip --dport 25 -j REJECTОтветьте пожалуйста, независимо от того, получится или нет.
>То есть, если вы указываете -p tcp, должен автоматически подгрузиться и модуль
>iptables "tcp", который уже будет интерпретировать --dport. В последнем варианте у
>вас явно указана подгрузка -m tcp, поэтому скорее всего оно и
>работает. Вероятно, что iptables у вас какой-то кривой, как я и
>предполагал. Если все окажется так, то сработает правило:
>-A INPUT -p tcp -m tcp -s my.network -d ! my.ip --dport
>25 -j REJECT
>
>Ответьте пожалуйста, независимо от того, получится или нет.Точно. При явном указании -m tcp - заработало. Большое спасибо!