Рейтинг:0

Сценарий CentOS firewall-cmd для разрешения доступа только с IP-адресов, перечисленных в источниках.

флаг id

Я использую этот скрипт для настройки своего брандмауэра. Я ожидал, что ssh-доступ будет только с одного IP-адреса, но после тестирования это не так. Что отсутствует?

#!/бин/баш
#
# Сброс к начальной установке firewalld
#
rm -f /etc/firewalld/зоны/*
брандмауэр-cmd --полная перезагрузка
firewall-cmd --runtime-to-permanent
брандмауэр-cmd --перезагрузить
#
# Создать / настроить пользовательскую зону
#
firewall-cmd --new-zone calzone --permanent
брандмауэр-cmd --перезагрузить
firewall-cmd --zone=calzone --add-service={ssh,dhcpv6-client}
брандмауэр-cmd --zone=calzone --add-source=10.0.0.177
firewall-cmd --change-interface enp1s0 --zone calzone --permanent
firewall-cmd --runtime-to-permanent
брандмауэр-cmd --перезагрузить

Когда я запускаю: firewall-cmd --get-active-zones я получаю следующее

кальцоне
  интерфейсы: enp1s0
  источники: 10.0.0.177

Насколько я понимаю, настройка интерфейса сначала направит весь трафик с этого интерфейса в эту зону, и, поскольку в источниках есть записи, трафик будет ограничен этими IP-адресами. Спасибо заранее.

В ответ на комментарий Насира эта команда firewall-cmd --list-all-zones | sed -n '/calzone/,/rich/p' выдает:

кальцоне (активный)
  цель: по умолчанию
  icmp-инверсия блока: нет
  интерфейсы: enp1s0
  источники: 10.0.0.177
  службы: dhcpv6-клиент ssh
  порты:
  протоколы:
  вперед: нет
  маскарад: нет
  форвард-порты:
  исходные порты:
  icmp-блоки:
  богатые правила:

Я также перезапустил демон firewalld и мог ssh с 10.0.0.188 я ожидал доступ только с 10.0.0.177

флаг cn
Это правильный вывод. Вы ожидаете, что в нем будут перечислены порты, службы и т. д.? Это не то, что происходит. Если вы хотите получить все в активной зоне, используйте следующую команду: `firewall-cmd --list-all-zones | sed -n '/calzone/,/богатый/p'`
Рейтинг:0
флаг id

После многих часов чтения документации RedHat firewalld и упорного написания скрипта мне удалось добиться желаемого поведения. Однако я не уверен на 100%, потому что до сих пор не понимаю, почему настройка интерфейса не сработала. Однако этот скрипт, кажется, работает. Я использовал существующую рабочую зону, которая, похоже, становится активной, когда я добавляю в нее источник.

#!/бин/баш
#
# Сброс к начальной установке firewalld
#
rm -f /etc/firewalld/зоны/*
брандмауэр-cmd --полная перезагрузка
firewall-cmd --runtime-to-permanent
брандмауэр-cmd --перезагрузить
systemctl перезапустить firewalld
systemctl статус firewalld
#
# Удалить сервисы из всех зон
#  
# перебираем зоны по умолчанию
для зоны в удаленном блоке общедоступный внешний dmz рабочий домашний внутренний доверенный
делать
# перебирать сервисы по умолчанию
    для srv в $(firewall-cmd --list-services --zone=$zone)
    делать
      echo "Удаление сервиса $srv из $zone"
      брандмауэр-cmd --zone=$zone --remove-service=$srv
      firewall-cmd --zone=$zone --remove-service=$srv --permanent
    сделано
сделано
#
# Отбросить весь публичный трафик?
# Разрешить рабочей зоне видеть ssh с хоста
#
firewall-cmd --zone=public --set-target=DROP --permanent
брандмауэр-cmd --zone=work --add-source=10.0.0.177 --постоянный
брандмауэр-cmd --zone=work --add-service=ssh --permanent
firewall-cmd --runtime-to-permanent
брандмауэр-cmd --перезагрузить
systemctl перезапустить firewalld
systemctl статус firewalld

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.