Как закрыть 21 и 22 порты посредством iptables?
Как закрыть в обе стороны SFTP (22 порт) , FTP (21порт), UDP, ICMP, одновременно не трогая TCP - в iptables linux?
Ответы (2 шт):
Для блокировки трафика на порты 21 и 22 в обе стороны:
# Блокировка входящего и исходящего FTP (порт 21)
sudo iptables -A INPUT -p tcp --dport 21 -j DROP
sudo iptables -A OUTPUT -p tcp --sport 21 -j DROP
# Блокировка входящего и исходящего SFTP/SSH (порт 22)
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
sudo iptables -A OUTPUT -p tcp --sport 22 -j DROP
--dport 21 и --dport 22 используются для блокировки входящего трафика на эти порты.
--sport 21 и --sport 22 используются для блокировки исходящего трафика, который начинается с этих портов (например, когда ваш сервер выступает в роли клиента FTP или SFTP).
Для блокировки всего UDP-трафика в обе стороны:
# Блокировка всего входящего UDP-трафика
sudo iptables -A INPUT -p udp -j DROP
# Блокировка всего исходящего UDP-трафика
sudo iptables -A OUTPUT -p udp -j DROP
-p udp указывает протокол UDP.
Для блокировки всего ICMP-трафика в обе стороны:
# Блокировка всего входящего ICMP-трафика
sudo iptables -A INPUT -p icmp -j DROP
# Блокировка всего исходящего ICMP-трафика
sudo iptables -A OUTPUT -p icmp -j DROP
-p icmp указывает протокол ICMP.
ВАЖНО !!!
Порядок правил в iptables имеет значение. Если у вас есть другие правила, убедитесь, что эти правила DROP находятся выше любых правил ACCEPT, которые могут разрешать упомянутый трафик. В общем случае, если вы хотите заблокировать конкретный трафик, правило DROP для него должно быть первым, которое соответствует этому трафику.
TCP-трафик не затрагивается: Эти правила не влияют на другие TCP-порты и протоколы, кроме 21 и 22. Весь остальной TCP-трафик (например, HTTP на порту 80, HTTPS на порту 443 и т.д.) будет по-прежнему разрешен, если только у вас нет других правил, которые его блокируют.