Öffnen Sie den Firewall-Port unter CentOS 7

339

Ich verwende CentOS 7 und muss sicherstellen, dass die Ports 2888 und 3888 geöffnet sind.

Ich habe diesen Artikel gelesen, aber das hat nicht funktioniert, da unter CentOS 7 kein iptables saveBefehl vorhanden ist.

Jemand sagte mir, dass die obige URL für CentOS 7 nicht gültig ist und ich sollte dieser folgen . In diesem Artikel ist mir jedoch nicht klar, welchen Befehl ich genau ausführen muss.

Ich habe auch gefunden

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

Dies überlebt jedoch Neustarts nicht.

Wie kann ich die Ports öffnen und einen Neustart überstehen?

Weiß nicht viel
quelle
Stack Overflow ist eine Site für Programmier- und Entwicklungsfragen. Diese Frage scheint nicht zum Thema zu gehören, da es nicht um Programmierung oder Entwicklung geht. Siehe Welche Themen kann ich hier in der Hilfe erfragen? Vielleicht ist Super User oder Unix & Linux Stack Exchange ein besserer Ort, um zu fragen.
Jww

Antworten:

653

Verwenden Sie diesen Befehl, um Ihre aktiven Zonen zu finden:

firewall-cmd --get-active-zones

Es wird entweder public, dmz oder etwas anderes sagen. Sie sollten sich nur für die erforderlichen Zonen bewerben.

Im Falle eines öffentlichen Versuchs:

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

Denken Sie dann daran, die Firewall neu zu laden, damit die Änderungen wirksam werden.

firewall-cmd --reload

Andernfalls ersetzen Sie Ihre Zone durch public, z. B. wenn Ihre Zone dmz ist:

firewall-cmd --zone=dmz --add-port=2888/tcp --permanent
Ganeshragav
quelle
29
Ich habe diesen Befehl verwendet, aber er hat bei mir nicht funktioniert. Er hat sich --zone=dmzin--zone=public
Tom Hall,
2
Ja, es ist nützlich, auch public zu verwenden. Bitte überprüfen Sie den folgenden Befehl von Sotsir auch auf Korrektur.
Ganeshragav
23
Keine der beiden wichtigsten Antworten hier erklärt tatsächlich, was --permanentsie tun, sie sagen nur, dass sie es tun sollen. Beides wären vollständigere und nützlichere Antworten, wenn erklärt würde, wie die Antwort funktioniert. Aus einer der OP-Ressourcen: "Die Regeln können durch Hinzufügen der Option --permanent [...] permanent gemacht werden. Wenn die Regeln nicht permanent gemacht werden, müssen sie jedes Mal nach dem Empfang der Nachricht zum Starten, Neustarten oder erneuten Laden angewendet werden von der Firewall mit D-BUS. "
dKen
9
Aktivieren Sie Ports nicht einfach blind in allen Zonen, bis Sie den richtigen getroffen haben. Verwenden firewall-cmd --get-active-zonesSie diese Option , um herauszufinden, welche Zone auf Ihrem System verwendet wird. Auch man firewall-cmd.
basic6
1
Beim Lesen der Fedora-Dokumentation heißt es The --permanent option needs to be the first option for all permanent calls. Ich habe mit den oben genannten Informationen keine Fehler erhalten, bin mir jedoch nicht sicher, ob dies zu Problemen bei anderen führen kann.
Marc
113

Die Antwort von ganeshragav ist richtig, aber es ist auch nützlich zu wissen, dass Sie Folgendes verwenden können:

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

Wenn es sich jedoch um einen bekannten Dienst handelt, können Sie Folgendes verwenden:

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

und laden Sie dann die Firewall neu

firewall-cmd --reload

[Antwort geändert, um Martin Peters Kommentar widerzuspiegeln, ursprüngliche Antwort --permanentam Ende der Befehlszeile]

Sotsir
quelle
8
Ich würde mich nicht darauf verlassen, die --permanentOption am Ende der Anweisung zu verwenden. In der Dokumentation wird ausdrücklich darauf hingewiesen, dass dies die erste Option sein sollte.
Martin Peter
1
@MartinPeter man firewall-cmdgibt auf meinem Computer (Fedora 21) keinen solchen Hinweis.
Jonathon Reinhart
@ JonathonReinhart Ich beziehe mich auf Fedoras FirewallD-Wiki und sage : The --permanent option needs to be the first option for all permanent calls.
Martin Peter
es gibt mir FirewallD läuft nicht
Rahul Tathod
50

CentOS (RHEL) 7 hat die Firewall so geändert, dass sie firewall-cmdZonen verwendet, die einer Windows-Version von öffentlichen, privaten und privaten Netzwerken ähneln. Sie sollten hier nachsehen , welche Sie Ihrer Meinung nach verwenden sollten. EL7 publicwird standardmäßig verwendet, so wie es in den folgenden Beispielen verwendet wird.

Sie können überprüfen, mit welcher Zone Sie arbeiten, firewall-cmd --list-allund diese ändern firewall-cmd --set-default-zone=<zone>.

Sie wissen dann, in welcher Zone ein Dienst (oder Port) zugelassen werden soll:

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

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

Sie können überprüfen, ob der Port tatsächlich geöffnet wurde, indem Sie Folgendes ausführen:

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

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

Laut Dokumentation ,

Wenn Sie im permanenten Modus Änderungen an den Firewall-Einstellungen vornehmen, wird Ihre Auswahl nur wirksam, wenn Sie die Firewall neu laden oder das System neu startet.

Sie können die Firewall-Einstellungen neu laden mit : firewall-cmd --reload.

Rick Smith
quelle
26

Fedora, hat es über gemacht iptables

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

Scheint zu funktionieren

Joviano Dias
quelle
23

Verwenden Sie den folgenden Befehl, um offene Ports anzuzeigen.

firewall-cmd --list-ports

Wir verwenden Folgendes, um Dienste anzuzeigen, deren Ports geöffnet sind.

firewall-cmd --list-services

Wir verwenden Folgendes, um Dienste anzuzeigen, deren Ports geöffnet sind, und um offene Ports anzuzeigen

firewall-cmd --list-all

Um der Firewall einen Dienst hinzuzufügen, verwenden wir den folgenden Befehl. In diesem Fall verwendet der Dienst einen beliebigen Port zum Öffnen in der Firewall.

firewall-cmd --add-services=ntp 

Damit dieser Dienst dauerhaft geöffnet ist, verwenden wir den folgenden Befehl.

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

Verwenden Sie den folgenden Befehl, um einen Port hinzuzufügen

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

Um die Firewall auszuführen, muss sie mit dem folgenden Befehl neu geladen werden.

firewall-cmd --reload

Ya Ali

Hasan Barary
quelle
Oben sollte "firewall-cmd -add-service = ntp --permanent" als "firewall-cmd --add-service = ntp --permanent"
Maduranga Siriwardena
14

Während Ganeshragav und Sotsir korrekte und direkt anwendbare Ansätze bieten, ist es nützlich zu beachten, dass Sie Ihre eigenen Dienste hinzufügen können /etc/firewalld/services. Schauen Sie sich an /usr/lib/firewalld/services/, wo sich die vordefinierten Dienste von firewalld befinden.

Der Vorteil dieses Ansatzes besteht darin, dass Sie später wissen, warum diese Ports geöffnet sind, wie Sie es in der Servicedatei beschrieben haben. Sie können es jetzt auch auf jede Zone anwenden, ohne das Risiko von Tippfehlern. Darüber hinaus müssen Änderungen am Dienst nicht auf alle Zonen separat angewendet werden, sondern nur auf die Dienstdatei.

Sie können beispielsweise Folgendes erstellen /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>

(Informationen zur Syntax finden Sie hier man firewalld.service.)

Sobald diese Datei erstellt wurde, können firewall-cmd --reloadSie sie verfügbar machen und sie dann dauerhaft einer Zone mit hinzufügen

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

gefolgt von firewall-cmd --reload, um es sofort aktiv zu machen.

equaeghe
quelle
6

Verwenden Sie den folgenden Befehl, um offene Ports anzuzeigen:

firewall-cmd --list-ports

Wir verwenden Folgendes, um Dienste anzuzeigen, deren Ports geöffnet sind:

firewall-cmd --list-services

Wir verwenden Folgendes, um Dienste anzuzeigen, deren Ports geöffnet sind, und um offene Ports anzuzeigen:

firewall-cmd --list-all

Um der Firewall einen Dienst hinzuzufügen, verwenden wir den folgenden Befehl. In diesem Fall verwendet der Dienst einen beliebigen Port zum Öffnen in der Firewall:

firewall-cmd --add-services=ntp 

Damit dieser Dienst dauerhaft geöffnet ist, verwenden wir den folgenden Befehl:

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

Verwenden Sie den folgenden Befehl, um einen Port hinzuzufügen:

firewall-cmd --add-port=132/tcp  --permanent
Hasan Barary
quelle
4

Die besten Antworten hier funktionieren, aber ich fand etwas eleganteres in Michael Hamptons Antwort auf eine verwandte Frage. Mit der --runtime-to-permanentOption "new" (firewalld-0.3.9-11 +) firewall-cmdkönnen Sie Laufzeitregeln erstellen und testen, bevor Sie sie dauerhaft machen:

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

Oder um die Nur-Laufzeit-Änderungen rückgängig zu machen:

$ firewall-cmd --reload

Siehe auch den Kommentar von Antony Nguyen . Anscheinend funktioniert firewall-cmd --reload in einigen Fällen, in denen Regeln entfernt wurden, möglicherweise nicht richtig. In diesem Fall schlägt er vor, den Firewall-Dienst neu zu starten:

$ systemctl restart firewalld
Neal Gokli
quelle
1

Wenn Sie in Centos 7 FIrewalld mehrere Ports zulassen, können wir den folgenden Befehl verwenden.

#firewall-cmd --add-port={port number/tcp,port number/tcp} --permanent

#firewall-cmd --reload


And check the Port opened or not after reloading the firewall.


#firewall-cmd --list-port


For other configuration [Linuxwindo.com][1]
Vinay Patil
quelle
0

Wenn Sie mit dem iptables-Dienst wie in Centos 6 oder früher vertraut sind, können Sie den iptables-Dienst weiterhin durch manuelle Installation verwenden:

Schritt 1 => Epel Repo installieren

yum installiere epel-release

Schritt 2 => Iptables-Dienst installieren

yum installiere iptables-services

Schritt 3 => Firewall-Dienst beenden

systemctl stop firewalld

Schritt 4 => Firewall-Dienst beim Start deaktivieren

systemctl deaktiviere firewalld

Schritt 5 => Starten Sie den iptables-Dienst

systemctl start iptables

Schritt 6 => iptables beim Start aktivieren

systemctl enable iptables

Endlich können Sie Ihre iptables-Konfiguration unter / etc / sysconfig / iptables bearbeiten.

Also -> Regel bearbeiten -> neu laden / neu starten.

mag ältere Centos mit der gleichen Funktion wie Firewalld.

dek.tiram
quelle
0

Firewalld ist für den iptables-Veteranen etwas nicht intuitiv. Wenn Sie eine iptables-gesteuerte Firewall mit iptables-ähnlicher Syntax in einem einfach konfigurierbaren Baum bevorzugen, ersetzen Sie firewalld durch fwtree: https://www.linuxglobal.com/fwtree-flexible-linux-tree-based-firewall/ und dann Mach Folgendes:

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

Hallo in Centos 7 Firewall-Cmd. Ja, richtig, wenn Sie firewall-cmd --zone = public --add-port = 2888 / tcp verwenden, aber wenn Sie firewal firewall-cmd --reload neu laden

Ihre Konfiguration wird nicht gespeichert

Sie müssen einen Schlüssel hinzufügen

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

Inv0k-er
quelle