Иногда нужно например удалить все правила IPTables и прописать только нужное, так вот для удобства можно указать их в скрипте, после чего выполнить его.
Переключимся на root пользователя, в Ubuntu это можно сделать так:
1 | sudo -i |
Сначала посмотрим существующие правила (возможно некоторые будут нужны и их можно будет скопировать в скрипт):
1 2 3 | iptables -nvL iptables -L -t nat iptables -L -t mangle |
И собственно ниже приведу пример скрипта с набросанными правилами IPTables:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #!/bin/sh # Пример очистки и удаления всех существующие правил и цепочек /sbin/iptables -t filter -F /sbin/iptables -t nat -F /sbin/iptables -t mangle -F /sbin/iptables -F /sbin/iptables -t filter -X /sbin/iptables -t nat -X /sbin/iptables -t mangle -X /sbin/iptables -X # Запретим все входящие и проходящие соединения, разрешим все исходящие от сервера /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/ip6tables -P INPUT DROP /sbin/ip6tables -P FORWARD DROP /sbin/ip6tables -P OUTPUT ACCEPT # Разрешим локальный интерфейс /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/ip6tables -A INPUT -i lo -j ACCEPT # Не трогаем уже установленные соединения /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Откроем порты SSH, HTTP, HTTPS для всех если нужно /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT # При необходимости можно разрешить все входящие соединения конкретному IP-адресу /sbin/iptables -A INPUT -s 192.168.10.101 -j ACCEPT # Пример разрешения PING /sbin/iptables -A INPUT -p icmp -j ACCEPT /sbin/iptables -A OUTPUT -p icmp -j ACCEPT # и т.д. |
Сделаем файл скрипт исполняемым:
1 | chmod +x rules.sh |
Выполним его:
1 | ./rules.sh |
Смотрите также мои статьи:
Как сохранить IPTables правила
Настройка IPTables