Откройте порт брандмауэра на CentOS 7


Я использую CentOS 7, и я должен убедиться, что порты 2888 и 3888 открыты.

я прочитала в этой статье но это не сработало, потому что на CentOS 7 OS нет

10 275

10 ответов:

используйте эту команду для поиска активных зон:

firewall-cmd --get-active-zones

Он скажет либо public, dmz, либо что-то еще. Вы должны применять только к необходимым зонам.

в случае публичной попытки:

firewall-cmd --zone=public --add-port=2888/tcp --permanent

потом не забудьте перезагрузить брандмауэр, чтобы изменения вступили в силу.

firewall-cmd --reload

в противном случае замените public для вашей зоны, например, если ваша зона dmz:

firewall-cmd --zone=dmz --add-port=2888/tcp --permanent

ответ ganeshragav - это правильно, но это также полезно знать, что вы можете использовать:

firewall-cmd --permanent --zone=public --add-port=2888/tcp 

но если это известная услуга, вы можете использовать:

firewall-cmd --permanent --zone=public --add-service=http 

а затем перезагрузите брандмауэр

firewall-cmd --reload

[ ответ изменен, чтобы отразить комментарий Мартина Питера, оригинальный ответ был --permanent В конце командной строки ]

CentOS (RHEL) 7, изменил брандмауэр для использования firewall-cmd который имеет понятие зон, которые похожи на версию Windows для общественных, домашних и частных сетей. Вы должны смотреть здесь чтобы выяснить, какой из них вы думаете, что вы должны использовать. EL7 использует public по умолчанию, так что мои примеры ниже используют.

вы можете проверить, какую зону вы используете с firewall-cmd --list-all и изменить его с помощью firewall-cmd --set-default-zone=<zone>.

после этого вы будете знать, в какой зоне разрешить услугу (или порт) на:

firewall-cmd --permanent --zone=<zone> --add-service=http

firewall-cmd --permanent --zone=<zone> --add-port=80/tcp

вы можете проверить, действительно ли порт был открыт, запустив:

firewall-cmd --zone=<zone> --query-port=80/tcp

firewall-cmd --zone=<zone> --query-service=http

по словам документация,

при внесении изменений в настройки брандмауэра в постоянном режиме, ваш выбор вступит в силу только при перезагрузке брандмауэра или перезагрузка системы.

вы можете перезагрузить настройки брандмауэра с помощью:firewall-cmd --reload.

Федора, сделал это через iptables

sudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT
sudo service iptables save

Кажется, работает

пока ganeshragav и Sotsir обеспечить правильные и непосредственно применимые подходы, полезно отметить, что вы можете добавить свои собственные услуги в /etc/firewalld/services. Для вдохновения, посмотрите на /usr/lib/firewalld/services/, где расположены предопределенные службы firewalld.

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

например, вы можете создать /etc/firewalld/services/foobar.xml:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>FooBar</short>
  <description>
    This option allows you to create FooBar connections between
    your computer and mobile device. You need to have FooBar
    installed on both sides for this option to be useful.
  </description>
  <port protocol="tcp" port="2888"/>
  <port protocol="tcp" port="3888"/>
</service>

(для получения информации о синтаксисе, do man firewalld.service.)

как только этот файл будет создан, вы можете firewall-cmd --reload чтобы он стал доступным, а затем навсегда добавить его в какую-то зону с

firewall-cmd --permanent --zone=<zone> --add-service=foobar

затем с firewall-cmd --reload чтобы сделать его активным сразу.

для просмотра открытых портов, выполните следующую команду.

firewall-cmd --list-ports

мы используем следующие сервисы порты открыты.

firewall-cmd --list-services

мы используем следующие сервисы порты открыты и увидеть открытые порты

firewall-cmd --list-all

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

firewall-cmd --add-services=ntp 

чтобы эта служба была постоянно открыта, мы используем следующее команда.

firewall-cmd -add-service=ntp --permanent 

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

firewall-cmd --add-port=132/tcp  --permanent

для запуска брандмауэра необходимо перезагрузить его с помощью следующей команды.

firewall-cmd --reload

Йа Али

лучшие ответы здесь работать, но я нашел что-то более элегантное в ответ Майкла Хэмптона к смежному вопросу. "Новый" (firewalld-0.3.9-11+) до firewall-cmd позволяет создавать правила выполнения и проверить их, прежде чем сделать их постоянными:

$ firewall-cmd --zone=<zone> --add-port=2888/tcp
<Test it out>
$ firewall-cmd --runtime-to-permanent

или вернуть изменения только во время выполнения:

$ firewall-cmd --reload

см. Также комментарий Энтони Нгуена. По-видимому, firewall-cmd --reload может работать неправильно в некоторых случаях, когда правила были удалены. В этом случае он предлагает перезапустить службу firewalld:

$ systemctl restart firewalld

для просмотра открытых портов, выполните следующую команду.

брандмауэр cmd --список-портов Мы используем следующие сервисы порты открыты.

брандмауэр-cmd --list-services Мы используем следующие сервисы порты открыты и увидеть открытые порты

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

брандмауэр-cmd -- add-services=ntp Чтобы эта служба была постоянно открыта, мы используем следующую команду.

брандмауэр-cmd-add-service=ntp --постоянный Чтобы добавить порт, используйте следующую команду

firewall-cmd --add-port=132 / tcp --permanent

Если вы знакомы с iptables service, как в centos 6 или ранее, вы все еще можете использовать iptables service путем ручной установки:

Шаг 1 => установить epel РЕПО

yum install epel-release

Шаг 2 = > установить iptables service

yum install iptables-services

Шаг 3 = > остановить службу firewalld

systemctl остановить firewalld

Шаг 4 = > отключить службу firewalld при запуске

systemctl отключить firewalld

Шаг 5 = > запуск iptables service

systemctl запуск iptables

Шаг 6 = > включить iptables при запуске

systemctl включить iptables

наконец, теперь вы можете редактировать конфигурацию iptables в /etc/sysconfig / iptables.

Так -> изменить правило - > перезагрузить / перезапустить.

сделайте как более старые centos с такой же функцией как firewalld.

Firewalld немного неинтуитивен для ветерана iptables. Для тех, кто предпочитает iptables-управляемый брандмауэр с iptables-подобным синтаксисом в легко конфигурируемом дереве, попробуйте заменить firewalld на fwtree: https://www.linuxglobal.com/fwtree-flexible-linux-tree-based-firewall/ а затем сделайте следующее:

 echo '-p tcp --dport 80 -m conntrack --cstate NEW -j ACCEPT' > /etc/fwtree.d/filter/INPUT/80-allow.rule
 systemctl reload fwtree