Настройка брандмауэра
Настройка брандмауэра¶
Чаще всего, в 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- определяют действия для пакетов, соответствующих определённому правилу