Примеры iptables

Примеры настройки iptables для популярных и не очень сервисов и служб Linux. Заметка, в основном, для себя, чтобы не ошибиться и ничего не забыть. Всего, ессественно, не охватить сразу, так что со временем буду добавлять записи. Подробного описания ключей и опции тут не будет, только конкретные примеры iptables.
Итак, в стандартной установке CentOS файл правил iptables выглядит следующим образом.
cat /etc/sysconfig/iptables

Если у Вас такого файла нет, то нужно доставить необходимые пакеты.
yum install iptables iptables-services
Хоть нас и предупреждают, что редактировать этот файл не рекомендуется, именно сюда будут записываться новые правила iptables. Синтаксис строки с правилом аналогичен синтаксису команды. Пройдемся немного по основным командам.

1. Просмотр текущего состояния iptables

iptables -nvL --line-number

Тут у нас 3 цепочки правил:
INPUT — для входящих пакетов, здесь и будут отображаться записываемые правила.
FORWARD — для входящих пакетов, перенаправленных на выход, в данном случае все запрещено, так как компьютер не является роутером.
OUTPUT — для исходящих пакетов, тут всё разрешено.
Можно посмотреть каждую цепочку отдельно, например
iptables -nvL INPUT --line-number

2. Добавление и удаление правил iptables.

Как уже говорилось выше, управлять правилами можно, редактируя конфигурационный файл /etc/sysconfig/iptables или используя команды. Следующая команда разрешает входящие соединения с локальной сети, записывая правило 5-ой строкой в цепочку INPUT.
iptables -I INPUT 5 -s 192.168.1.0/24 -j ACCEPT
Посмотрим.
iptables -nvL INPUT --line-number

Нижеприведенная команда запретит нам посещать сайт известной компании.
iptables -A OUTPUT -p tcp -d www.microsoft.com -j DROP
Таким образом можно заблокировать сеть негодяев, пытающихся что-то выведать и сломать на нашем сервере.
iptables -I INPUT -s 5.9.0.0/16 -j DROP
Отличия параметра I от параметра A заключается в том, что I позволяет вставлять правило в определенное место по номеру, без номера помещает правило на 1-ое место. A вставляет правило в конце цепочки. Если Вы поместите правило с помощью параметра A ниже 6-ой строки в листинге выше, то оно не сработает, так как 6-ая строка запрещает все, что не было разрешено раньше. Правила выполняются строго по очереди.
Следующая команда удаляет правило с соответствующим номером из указанной цепочки.
iptables -D INPUT 5
Чтобы сохранить изменения, выполненные с помощью команд, необходимо использовать iptables-save > /etc/sysconfig/iptables.
Если Вы редактировали конфигурационный файл, iptables нужно перезапустить
service iptables restart или, если используется systemd,
systemctl restart iptables.
Теперь, собственно, примеры. Не забывайте про параметр A и последнюю строку в Ваших цепочках.

Разрешить или запретить ICMP Ping запросы.

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
Разрешить с опреденной сети
iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT

Разрешить сервер SSH на порту 22.

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
Разрешить с опреденной сети
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT

Если ставите другой порт для SSH и SELinux не отключен, то необходимы дополнительные действия, описанные тут.

Разрешить сервер ProFTPd.

iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 50000:50535 -j ACCEPT

Синхронизация времени NTPd.

iptables -A INPUT -m state --state NEW -p udp --dport 123 -j ACCEPT

Разрешить WEB-сервер на портах http/https

iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT

Разрешить почтовый сервер SMTP, POP3, IMAP

iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT

Разрешить DNS сервер

iptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT

Разрешить Samba сервер для локальной сети

iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT

Разрешить CUPS сервер печати

iptables -A INPUT -p udp -m udp --dport 631 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT

Разрешить Proxy сервер для локальной сети

iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 3128 -j ACCEPT

Разрешить MYSQL сервер для локальной сети

iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 3306 -j ACCEPT

Разрешить Transmission торрент-сервер

iptables -A INPUT -p tcp -m tcp -m state --dport 9091 --state NEW -j ACCEPT

Разрешить Minidlna медиа-сервер для локальной сети

iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 8200 -j ACCEPT

Примеры iptables

Один комментарий к “Примеры iptables

  1. Алексей Автор записи
    Разрешить входящие соединения удаленного рабочего стола xrdp

    iptables -A INPUT -p tcp -m tcp --dport 3389 -j ACCEPT

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *