LINUX.ORG.RU
ФорумAdmin

найдите ошибку в конфиге iptables


0

0

что в этом файле неверно, даже если делаю любой порт DROP всё равно телнетом или сканером портов видно что SYN ACK приходит и соединение устанавливается, только с чем??? DROP 80 порт апача уже не видно но телнет соединяется с портом, почему так? вообще мне надо для локальной машины на вход запретить всё кроме разрешённых портов, НО это шлюз у правляемый биллингом, для пользователей в процессе работы добавляется SNAT на второй интерфейс компа (eth0 там у меня adsl модем) для ната нужно форвардить ВСЁ кроме портов сети мелкософта (чтобы мсбласт и сассер траф не гнал соим сканом) Вот то что сейчас... 192,168,3,254 это внутренний ip машины *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] ###################### SASSER AND MSBLAST KILLER ################### -A PREROUTING -d ! 192.168.3.254 -p tcp --dport 135 -j DROP -A PREROUTING -d ! 192.168.3.254 -p tcp --dport 136 -j DROP -A PREROUTING -d ! 192.168.3.254 -p tcp --dport 137 -j DROP -A PREROUTING -d ! 192.168.3.254 -p tcp --dport 138 -j DROP -A PREROUTING -d ! 192.168.3.254 -p tcp --dport 139 -j DROP -A PREROUTING -d ! 192.168.3.254 -p tcp --dport 445 -j DROP #################################################################### COMMIT *mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] COMMIT *filter :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] :INPUT ACCEPT [0:0] -A INPUT -p tcp --dport 135 -j ACCEPT -A INPUT -p tcp --dport 136 -j ACCEPT -A INPUT -p tcp --dport 137 -j ACCEPT -A INPUT -p tcp --dport 138 -j ACCEPT -A INPUT -p tcp --dport 139 -j ACCEPT -A INPUT -p tcp --dport 445 -j ACCEPT -A INPUT -p udp --dport 123 -j ACCEPT -A INPUT -p tcp --dport 5222 -j ACCEPT -A INPUT -p tcp --dport 5555 -j ACCEPT -A INPUT -p udp --dport 5555 -j ACCEPT -A INPUT -p tcp --dport 8767 -j ACCEPT -A INPUT -p tcp --dport 14534 -j ACCEPT -A INPUT -p tcp --dport 22 -j ACCEPT -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -j REJECT -A INPUT -p udp -j ACCEPT COMMIT

anonymous

БЛИН, вот так

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
###################### SASSER AND MSBLAST KILLER ###################
-A PREROUTING -d ! 192.168.3.254 -p tcp --dport 135 -j DROP
-A PREROUTING -d ! 192.168.3.254 -p tcp --dport 136 -j DROP
-A PREROUTING -d ! 192.168.3.254 -p tcp --dport 137 -j DROP
-A PREROUTING -d ! 192.168.3.254 -p tcp --dport 138 -j DROP
-A PREROUTING -d ! 192.168.3.254 -p tcp --dport 139 -j DROP
-A PREROUTING -d ! 192.168.3.254 -p tcp --dport 445 -j DROP
####################################################################
COMMIT
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
*filter
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:INPUT ACCEPT [0:0]
-A INPUT -p tcp  --dport 135 -j ACCEPT
-A INPUT -p tcp  --dport 136 -j ACCEPT
-A INPUT -p tcp  --dport 137 -j ACCEPT
-A INPUT -p tcp  --dport 138 -j ACCEPT
-A INPUT -p tcp  --dport 139 -j ACCEPT
-A INPUT -p tcp  --dport 445 -j ACCEPT
-A INPUT -p udp  --dport 123 -j ACCEPT
-A INPUT -p tcp  --dport 5222 -j ACCEPT
-A INPUT -p tcp  --dport 5555 -j ACCEPT
-A INPUT -p udp --dport 5555 -j ACCEPT
-A INPUT -p tcp  --dport 8767 -j ACCEPT
-A INPUT -p tcp  --dport 14534 -j ACCEPT
-A INPUT -p tcp  --dport 22 -j ACCEPT
-A INPUT -p tcp  --dport 80 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -j REJECT
-A INPUT -p udp -j ACCEPT
COMMIT

anonymous
()
Ответ на: комментарий от anonymous

1. Если хочешь дропать пакеты, делай это в таблице filter, а не в таблице nat.

2. Если ты запускаешь телнет на этой же машине, например так:

telnet 192.168.3.254 xxxx

то input interface = lo, а -A INPUT lo -j ACCEPT.

Не веришь, что input interface в таком случае = lo? Запусти

/sbin/ip route get from 192.168.3.254 to 192.168.3.254

и увидишь

local 192.168.3.254 from 192.168.3.254 dev lo cache <local> mtu 16436 advmss 16396

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

нет телнет с другой машины, и сканер портов тоже все видит, и сниыыером видно что с дропнутый порт приходит syn ack в чём собака?

anonymous
()
Ответ на: комментарий от anonymous

>форвардить все - тогда тебе не таблица INPUT, а таблица FORWARD. Если ты внимательно почитаешь руководство к iptables, то увидишь, что цепочка FORWARD от INPUT и OUTPUT не зависит. Первая для роутинга, вторые - для локальной машины.

Итак, похоже, что сделать тебе нужно так.

IPTABLES=/sbin/iptables
LAN=eth1

$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -F -t nat

$IPTABLES -A FORWARD -p tcp -m multiport --dport 135,136,137,138,139,445 -j DROP
$IPTABLES -A FORWARD -d твоя_подсеть -o $LAN -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

По идее iptables встретят первое правило и пакеты, идущие на порты 135-139, 445, дропнут все пакеты tcp (udp можно послать в сад).

Затем примут все остальное.

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

jackill ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.