Настройка брандмауэра
Настройка брандмауэра¶
Чаще всего, в Linux брандмауэр реализуется через утилиту iptables
. Эта утилита содержит следующие компоненты:
Tables
- используются для организации и категоризации правилfilter
- используется для фильтрации сетевого трафика на основе IP-адресов, портов и протоколовnat
- используется для изменения IP-адресов источника или назначения сетевых пакетовmangle
- используется для изменения полей заголовков сетевых пакетов
Chains
- используются для группировки набора правил, применяемых к определённому типу трафика-
Rules
- определяют критерии фильтрации сетевого трафика и действия, которые необходимо предпринять для пакетов, соответствующих этим критериямACCEPT
- позволяет пакету пройти через брандмауэрDROP
- удаляет пакет, блокируя его прохождениеREJECT
- удаляет пакет и отправляет сообщение об ошибке обратно на адрес источникаLOG
- записывает информацию о пакете в системный журналSNAT
- изменяет исходный IP-адрес пакета, обычно используемый для преобразования сетевых адресов (NAT) для преобразования частных IP-адресов в общедоступные IP-адресаDNAT
- изменяет IP-адрес назначения пакета, обычно используемый NAT для пересылки трафика с одного IP-адреса на другойMASQUERADE
- аналогичноSNAT
, но используется, когда исходный IP-адрес не является фиксированнымREDIRECT
- перенаправляет пакеты на другой порт или IP-адресMARK
- добавляет или изменяет значение меткиNetfilter
для пакета, которое может быть использовано для расширенной маршрутизации
Пример работы правила:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- добавляет новую запись в цепочкуВВОДА
, которая позволяет принимать входящийTCP-трафик
через порт22
(SSH) -
Matches
- используются для соответствия определённым критериям фильтрации сетевого трафика, таким как IP-адреса источника или назначения, порты, протоколы и т.д.-p
- указывает протокол, которому нужно соответствовать--dport
- указывает порт назначения, которому нужно соответствовать--sport
- указывает порт источника, которому нужно соответствовать-s
- указывает IP-адрес источника, которому нужно соответствовать-d
- указывает IP-адрес назначения, которому нужно соответствовать-m state
- соответствует состоянию соединения-m multiport
- соответствует нескольким портам из диапазона-m tcp
- соответствует TCP-пакетам-m udp
- соответствует UDP-пакетам-m string
- сопоставляет пакеты, содержащие определённую строку-m limit
- сопоставляет пакеты с заданным ограничением скорости-m conntrack
- сопоставляет пакеты на основе информации об отслеживании их соединений-m mark
- сопоставляет пакеты на основе их метки Netfilter-m mac
- сопоставляет пакеты на основе их MAC-адресов-m iprange
- сопоставляет пакеты на основе диапазона IP-адресов
Пример работы совпадений:
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Данная команда добавляет правило к цепочке
INPUT
в таблицеfilter
, которое соответствует входящемуTCP-трафику
на порту80
: сопоставляет входящийTCP-трафик
(-p tcp
) на порту80
(--dport 80
) и переходит к целевому параметруACCEPT
(-j ACCEPT
), если совпадение проходит успешно -
Targets
- определяют действия для пакетов, соответствующих определённому правилу