FirewallD: Разрешить соединения только с определенных IP-адресов [дубликат]

Я пытаюсь использовать FirewallD для ограничения доступа к CentOS сервер с других машин в сети. Он имеет единый сетевой интерфейс и работает в общедоступной зоне . Допустим, IP-адрес этого сервера 10.10.1.20.

Я хочу, чтобы только машины с IP-адресами 10.10.1.125 и 10.10.1.126 могли подключаться (ssh и https) к этому серверу. Ни один из других IP-адресов не должен иметь возможность подключаться к этому серверу (или даже знать, что он существует).

Я попытался использовать следующие расширенные правила FirewallD (10.10.1.20)

sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="10.10.1.0/24" drop'

sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="10.10.1.125" accept'

sudo firewall-cmd --add-rich-rule 'rule family="ipv4" source address="10.10.1.126" accept'

Но, похоже, это не сработало. Я не могу подключиться по ssh к 10.10.1.20 из 10.10.1.125 или 10.10.1.126.

Я попытался ввести правила в обратном порядке, но все равно не работает.

Кто-нибудь может мне здесь помочь? Нужно ли мне изменить зону с публичной на более ограниченную, например, drop, прежде чем правила, которые я написал выше, могут быть применены?

3
задан 20 August 2016 в 11:11
2 ответа

Богатые правила не подходят для этого. Они просто создадут путаницу, сейчас и позже.

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

] Все, что вам нужно сделать, это установить службы, которые вы хотите разрешить в зоне (что вы, вероятно, уже сделали), а затем установить источники.

Источники трафика могут быть назначены двумя способами: по интерфейсу или по источнику Айпи адрес. Трафик, который соответствует любому источнику, проходит эту проверку.

Итак, вы хотите добавить IP-адреса, которым разрешен доступ к службам, а затем удалить интерфейс (если есть).

firewall-cmd --zone=public --add-source=10.10.1.25
firewall-cmd --zone=public --add-source=10.10.1.26
firewall-cmd --zone=public --remove-interface=enp2s1
firewall-cmd --runtime-to-permanent

И обратите внимание, что вы, вероятно, не хотите делать это в общедоступной зоне, а создадите новую зону. В этой зоне есть несколько настроек, разрешенных по умолчанию (например, DHCP), что может вызвать проблемы, если вы удалите интерфейс и ограничите зону по IP-адресу источника.

7
ответ дан 3 December 2019 в 05:23
sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" source address="10.10.1.125" accept'
sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="https" source address="10.10.1.125" accept'
sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" source address="10.10.1.126" accept'
sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="https" source address="10.10.1.126" accept'
firewall-cmd --reload 

и перезапустите службу брандмауэра.

брандмауэр по умолчанию блокирует все соединения . Так что вам нужно добавить только эти правила.

-1
ответ дан 3 December 2019 в 05:23

Теги

Похожие вопросы