Firewalld: Назначение широких и явных правил в зонах

Firewalld: Назначение широких и явных правил в зонах

Я пытаюсь настроить firewalldв первый раз. У меня есть два типа правил, которые я хотел бы добавить:

  • Правила, разрешающие трафик только через определенные порты с определенными источниками.
  • Правила, разрешающие ВЕСЬ трафик из определенных источников.

Допустим, я создаю новую зону под названием "myZone". Я хочу разрешить ВЕСЬ трафик из 10.95.0.0/16, но только трафик, связанный с LDAP, из 10.96.59.23.

Поэтому я добавляю источники в «myZone»:

firewall-cmd --permanent --zone=myZone --add-source=10.95.0.0/16
firewall-cmd --permanent --zone=myZone --add-source=10.96.59.23

Теперь пришло время добавить порт LDAP, на котором я хочу разрешить трафик:

firewall-cmd --zone=myZone --add-port=389/tcp

Однако, что именно это сделает? Я полагаю, что это применяется ко всем источникам в "myZone"? Я хочу ограничить 10.96.59.23только трафик LDAP, но разрешить ЛЮБОЙ трафик для 10.95.0.0/16. У меня такое чувство, что я упускаю здесь что-то фундаментальное.

Теоретически я думал, что могу создать две зоны, скажем, "workstationZone" и "ldapZone". Затем я могу назначить порт 389 для "ldapZone". Однако, похоже, я не могу назначить несколько зон одному интерфейсу.

# firewall-cmd --zone workstationZone --add-interface ens32 --permanent
success
# firewall-cmd --zone ldapZone --add-interface ens32 --permanent
success
#firewall-cmd --get-active-zones
workstationZone
  interfaces: ens32
  sources: 10.95.0.0/16
ldapZone
  sources: 10.96.59.23

Выше я надеялся, что мой интерфейс «ens32» будет добавлен в обе зоны.

Другой вариант, который я вижу, — это использование «расширенных правил», однако, похоже, существует множество рекомендаций избегать их использования из-за сложности их поддержки.

Опять же, я чувствую, что упускаю что-то совершенно фундаментальное, но даже после прочтения пары руководств я просто не понимаю. Если кто-то может помочь мне разобраться, это было бы очень ценно.

решение1

Если разрешенный трафик отличается между источниками/интерфейсами, следует создать новые зоны. Зона определяет набор разрешенного трафика, а затем применяет его к указанным интерфейсам и/или исходным сетям.

Например, у вас может быть зона, которая разрешает весь трафик (она уже есть по умолчанию; она называется trusted), другая зона, которая разрешает трафик LDAP, и еще одна зона, которая разрешает какой-то другой набор служб.

Обратите внимание, что интерфейс или источник может находиться только в одной зоне, поэтому вам следует назначить каждый из них зоне, и трафик, который зона допускает, будет применяться к этому интерфейсу или источнику. Это может означать, что вам нужно создать еще одну зону, но это совершенно нормально.

Помню тебяне должнаиспользуйте --permanentдо тех пор, пока не будете удовлетворены работой правил. В противном случае вы можете заблокировать себя из-за опечатки и потребовать загрузки в среду восстановления для восстановления. Вместо этого добавьте свои правила и, как только вы будете удовлетворены тем, что все они работают, используйте firewall-cmd --runtime-to-permanentдля их сохранения. (А если вы заблокируете себя из-за опечатки, перезапуск firewalld или компьютера отменит все ваши несохраненные изменения.)

Кроме того, сэкономьте себе время на наборе текста. Слово Zoneв названии зоны лишнее.

Связанный контент