Как я могу разрешить TCP-соединения только для 1 порта с помощью iptables на Unbantu? Как я могу также установить максимальное количество пакетов для соединения?

Я использую публичный сервер. Я просто хочу разрешить TCP-соединения, и я хочу ограничить пакет, чтобы предотвратить небольшое дозирование и установить максимальное количество IP / новых подключений в секунду с помощью iptables. Как я могу это сделать?

-1
задан 24 April 2016 в 21:59
1 ответ

Чтобы разрешить входящий трафик только на один порт, вы должны установить политику по умолчанию для iptables chain INPUT в REJECT или DROP. До этого, вы должны, по крайней мере, разрешить tcp-трафик на ssh-порту (вероятно, 22), чтобы не блокировать себя.

iptables -A INPUT -p tcp --dport 22 -J ACCEPT
iptables -P INPUT DROP

Если вы хотите ограничить новые соединения к этому порту, вы можете использовать состояние и недавний модуль. Эта строка устанавливает что-то вроде записи журнала при открытии нового соединения с портом 22.

iptables -I INPUT 1 -p tcp --dport 22 -m state --state NEW -m recent --set

Эта строка проверяет, сколько "записей журнала" было сделано за последние 60 секунд, и если их больше 2 (так что третье новое соединение), то пакеты отбрасываются. Она также обновляет "записи в лог", так что отправитель не сможет открыть новое соединение в течение следующих 60 секунд, и если он попытается сделать это снова, то обновит этот таймер снова.

iptables -I INPUT 2 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

Вы должны позаботиться о том, чтобы эти две линии находились в верхней части линии, которая принимает трафик на порт 22, потому что iptables использует только первую линию с ACCEPT, DROP или REJECT, чтобы решить, должен ли пакет пройти или нет.

1
ответ дан 5 December 2019 в 19:48

Теги

Похожие вопросы