URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 1543
[ Назад ]

Исходное сообщение
"Запретить smtp-соединения на внешние серверы"

Отправлено algor , 19-Авг-04 15:19 
Хочу запретить забор и отправку почты из локалки с/на чужие серверы. Т.е. разрешить соединения на 25 порт только на один IP.
Пишу в iptables (filter):
-A INPUT -p tcp -s my.network -d ! my.ip --dport 25 -j REJECT
Ругается на --dport
Система - ALT Linux 2.0
Что в этой строчке не так? Как можно реальзовать такую штуку иначе?

Содержание

Сообщения в этом обсуждении
"Запретить smtp-соединения на внешние серверы"
Отправлено Александр Лурье , 19-Авг-04 16:07 
>Ругается на --dport

Чтобы работал --dport, достаточно, чтобы был указан протокол (-p tcp, -p udp).
У вас видно, что он указан. Т.е. именно это правило должно работать.
В man iptables написано, что --dport это удобное сокращение от --destination-port, попробуйте, может в AltLinux iptables какой-нибудь перепатченный.


"Запретить smtp-соединения на внешние серверы"
Отправлено algor , 19-Авг-04 16:52 
>>Ругается на --dport
>
>Чтобы работал --dport, достаточно, чтобы был указан протокол (-p tcp, -p udp).
>
>У вас видно, что он указан. Т.е. именно это правило должно работать.
>
>В man iptables написано, что --dport это удобное сокращение от --destination-port, попробуйте,
>может в AltLinux iptables какой-нибудь перепатченный.

Все то же - unknown arg "--destination port"
Записал эту строчку как -A tcp_packets и обрабатываю с другими аналогичными правилами - ругани нет, но и не работает она.


"Запретить smtp-соединения на внешние серверы"
Отправлено Александр Лурье , 19-Авг-04 17:08 
>>>Ругается на --dport
>>Чтобы работал --dport, достаточно, чтобы был указан протокол (-p tcp, -p >Все то же - unknown arg "--destination port"
>Записал эту строчку как -A tcp_packets и обрабатываю с другими аналогичными правилами
>- ругани нет, но и не работает она.

ничего не понял. то есть есть две совершенно одинаковые строчки, которые отличаются только названием цепочки - tcp_packets или INPUT, и одна работает, а другая нет?
можно две точные строки - какая проглатывается, а какая ругается?


"Запретить smtp-соединения на внешние серверы"
Отправлено algor , 19-Авг-04 17:41 
>ничего не понял. то есть есть две совершенно одинаковые строчки, которые отличаются
>только названием цепочки - 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
проглатывается на ура.


"Запретить smtp-соединения на внешние серверы"
Отправлено Александр Лурье , 19-Авг-04 17:50 
>-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

Ответьте пожалуйста, независимо от того, получится или нет.


"Запретить smtp-соединения на внешние серверы"
Отправлено algor , 19-Авг-04 18:12 
>То есть, если вы указываете -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 - заработало. Большое спасибо!