Использование Firewall-cmd для создания специфичных для адреса ограничений в centos 7
Как создать правило брандмауэра, используя инструмент firewall-cmd (новый firewalld), чтобы я ограничил конкретную сеть для доступа только к одной службе и разрешил все для всех служб в одной зоне.
Например:
У меня только один интерфейс eno1 и он связан с публичной зоной. В этой зоне включены службы Http и https. Я хочу включить доступ SSH в этой зоне, но я хочу ограничить доступ SSH к сети (например, 100.0.0.0/8)
Каков наилучший способ сделать это?
1 ответ
Я искал ответ, но я нашел много вопросов, связанных с моими без ответов.
После долгих исследований я пришел к решению проблемы. Вот что я сделал
Добавил интерфейс в публичную зону
затем
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 не был добавлен для публичной зоны, он будет заблокирован по умолчанию. Богатое правило включит его только для этого исходного IP-адреса.
Любое лучшее решение, пожалуйста, добавьте.