Wie entferne ich den Zugriff auf einen Port mithilfe einer Firewall auf Centos7?

12

Hatte ich einen Port für die öffentliche Nutzung mit Firewall-Cmd geöffnet, wollte ich diesen Port auf eine bestimmte IP beschränken, für die ich auf dieser SITE die Antwort gefunden habe .

Ich habe folgendes benutzt, um es zu öffnen:

$ firewall-cmd --permanent --zone=public --add-port=10050/tcp
$ firewall-cmd --reload

Mit den Informationen aus den gefundenen Informationen wollte ich den Zugriff auf diesen Port auf eine bestimmte IP-Adresse beschränken. Muss ich diesen Port zuerst vom öffentlichen Zugriff entfernen?

Oder kann ich die neue Regel einfach wie folgt hinzufügen und das wird das Problem für mich lösen?

$ firewall-cmd --new-zone=special
$ firewall-cmd --permanent --zone=special --add-rich-rule='
  rule family="ipv4"
  source address=”123.1.1.1"
  port protocol="tcp" port="10050" accept'

Ich habe Folgendes versucht:

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --reload

Aber wenn ich folgendes laufen lasse:

$ firewall-cmd --list-ports 

10050/tcp wird immer noch angezeigt.

Bitte haben Sie Verständnis dafür, dass ich mit den Server-Seitenkonfigurationen nicht allzu vertraut bin.

Lösung: Vergessen Sie nicht die --Runtime-to-Permanent

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload 
mcv
quelle
Ah, ich habe das --permanent
mcv
1
Sie sollten dies als Antwort posten (und akzeptieren). Es ist durchaus akzeptabel, eigene Antworten zu akzeptieren, da die Frage auf diese Weise als gelöst markiert wird.
Gerald Schneider
1
Es ist besser, nicht zu verwenden --permanent, wenn Sie einen Fehler mit einer Firewall-Regel machen. Wenn Sie sich selbst benutzt --permanentund ausgesperrt haben, werden Sie Schwierigkeiten haben, wieder einzusteigen, da Sie keine Möglichkeit haben, sich zu erholen. Verwenden --permanentSie stattdessen nicht und, wenn Sie mit den Regeln zufrieden sind, verwenden Sie firewall-cmd --runtime-to-permanent, um die Regeln festzulegen. Wenn Sie gesperrt werden, wird das Neuladen der Firewall oder der Neustart wiederholt.
Michael Hampton
Kann dies firewall-cmd --runtime-to-permanentalso nach dem angewendet werden firewall-cmd --reloadoder ersetzt es es vollständig? Ich werde das auf jeden Fall versuchen.
mcv

Antworten:

26

Lösung: Vergessen Sie nicht --runtime-to-permanent

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent 
$ firewall-cmd --reload 
mcv
quelle
1
Ich musste noch folgen systemctl restart firewalld.
JaKu
Das hat bei mir nicht geklappt. systemctlist Version 219und firewall-cmdist Version 0.5.3auf CentOS 7.5 64bit.
Pred
4
# firewall-cmd --zone=public --remove-port=12345/tcp --permanent
# firewall-cmd --reload

Ersetzen Sie 12345 durch den Port, den Sie entfernen möchten.

Zing Lee
quelle
1
Ich habe irgendwo gelesen, dass in Fedora doc vorgeschlagen wird, --permanentals erste Option zu setzen. Aber ja, --permanentist der Schlüssel.
WesternGun
Ich behalte es normalerweise als letzte Option, um sicherzustellen, dass ich einen Neustart durchführen kann, ohne die Regel dauerhaft zu machen, wenn die Regel aus irgendeinem Grund falsch ist. Wenn es tut, was ich will, kann ich nach oben gehen und --permanentzum Ende hinzufügen .
Justin E
0

Befolgen Sie diese Schritte, es wird Ihnen gut gehen:

  1. $ firewall-cmd --zone = public --remove-port = 10050 / tcp
  2. $ firewall-cmd --runtime-to-permanent
  3. $ firewall-cmd --reload
  4. $ systemctl Firewall neu starten
  5. $ firewall-cmd --zone = public --list-ports
Dan Howel
quelle
Ich glaube nicht, dass Sie die Firewall neu starten müssen. Sie firewalldwurde entwickelt, um zu vermeiden, dass alle Dienste jedes Mal neu gestartet werden, wenn Sie eine Konfiguration ändern.
Vdegenne