[IPTABLES] Основные правила
2 914
0
0
Файрвол в системе linux контролируется программой iptables (для ipv4) и ip6tables (для ipv6). В данной шпаргалке рассмотрены самые распространённые способы использования iptables для тех, кто хочет защитить свою систему от взломщиков или просто разобраться в настройке.
Часто используемые команды
Показать статус
iptables -L -n -v
Разрешить доступ конкретному IP
iptables -I INPUT -s 10.10.10.10 -j ACCEPT
Просмотреть NAT
iptables -t nat -nvL
Сбросить NAT
iptables -t nat -F
Сбросить правила
iptables -F
Отобразить правило по номеру
iptables -L INPUT -n --line-numbers
iptables -L FORWARD -n --line-numbers
Удаляем правило по номеру
iptables -D INPUT 3 (начинается с 1)
Вставляем правило по номеру
iptables -I INPUT 2 -s 10.10.10.10 -j DROP
Пример проброса порта
Включаем forward
/etc/sysctl.conf
# Controls IP packet forwardingnet.ipv4.ip_forward = 1
Проверяем
grep -i forward /etc/network/options
Сами правила
iptables -t nat -I PREROUTING -p tcp -d 80.1.1.1 --dport 20125 -j DNAT --to-destination 172.16.0.104:20081
iptables -t nat -I PREROUTING -p tcp -d 80.1.1.1 --dport 37777 -j DNAT --to-destination 172.16.0.104:37777
iptables -t nat -I PREROUTING -p tcp -d 80.1.1.1 --dport 37778 -j DNAT --to-destination 172.16.0.104:37778
iptables -I FORWARD -d 80.1.1.1 -j ACCEPT
iptables -I FORWARD -d 172.16.0.104 -j ACCEPT
Разрешаем доступ должникам на платежный сайт (ipset paysystems)
iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -m set --match-set paysystems dst -j MASQUERADE
iptables -A FORWARD -m set --match-set nomoney src -m set --match-set paysystems dst -j ACCEPT
iptables -t nat -A PREROUTING -m set --match-set paysystems dst -m set --match-set nomoney src -j ACCEPT
Дроп на интерфейсе
iptables -I FORWARD -i vlan3101 -j DROP
iptables -I FORWARD -o vlan3101 -j DROP
iptables -I FORWARD -i vlan3101 ! -s 172.17.1.11 -j DROP
iptables -A FORWARD -s 172.17.0.0/16 ! -i vlan3101 -j ACCEPT
iptables -A FORWARD -d 172.17.0.0/16 ! -o vlan3101 -j ACCEPT
Защищаем форвард от сканирования портов
# Атакующий IP будет заблокирован на 24 часа (3600 x 24 = 86400 секунд)
iptables -A INPUT -m recent --name portscan --rcheck --seconds 86400 -j DROP
iptables -A FORWARD -m recent --name portscan --rcheck --seconds 86400 -j DROP
# Удалить атакующий IP после 24 часов
iptables -A INPUT -m recent --name portscan --remove
iptables -A FORWARD -m recent --name portscan --remove
# Эти правила добавляют сканеры в список portscan и регистрируют попытку
iptables -A INPUT -p tcp -m tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix "portscan:"
iptables -A INPUT -p tcp -m tcp --dport 139 -m recent --name portscan --set -j DROP
iptables -A FORWARD -p tcp -m tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix "portscan:"
iptables -A FORWARD -p tcp -m tcp --dport 139 -m recent --name portscan --set -j DROP