Skip to main content

Firewall

netfilter - встроенный firewall. Консольные утилиты для управления netfilter:

  • iptables - для v4 и v6 различные
  • ebtables - mac briging правила
  • arptables - правил трансляции arp

ufw - фронтенд для iptables

nftables - иная реализация

firewalld - реализация в RedHat

Iptables

Состоит из 4 таблиц:

  • Filter table Базовая защита, обычно используется
  • NAT table 
  • Mangle table Изменение сетевых пакетов при их прохождении через брандмауэр
  • Security table Используется в системах с установленным SELinux

Каждая таблица состоит из цепочек правил. Filter table состоит из цепочек INPUT, FORWARD, OUTPUT

Просмотр существующих таблиц 

sudo iptables -L -v

Сохранение правил после перезагрузки сервера

sudo apt install iptables-persistant

После этого правила сохраняются в /etc/iptables*

Пример команды 

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
АргументОписание
-A, -I

Добавить в конец или в определенное место цепочки.

-A INPUT

-I INPUT 1

-mМодуль.
--ctstate Состояние пакета. Перечисляется через запятую без пробелов.
-j

Действие при соблюдении условия

ACCEPT разрешить пакет

DROP тихо откинуть пакет

REJECT вернуть ответ о блокировании запрашивающей стороне

-pТип соединения, tcp/udp
--dport

порт назначения

--dport ssh

-i 

Интерфейс

-i lo

Разрешение доступа для ssh

sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT

Разрешение доступа к lo 

sudo iptables -I INPUT 1 -i lo -j ACCEPT