Фаервол решает судьбу каждого пакета: пропустить или заблокировать.
iptables — проверенная классика, nftables — современная замена с более чистым синтаксисом.1. iptables — базовые команды:
# Посмотреть правила
iptables -L -n -v
# Разрешить входящий SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Разрешить HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Разрешить установленные соединения
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешить localhost
iptables -A INPUT -i lo -j ACCEPT
# Заблокировать IP
iptables -A INPUT -s 192.168.1.100 -j DROP
# Заблокировать всё остальное
iptables -A INPUT -j DROP
# Удалить правило (по номеру)
iptables -D INPUT 3
# Очистить все правила
iptables -F
2. nftables — то же самое, но удобнее:
# Посмотреть правила
nft list ruleset
# Создать таблицу и цепочку
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; }
# Разрешить SSH
nft add rule inet filter input tcp dport 22 accept
# Разрешить HTTP/HTTPS
nft add rule inet filter input tcp dport { 80, 443 } accept
# Заблокировать IP
nft add rule inet filter input ip saddr 192.168.1.100 drop
# Очистить правила
nft flush ruleset
Основные действия:
ACCEPT — пропустить
DROP — тихо отбросит
REJECT — отбросить с ответом
LOG — залогировать.
tags: #сети #linux
➡ DevOps Community | Чат
