Поиск по сайту:

Как открыть порт для определенного IP-адреса в Firewalld


Как я могу разрешить трафик с определенного IP-адреса в моей частной сети или разрешить трафик из определенной частной сети через firewalld на определенный порт или службу в Red Hat Enterprise Linux ? (RHEL) или сервер CentOS?

В этой короткой статье вы узнаете, как открыть порт для определенного IP-адреса или диапазона сети на сервере RHEL или CentOS, на котором работает брандмауэр firewalld.

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

Открыть порт для определенного IP-адреса в Firewalld

Сначала создайте подходящее имя зоны (в нашем случае мы использовали mariadb-access, чтобы разрешить доступ к серверу базы данных MySQL).

firewall-cmd --new-zone=mariadb-access --permanent

Затем перезагрузите настройки firewalld, чтобы применить новые изменения. Если вы пропустите этот шаг, вы можете получить сообщение об ошибке при попытке использовать новое имя зоны. На этот раз новая зона должна появиться в списке зон, как показано на следующем снимке экрана.

firewall-cmd --reload
firewall-cmd --get-zones

Затем добавьте исходный IP-адрес (10.24.96.5/20) и порт (3306), который вы хотите открыть на локальном сервере, как показано. Затем перезагрузите настройки firewalld, чтобы применить новые изменения.

firewall-cmd --zone=mariadb-access --add-source=10.24.96.5/20 --permanent
firewall-cmd --zone=mariadb-access --add-port=3306/tcp  --permanent
firewall-cmd --reload

Альтернативно вы можете разрешить трафик из всей сети (10.24.96.0/20) в службу или порт.

firewall-cmd --zone=mariadb-access --add-source=10.24.96.0/20 --permanent
firewall-cmd --zone=mariadb-access --add-port=3306/tcp --permanent
firewall-cmd --reload

Чтобы убедиться, что новая зона имеет необходимые настройки, добавленные выше, проверьте ее данные с помощью следующей команды.

firewall-cmd --zone=mariadb-access --list-all 

Удалить порт и зону из Firewalld

Вы можете удалить исходный IP-адрес или сеть, как показано.

firewall-cmd --zone=mariadb-access --remove-source=10.24.96.5/20 --permanent
firewall-cmd --reload

Чтобы удалить порт из зоны, введите следующую команду и перезагрузите настройки firewalld:

firewall-cmd --zone=mariadb-access --remove-port=3306/tcp --permanent
firewall-cmd --reload

Чтобы удалить зону, выполните следующую команду и перезагрузите настройки firewalld:

firewall-cmd --permanent --delete-zone=mariadb-access
firewall-cmd --reload

И последнее, но не список: вы также можете использовать расширенные правила firewalld. Вот пример:

firewall-cmd --permanent –zone=mariadb-access --add-rich-rule='rule family="ipv4" source address="10.24.96.5/20" port protocol="tcp" port="3306" accept'

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