CentOS7 Firewall hat keine Zonen

7

Ich habe firewalld auf einer neuen CentOS 7-Minimalinstallation auf einem VPS installiert (seltsamerweise sollte Firewalld nach dem, was ich gesucht habe, bereits mit dem System installiert sein).

Ich habe versucht, einige Ports zu öffnen, aber beim Ausführen eines Befehls wie

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

Ich erhalte folgende Fehlermeldung : Error: INVALID_ZONE: public.

Beim Anzeigen verfügbarer Zonen mit firewall-cmd --get-zonesbekomme ich nichts.

Wie soll es konfiguriert werden?

Nicolas
quelle
Läuft die Firewall? Versuchen Sie es erneut zu installieren. Haben Sie Zonen erstellt? Hat Ihr VPS-Anbieter sie gelöscht?
Michael Hampton
Es läuft, neu installiert, nichts geändert. Ich habe keine Zonen erstellt und konnte nirgendwo eine richtige Anleitung finden. Sollte es bei der Installation keine Standardeinstellungen geben? Überall, wo ich nachgesehen habe, heißt es, dass die Firewall bereits mit dem System installiert sein sollte, aber nicht.
Nicolas
Habe genau das gleiche Problem bei einer Pi-Installation von Centos 7 (RedSleeve 7). Es scheint sich so zu verhalten, als hätte es die Zonendateien einfach nicht geladen.
Neil Townsend
firewall-cmd --new-zone=publickönnte Ihnen beim Erstellen der Zone helfen, aber dann sollten Sie sicherstellen, dass sie mit der standardmäßig erstellten öffentlichen Zone identisch ist
Pierre-Alain TORET
1
Gibt es Zonen (XML-Dateien) in / usr / lib / firewalld / zone?
Digitaladdictions

Antworten:

0

Das klingt nach einem ziemlich seltsamen VPS-Setup und -Problem, aber Sie können ganz einfach Ihre eigenen Zonen erstellen, wenn Sie nichts dagegen haben, ein bisschen XML zu schreiben.

Meine öffentliche Zone ist:

<?xml version="1.0" encoding="utf-8"?>
<zone target="DROP">
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <port protocol="tcp" port="443"/>

</zone>

Es handelt sich um eine leicht modifizierte Version der Standarddatei public.xml, die Pakete löscht, anstatt sie abzulehnen, und sowohl HTTPS als auch SSH zulässt.

Sie würden dies in (glaube ich) /etc/firewalld/zones/public.xml setzen.

Ich wurde von der Wahrheit gegessen
quelle
0

VPS machen alle möglichen dummen Dinge. Einige von ihnen zerstören SELinux auf Kernel-Ebene, sodass Sie es nicht einmal aktivieren können. Zunächst möchten Sie Ihren Kernel mit überprüfen uname -r. Es sollte sagen el7, zum Beispiel

3.10.0-693.2.2.el7.x86_64

Wenn es el7 ist, bist du gut. Wenn nicht, müssen Sie bei Ihrem VPS nachfragen, ob Sie die Standard-EL-Kernel verwenden oder Ihre Instanz von Ihrem eigenen CentOS ISO neu installieren können (das habe ich bei Vultr getan). Es ist möglicherweise immer noch möglich, Firewalld mit einem benutzerdefinierten Kernel zu reparieren, aber es ist besser, die offiziellen zu haben.

Wenn Firewalld tatsächlich funktioniert und nur keine Zonen hat, erstellen Sie einfach die Zone und fügen Sie die Dienste hinzu.

firewall-cmd --new-zone=public --permanent
firewall-cmd --reload
firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --reload

Hinweis: Sie müssen dies in derselben Sitzung tun. Andernfalls wird SSH möglicherweise gesperrt und Sie greifen auf den Konsolenzugriff zurück, um Ihre Firewall zu reparieren.

bviktor
quelle