Скрипт быстрой настройки IPTables

Иногда нужно например удалить все правила IPTables и прописать только нужное, так вот для удобства можно указать их в скрипте, после чего выполнить его.

Переключимся на root пользователя, в Ubuntu это можно сделать так:

sudo -i

Сначала посмотрим существующие правила (возможно некоторые будут нужны и их можно будет скопировать в скрипт):

iptables -nvL

И собственно ниже приведу пример скрипта с набросанными правилами IPTables:

#!/bin/sh
# Пример очистки и удаления всех существующие правил и цепочек
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -t filter -X
iptables -t nat -X
iptables -t mangle -X
iptables -X
# Запретим все входящие и проходящие соединения, разрешим все исходящие от сервера
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Разрешим локальный интерфейс
iptables -A INPUT -i lo -j ACCEPT
# Не трогаем уже установленные соединения
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Откроем порты SSH, HTTP для всех если нужно
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# При необходимости можно разрешить все входящие соединения конкретному IP-адресу
iptables -A INPUT -s 192.168.10.101 -j ACCEPT
# Пример разрешения PING
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
# и т.д.

Сделаем файл скрипт исполняемым:

chmod +x rules.sh

Выполним его:

./rules.sh

Для удобного сохранения правил в Ubuntu, чтобы они не сбросились после перезапуска системы, можно установить iptables-persistent:

apt-get install iptables-persistent

После чего сохранять правила командой:

service iptables-persistent save

Можно такте сохранить текущие активные правила командами:

iptables-save >/etc/firewall.conf
ip6tables-save >/etc/firewall6.conf

Создать файл например через редактор nano (Ctrl+X для выхода из редактор, y/n и Enter для сохранения или отмены изменений):

nano -w /etc/network/if-up.d/00-iptables

Добавить в него содержимое:

#!/bin/sh
iptables-restore < /etc/firewall.conf
ip6tables-restore < /etc/firewall6.conf

И сделать файл выполняемым:

chmod 744 /etc/network/if-up.d/00-iptables

Смотрите также:
Настройка IPTables

Подписаться на IT Blog (RU) по Email
Subscribe to IT Blog (EN) by Email

Did my article help you? How about buying me a cup of coffee as an encouragement? Buy me a coffe.

Добавить комментарий