
Ich verwende CentOS Linux Version 7.7.1908 (Core).
Ich möchte eingehende und ausgehende Verbindungen von allen TCP/UDP-Ports außer einigen wenigen blockieren.
Nachfolgend sehen Sie die aktuelle Firewall-Konfiguration des Betriebssystems:
# firewall-cmd --get-active-zones
public
interfaces: ens160
# firewall-cmd --list-ports
5901/tcp 5902/tcp 5912/tcp 5911/tcp 5913/tcp 5914/tcp
# firewall-cmd --list-services
dhcpv6-client ssh
Obwohl die Firewall scheinbar nur Verbindungen über die oben aufgeführten Ports zulässt, kann ich dennoch bestimmte Ports wie 22 (SSH), 80 (HTTP) usw. verwenden.
Wie kann ich das beheben?
Antwort1
Dort finden Sie die Antwort mit iptables
https://superuser.com/questions/769814/how-to-block-all-ports-except-80-443-with-iptables/770191
Sie können dort einfach die Ports öffnen, die Sie benötigen, statt 80 und 443
Antwort2
Sie können das Verzeichnis /etc/firewalld/zones einsehen und public.xml ändern.
Standardmäßig /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<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"/>
<service name="dhcpv6-client"/>
<service name="cockpit"/>
</zone>
Dann
firewall-cmd --reload
Sie können Ihre Zone von „öffentlich“ auf „Drop“ ändern.
cp /usr/lib/firewalld/zones/drop.xml /etc/firewalld/zones/
#Add to /etc/firewalld/zones/ the following to permit ssh.
<service name="ssh"/>
firewall-cmd --set-default-zone=drop
firewall-cmd --reload
Wenn Sie die Standard-Firewallzone auf DROP ändern, müssen Sie Ihre Ports möglicherweise erneut hinzufügen.
firewall-cmd --permanent --add-port={5901,5902,5912.5911,5913,59124}/tcp
firewall-cmd --reload