Пятница, 08 апреля 2016 07:26

Хитрости с iptables

Автор
Оцените материал
(1 Голосовать)

Это будет долгая и длинная статья о том что и как можно делать с помощью iptables. Предпологается что уже у Вас установленны все важные плюшки, а именно

apt-get install conntrack conntrackd libnetfilter-conntrack3 xtables-addons-dkms libnetfilter-queue1 

Небольй трюк по обману сетевых сканеров, но если сканирований будет много, это отразатся на работе процессора

iptables -A INPUT -p tcp -m tcp -m multiport --dports 135,139,1025 -j TARPIT

TARPIT открывает у вас на компьютере TCP/IP порт. Если некая система соединяется с таким портом, то закрыть такое соединение быстро не получится. Соединение зависнет до тех пор, пока само не прервется по таймауту. Причем система, которая инициировала соединение, будет тратить свои системные ресурсы, а наш сервер просто будет останавливать попытки передачи данных, что практически не расходует ресурсов.

Защита SSH от брутфорса

самый просто способ это поставить fail2ban и успокоиться, по молчанию он сам все настроит и сделает, но можно сделать так, если от котого приходит более одно пакета с заголовком NEW в течение 20 секунд, он отправляется в бан

iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 20 -j TARPIT
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT

Фильтр по содержанию пакета

 Предположим нам надо блокировать все запросы которые идут на список от РосКомНадзора (это могут быть и ip и domen имена) а наш сервер это шлюз.

iptables -I FORWARD -s 10.0.0.0/8 -p tcp -m string --algo bm --string "bad-domen.ru" -j DROP

Есть два варианта использования --algo, bm ялвляется самый быстрый.

Защита от SYN-flood

iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

Защита от сканеров портов

iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j DROP

Фильтрация по дате

iptables -A FORWARD -p tcp --dport 80 -m time --timestart 06:00 --timestop 17:00 --weekdays Mon -j REJECT
Заворот трафика на Squid (proxy server)

1. Если прокси сервер на той же машине что и шлюз, то используем редирект (REDIRECT)

iptables -t nat -A PREROUTING -p tcp -s 10.0.0.0/24 -i $int_if -m multiport --dport 80,3128,8080,8081 -j REDIRECT --to-port 3128
2. Если на другой машине (имеет другой адрес)

iptables -t nat -A PREROUTING -i $int_if  -d 10.0.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 10.0.0.124:3128
Проброс портов внутрь сети

iptables -t nat -A PREROUTING -p tcp -d $ext_ip --dport 9000 -j DNAT --to-destination 10.0.0.3:3389
Для того что бы правильно и полностью работали соединения инициированные вашими компами внутри локалки наружу надо разрешить такие соединения

iptables -A FORWARD -i $int_if -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 

Прочитано 3541 раз Последнее изменение Пятница, 08 апреля 2016 08:18

Медиа

Добавить комментарий


Защитный код
Обновить