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

Исходное сообщение
"Правила iptables для входящих соединений."

Отправлено paltusssss , 09-Май-11 12:39 
                                       Здравствуйте!

Какое правило для входящих tcp-соединений на закрытые порты с интерфейса eth0 лучше ипользовать

#Цепочка bad_tcp_packets

iptables -N bad_tcp_packets
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 LOG --log-prefix "New not syn:"
iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP


iptables -A INPUT -p tcp -i eth0 -s 0/0 -m state --state NEW -j bad_tcp_packets
iptables -A INPUT -p tcp -i eth0 -s 0/0 --dport 22 -m state --state NEW -j ssh_check
iptables -A INPUT -p tcp -i eth0 -s 0/0          --dport 80 -j allowed
iptables -A INPUT -p tcp -i eth0 -s 0/0          --dport 25 -j allowed

Нашёл ещё вариант:

iptables -A INPUT -p tcp -i eth0 -s 0/0 --dport 22 -m state --state NEW -j ssh_check
iptables -A INPUT -p tcp -i eth0 -s 0/0          --dport 80 -j allowed
iptables -A INPUT -p tcp -i eth0 -s 0/0          --dport 25 -j allowed
iptables -A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable

Какое из этих правил лучше использовать и чем они отличаются.


Содержание

Сообщения в этом обсуждении
"Правила iptables для входящих соединений."
Отправлено reader , 09-Май-11 21:04 
>[оверквотинг удален]
> Нашёл ещё вариант:
> iptables -A INPUT -p tcp -i eth0 -s 0/0 --dport 22 -m
> state --state NEW -j ssh_check
> iptables -A INPUT -p tcp -i eth0 -s 0/0    
>       --dport 80 -j allowed
> iptables -A INPUT -p tcp -i eth0 -s 0/0    
>       --dport 25 -j allowed
> iptables -A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN
> -j REJECT --reject-with icmp-port-unreachable
> Какое из этих правил лучше использовать и чем они отличаются.

отличается проверками флагов, плюс в первом варианте будет еще и логирование, того что дропнится.

если порт закрыт, то по моему нет смысла проверять флаги для пакетов на закрытый порт


"Правила iptables для входящих соединений."
Отправлено Andrey Mitrofanov , 10-Май-11 12:22 
>  Какое правило для входящих tcp-соединений на закрытые порты с интерфейса eth0

"-j DROP" (*), конечно, но....

> лучше ипользовать

...закрытые порты _лучше_ закрывать общей политикой "запрещено всё, что не разрешено [явными правилами]". См. например, http://www.opennet.me/openforum/vsluhforumID10/3880.html#7 -- проверяем и разрешаем _чётко выписанные порты-сервисы, а в конце - общий DROP (firehol делает ещё и логирование "неизвестных").

(*) для внутренних сетей или отдельных хостов, или отдельных сервисов -- если именно что _нужно_ -- можно отвечать и REJECT-ом. Такой отдельный вид сервиса~~


"Правила iptables для входящих соединений."
Отправлено LSTemp , 15-Май-11 04:11 
>>  Какое правило для входящих tcp-соединений на закрытые порты с интерфейса eth0
> "-j DROP" (*), конечно, но....

повод и возможность для атаки. на другие хосты правда (но подставным источником будешь ты - и все вопросы будут к тебе в конечном счете).

рекомендуется tcp-reset для ack-пакетов пришедших на твой хост, для которых syn-пакетов от тебя не было.

>> лучше ипользовать
> ...закрытые порты _лучше_ закрывать общей политикой "запрещено всё, что не разрешено [явными
> правилами]". См. например, http://www.opennet.me/openforum/vsluhforumID10/3880.html#7
> -- проверяем и разрешаем _чётко выписанные порты-сервисы, а в конце -
> общий DROP (firehol делает ещё и логирование "неизвестных").
> (*) для внутренних сетей или отдельных хостов, или отдельных сервисов -- если
> именно что _нужно_ -- можно отвечать и REJECT-ом. Такой отдельный вид
> сервиса~~