В начале своей деятельности в сфере информационных технологий я работал исключительно с серверами под управлением 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
Видно, что правила применились верно. Для начала этого достаточно.
Подробнее об ограничениях и блокировках в следующих заметках