Написал цепочку правил по мануалам в iptablesЕсть сервер. на OUTPUT все разрешенно.
А вот на INPUT на до ограничить определенное количество портов, cделать проброс.
а так же защитить от возможных аттак и подбора пароля на ssh.
venet0 - внешний
Написал такую цепочку проверьте пожалуйста.
# Разрешаем прохождение любого трафика по интерфейсу обратной петли.
iptables -A INPUT -i lo -j ACCEPT
Запрещаем любые новые подключения с любых интерфейсов, кроме lo к компьютеру.
iptables -A INPUT -m state ! -i lo --state NEW -j DROP
# Если интерфейс не lo, то запрещаем входить в список его адресов.
iptables -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP
# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# SYN наводнение.
# Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# UDP наводнение
# Службы использующие UDP, очень часто становятся мишенью для атак с целью вывода системы из строя.
iptables -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP
iptables -A INPUT -p UDP -s 0/0 --destination-port 113 -j REJECT
iptables -A INPUT -p UDP -s 0/0 --source-port 67 --destination-port 68 -j ACCEPT
iptables -A INPUT -p UDP -j RETURN
#Защита от подбора паролей ssh
iptables -A INPUT -p tcp --syn --dport 22 -m recent --name radiator --set
iptables -A INPUT -p tcp --syn --dport 22 -m recent --name radiator --update --seconds 60 --hitcount 3 -j DROP
# ICMP - перенаправление
# ICMP - сообщение указывает системе изменить содержимое таблиц маршрутизации с тем, что бы направлять
# пакеты по более короткому маршруту. Может быть использовано взломщиком для перенаправления вашего трафика через свою машину.
iptables -A INPUT --fragment -p ICMP -j DROP
# Разрешаем ICMP соединение. Значительная часть ICMP используется для передачи сообщений о
# том, что происходит с тем или иным UDP или TCP соединением.
iptables -A INPUT -p icmp -m icmp -i venet0 --icmp-type source-quench -j ACCEPT
# Разрешаем себе ping наружу - нас же не попингуешь - пакеты отбрасываются.
iptables -A INPUT -p icmp -m icmp -i venet0 --icmp-type echo-reply -j ACCEPT
# DNS сервер имен разрешаем.
iptables -A INPUT -p udp -m udp -i venet0 --dport 1024:65535 --sport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i venet0 --dport 1024:65353 --sport 53 -j ACCEPT
# Открываем некоторые порты:
# SMTP клиент (25)
iptables -A INPUT -p tcp -m tcp -i venet0 --dport 1020:1023 --sport 25 -j ACCEPT ! --syn
# POP3 клиент (110)
iptables -A INPUT -p tcp -m tcp -i venet0 --dport 1020:1023 --sport 110 -j ACCEPT ! --syn
# IMAP4 клиент (143)
iptables -A INPUT -p tcp -m tcp -i venet0 --dport 1020:1023 --sport 2020 -j ACCEPT ! --syn
# SSH клиент (22)
iptables -A INPUT -p tcp -m tcp -i venet0 --dport 1020:1023 --sport 22 -j ACCEPT ! --syn
iptables -A INPUT -p tcp -m tcp -i venet0 --dport 1020:1023 --sport 22 -j ACCEPT ! --syn
# FPT клиент (21)
iptables -A INPUT -p tcp -m tcp -i venet0 --dport 1020:1023 --sport 21 -j ACCEPT ! --syn
# HTTP клиент
iptables -A INPUT -p tcp -m tcp -m multiport -i venet0 --dport 1020:1023 -j ACCEPT --sports 80 ! --syn
# mysql клиент
iptables -A INPUT -p tcp -m tcp -m multiport -i venet0 --dport 1020:1023 -j ACCEPT --sports 3306 ! --syn
#Делаем проброс внутрь
# 80 порт
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.20.4
# 21 порт
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.20.4
# 20 порт
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 20 -j DNAT --to-destination 192.168.20.4
# 2020 порт
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2020 -j DNAT --to-destination 192.168.20.4
# 110 порт
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.20.5
# 3306 порт
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 3306 -j DNAT --to-destination 192.168.20.6