Назад | Перейти на главную страницу

Использование Firewall-cmd для создания ограничений для адресов в centos 7

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

Например:

У меня только один интерфейс eno1 и он связан с публичной зоной. В этой зоне включены службы HTTP и https. Я хочу включить ssh-доступ в этой зоне, но я хочу ограничить ssh-доступ к сети (например, 100.0.0.0/8)

Как лучше всего это сделать?

Я искал ответ, но нашел много вопросов, связанных с моими собственными, без ответов.

После долгих исследований я нашел обходной путь. Вот что я сделал

Добавил интерфейс в публичную зону

затем

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="x.x.x.x/x" service name="ssh" log prefix="ssh" level="info" accept' 
sudo firewall-cmd --reload

Примечание. Адрес источника может быть диапазоном. Просто укажите маску сети

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

Любое лучшее решение, пожалуйста, добавьте.