Замена firewalld на iptables в CentOS 7

CentOS 7 FirewallD
В начале своей деятельности в сфере информационных технологий я работал исключительно с серверами под управлением FreeBSD. По мере освоения новых операционных систем пришлось столкнуться и с новыми фаерволами.
Для меня было почти трагедией переход с замечательных фряшных PF и IPFW на страшный и ужасный iptables. Я справился, освоил азы и даже научился составлять правила. Но тут беда пришла откуда не ждали — новый релиз CentOS вышел с полностью переделанным фаерволом. Разбираться в нём совсем нет желания — надстройка над гнусненьким iptables не сулит приятного времяпровождения
Было решено заменить firewalld на стандартный iptables, который уже немного приелся. Для этого создал минимальный конфиг «всё разрешено» (ограничивать буду позже) и для надёжности явно разрешил трафик на 22 порт для ssh

# vim /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [1114:102446]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [930:120224]

-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
COMMIT

После этого отключаем текущий фаервол и останавливаем службу

# systemctl disable firewalld
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
# systemctl stop firewalld

Установка необходимых пакетов

# yum -y install iptables-services

Добавление сервиса в автозапуск и ручной запуск

# systemctl enable iptables
ln -s '/usr/lib/systemd/system/iptables.service' '/etc/systemd/system/basic.target.wants/iptables.service'
# systemctl start iptables

В случае использования IPv6 так же необходимо добавить следующее

# systemctl enable ip6tables
ln -s '/usr/lib/systemd/system/ip6tables.service' '/etc/systemd/system/basic.target.wants/ip6tables.service'
# systemctl start ip6tables

Стартовая проверка правил

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh ctstate NEW

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Видно, что правила применились верно. Для начала этого достаточно.
Подробнее об ограничениях и блокировках в следующих заметках

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