firewalld — это интерфейсный контроллер по умолчанию для iptables в CentOS. Интерфейс Firewalld имеет два основных преимущества по сравнению с необработанными iptables —
-
Использует простые в настройке и реализации зоны, абстрагирующие цепочки и правила.
-
Наборы правил являются динамическими, то есть соединения с состоянием не прерываются при изменении и / или изменении настроек.
Использует простые в настройке и реализации зоны, абстрагирующие цепочки и правила.
Наборы правил являются динамическими, то есть соединения с состоянием не прерываются при изменении и / или изменении настроек.
Помните, firewalld — это оболочка для iptables, а не замена. Хотя пользовательские команды iptables можно использовать с firewalld , рекомендуется использовать firewalld, чтобы не нарушать функциональность брандмауэра.
Во-первых, давайте удостоверимся, что firewalld запущен и включен.
[root@CentOS rdc]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2017-01-26 21:42:05 MST; 3h 46min ago Docs: man:firewalld(1) Main PID: 712 (firewalld) Memory: 34.7M CGroup: /system.slice/firewalld.service └─712 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Мы можем видеть, что firewalld активен (для запуска при загрузке) и работает в данный момент. Если неактивен или не запущен, мы можем использовать —
systemctl start firewalld && systemctl enable firewalld
Теперь, когда мы настроили наш сервис firewalld, давайте убедимся, что он работает.
[root@CentOS]# firewall-cmd --state running [root@CentOS]#
Как видим, сервис firewalld полностью функционален.
Firewalld работает над концепцией зон . Зона применяется к сетевым интерфейсам через Network Manager. Мы обсудим это при настройке сети . Но сейчас, по умолчанию, изменение зоны по умолчанию изменит любые сетевые адаптеры, оставленные в состоянии по умолчанию «Зона по умолчанию».
Давайте кратко рассмотрим каждую зону, выходящую из коробки с firewalld .
Sr.No. | Зона и описание |
---|---|
1 |
падение Низкий уровень доверия. Все входящие соединения и пакеты сбрасываются и только исходящие соединения возможны через statefullness |
2 |
блок На входящие соединения приходит сообщение icmp, информирующее инициатора о том, что запрос запрещен |
3 |
общественности Все сети ограничены. Тем не менее, выбранные входящие соединения могут быть явно разрешены |
4 |
внешний Настраивает firewalld для NAT. Внутренняя сеть остается частной, но достижимой |
5 |
ДМЗ Разрешены только определенные входящие соединения. Используется для систем в изоляции DMZ |
6 |
Работа По умолчанию доверяют большему количеству компьютеров в сети, если система находится в защищенной рабочей среде. |
7 |
затачивать По умолчанию больше услуг не фильтруется. Предполагая, что система находится в домашней сети, где будут использоваться такие службы, как NFS, SAMBA и SSDP |
8 |
доверенный Все машины в сети являются доверенными. Большинство входящих соединений разрешено беспрепятственно. Это не предназначено для интерфейсов, открытых для Интернета |
падение
Низкий уровень доверия. Все входящие соединения и пакеты сбрасываются и только исходящие соединения возможны через statefullness
блок
На входящие соединения приходит сообщение icmp, информирующее инициатора о том, что запрос запрещен
общественности
Все сети ограничены. Тем не менее, выбранные входящие соединения могут быть явно разрешены
внешний
Настраивает firewalld для NAT. Внутренняя сеть остается частной, но достижимой
ДМЗ
Разрешены только определенные входящие соединения. Используется для систем в изоляции DMZ
Работа
По умолчанию доверяют большему количеству компьютеров в сети, если система находится в защищенной рабочей среде.
затачивать
По умолчанию больше услуг не фильтруется. Предполагая, что система находится в домашней сети, где будут использоваться такие службы, как NFS, SAMBA и SSDP
доверенный
Все машины в сети являются доверенными. Большинство входящих соединений разрешено беспрепятственно. Это не предназначено для интерфейсов, открытых для Интернета
Наиболее распространенными зонами для использования являются: общедоступная, дропа, работа и дом.
Вот некоторые сценарии, в которых будет использоваться каждая общая зона:
-
public — это самая распространенная зона, используемая администратором. Это позволит вам применять пользовательские настройки и соблюдать спецификации RFC для операций в локальной сети.
-
drop — хороший пример использования drop на конференции по безопасности, в общедоступном WiFi или на интерфейсе, подключенном напрямую к Интернету. drop предполагает, что все нежелательные запросы являются вредоносными, включая ICMP-зонды. Таким образом, любой запрос за пределами штата не получит ответ. Недостатком является то, что он может нарушить функциональность приложений в определенных ситуациях, требующих строгого соответствия RFC.
-
работа — Вы находитесь в полубезопасной корпоративной локальной сети. Где весь трафик можно считать умеренно безопасным. Это означает, что это не WiFi, и у нас, возможно, есть IDS, IPS и физическая безопасность или 802.1x. Мы также должны быть знакомы с людьми, использующими локальную сеть.
-
home — Вы находитесь в домашней сети. Вы несете личную ответственность за каждую систему и пользователя в локальной сети. Вы знаете каждую машину в локальной сети, и ни одна из них не была взломана. Часто появляются новые услуги для обмена мультимедийными данными среди доверенных лиц, и вам не нужно тратить дополнительное время ради безопасности.
public — это самая распространенная зона, используемая администратором. Это позволит вам применять пользовательские настройки и соблюдать спецификации RFC для операций в локальной сети.
drop — хороший пример использования drop на конференции по безопасности, в общедоступном WiFi или на интерфейсе, подключенном напрямую к Интернету. drop предполагает, что все нежелательные запросы являются вредоносными, включая ICMP-зонды. Таким образом, любой запрос за пределами штата не получит ответ. Недостатком является то, что он может нарушить функциональность приложений в определенных ситуациях, требующих строгого соответствия RFC.
работа — Вы находитесь в полубезопасной корпоративной локальной сети. Где весь трафик можно считать умеренно безопасным. Это означает, что это не WiFi, и у нас, возможно, есть IDS, IPS и физическая безопасность или 802.1x. Мы также должны быть знакомы с людьми, использующими локальную сеть.
home — Вы находитесь в домашней сети. Вы несете личную ответственность за каждую систему и пользователя в локальной сети. Вы знаете каждую машину в локальной сети, и ни одна из них не была взломана. Часто появляются новые услуги для обмена мультимедийными данными среди доверенных лиц, и вам не нужно тратить дополнительное время ради безопасности.
Зоны и сетевые интерфейсы работают на уровне один ко многим. К одному сетевому интерфейсу одновременно может быть применена только одна зона. В то время как зона может быть применена ко многим интерфейсам одновременно.
Давайте посмотрим, какие зоны доступны и какие зоны применяются в данный момент.
[root@CentOS]# firewall-cmd --get-zones work drop internal external trusted home dmz public block
[root@CentOS]# firewall-cmd --get-default-zone public [root@CentOS]#
Готовы добавить некоторые пользовательские правила в firewalld?
Во-первых, давайте посмотрим, как выглядит наша коробка для сканера портов снаружи.
bash-3.2# nmap -sS -p 1-1024 -T 5 10.211.55.1 Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:36 MST Nmap scan report for centos.shared (10.211.55.1) Host is up (0.00046s latency). Not shown: 1023 filtered ports PORT STATE SERVICE 22/tcp open ssh Nmap done: 1 IP address (1 host up) scanned in 3.71 seconds bash-3.2#
Давайте разрешим входящие запросы на порт 80.
Сначала проверьте, какая зона применяется по умолчанию.
[root@CentOs]# firewall-cmd --get-default-zone public [root@CentOS]#
Затем установите правило, разрешающее порт 80 для текущей зоны по умолчанию.
[root@CentOS]# firewall-cmd --zone=public --add-port = 80/tcp success [root@CentOS]#
Теперь давайте отметим наш флажок после разрешения подключения к порту 80.
bash-3.2# nmap -sS -p 1-1024 -T 5 10.211.55.1 Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:42 MST Nmap scan report for centos.shared (10.211.55.1) Host is up (0.00053s latency). Not shown: 1022 filtered ports PORT STATE SERVICE 22/tcp open ssh 80/tcp closed http Nmap done: 1 IP address (1 host up) scanned in 3.67 seconds bash-3.2#
Это теперь позволяет незапрошенный трафик до 80.
Давайте добавим зону по умолчанию для удаления и посмотрим, что происходит со сканированием портов.
[root@CentOS]# firewall-cmd --set-default-zone=drop success [root@CentOS]# firewall-cmd --get-default-zone drop [root@CentOs]#
Теперь давайте просканируем хост с сетевым интерфейсом в более безопасной зоне.
bash-3.2# nmap -sS -p 1-1024 -T 5 10.211.55.1 Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:50 MST Nmap scan report for centos.shared (10.211.55.1) Host is up (0.00094s latency). All 1024 scanned ports on centos.shared (10.211.55.1) are filtered Nmap done: 1 IP address (1 host up) scanned in 12.61 seconds bash-3.2#
Теперь все отфильтровано снаружи.
Как показано ниже, хост не будет даже отвечать на запросы проверки связи ICMP, когда находится в состоянии сброса .
bash-3.2# ping 10.211.55.1 PING 10.211.55.1 (10.211.55.1): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 Request timeout for icmp_seq 2
Давайте снова установим зону по умолчанию на public .
[root@CentOs]# firewall-cmd --set-default-zone=public success [root@CentOS]# firewall-cmd --get-default-zone public [root@CentOS]#
Теперь давайте проверим наш текущий набор правил фильтрации публично .
[root@CentOS]# firewall-cmd --zone=public --list-all public (active) target: default icmp-block-inversion: no interfaces: enp0s5 sources: services: dhcpv6-client ssh ports: 80/tcp protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: [root@CentOS rdc]#
Как настроено, наше правило фильтра для порта 80 находится только в контексте текущей конфигурации. Это означает, что после перезагрузки системы или перезапуска службы firewalld наше правило будет отменено.
Скоро мы настроим демон httpd , поэтому давайте сделаем наши изменения постоянными —
[root@CentOS]# firewall-cmd --zone=public --add-port=80/tcp --permanent success [root@CentOS]# systemctl restart firewalld [root@CentOS]#
Теперь наше правило порта 80 в общедоступной зоне сохраняется при перезагрузках и перезапусках службы.
Ниже приведены общие команды firewalld, применяемые с firewall-cmd .
команда | действие |
---|---|
firewall-cmd —get-zone | Перечисляет все зоны, которые могут быть применены к интерфейсу |
firewall-cmd — статус | Возвращает текущий статус службы firewalld |
firewall-cmd —get-default-zone | Получает текущую зону по умолчанию |
firewall-cmd —set-default-zone = <зона> | Устанавливает зону по умолчанию в текущий контекст |
firewall-cmd —get-active-zone | Получает текущие зоны в контексте применительно к интерфейсу |
firewall-cmd —zone = <зона> —list-all | Перечисляет конфигурацию предоставленной зоны |
firewall-cmd —zone = <зона> —addport = <порт / транспортный протокол> | Применяет правило порта к фильтру зоны |
—permanent | Делает изменения в зоне постоянными. Флаг используется inline с командами модификации |
Это основные понятия администрирования и настройки firewalld .
Настройка служб межсетевого экрана на основе хоста в CentOS может быть сложной задачей в более сложных сетевых сценариях. Расширенное использование и настройка firewalld и iptables в CentOS может занять весь учебник. Тем не менее, мы представили основы, которых должно быть достаточно для выполнения большинства повседневных задач.