Hoe een poort te openen op CentOS/RHEL?

Gepubliceerd 5 juli 2024

Probleem: Poorten openen op CentOS/RHEL

Het openen van poorten op CentOS of RHEL systemen is een taak voor systeembeheerders en ontwikkelaars. Het is nodig wanneer je specifiek netwerkverkeer door de firewall wilt toelaten om diensten op je server te bereiken. Het proces kan verwarrend zijn voor degenen die nieuw zijn met Linux firewalls, vooral op deze distributies die standaard firewalld gebruiken.

Poorten openen op CentOS/RHEL

FirewallD gebruiken voor poortbeheer

FirewallD is de standaard firewall tool voor CentOS en RHEL. Het beheert firewallregels. Volg deze stappen om poorten te openen met FirewallD:

  1. Controleer FirewallD status:

    sudo firewall-cmd --state
  2. Lijst open poorten:

    sudo firewall-cmd --list-ports
  3. Open een poort (bijv. poort 80 voor HTTP):

    sudo firewall-cmd --add-port=80/tcp --permanent
  4. Herlaad firewallregels:

    sudo firewall-cmd --reload

IPTables configureren voor poorttoegang

IPTables is een oudere firewall tool. Gebruik het om poorten te openen:

  1. Controleer IPTables regels:

    sudo iptables -L
  2. Voeg een regel toe om een poort te openen (bijv. poort 22 voor SSH):

    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  3. Bewaar nieuwe regels:

    sudo service iptables save
  4. Herstart IPTables:

    sudo service iptables restart

Wees voorzichtig bij het openen van poorten, omdat het de beveiliging van je systeem kan beïnvloeden. Open alleen de poorten die je nodig hebt en controleer je firewall logs regelmatig.

Open poorten verifiëren op CentOS

Netstat gebruiken om open poorten te lijsten

Netstat is een tool voor het controleren van open poorten op je CentOS systeem. Om netstat te gebruiken:

  1. Open een terminal.
  2. Voer dit commando uit:
    sudo netstat -tuln

    Dit toont alle luisterende TCP en UDP poorten.

De output toont:

  • Protocol (TCP of UDP)
  • Lokaal adres en poortnummer
  • Extern adres en poortnummer
  • Verbindingsstatus

Bijvoorbeeld:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN

Dit betekent dat poort 22 (SSH) open is en luistert naar verbindingen.

LSOF gebruiken om luisterende poorten te controleren

LSOF (List Open Files) is een andere tool om open poorten te identificeren. Om LSOF te gebruiken:

  1. Installeer LSOF als het niet op je systeem staat:

    sudo yum install lsof
  2. Voer dit commando uit om luisterende poorten te zien:

    sudo lsof -i -P -n | grep LISTEN

Dit commando toont:

  • De procesnaam die de poort gebruikt
  • De gebruiker die het proces uitvoert
  • Het poortnummer

Bijvoorbeeld:

sshd    1234    root    3u  IPv4  12345      0t0  TCP *:22 (LISTEN)

Dit toont dat de SSH daemon luistert op poort 22.

Zowel netstat als LSOF geven informatie over open poorten op je CentOS systeem, waardoor je je firewall instellingen kunt controleren.

Alternatieve methoden voor poortconfiguratie

System-Config-Firewall Tool gebruiken

System-config-firewall is een tool voor het beheren van firewall instellingen op CentOS. Het biedt een visuele interface voor degenen die dit verkiezen boven commandoregel operaties.

Om system-config-firewall te gebruiken:

  1. Installeer de tool:

    sudo yum install system-config-firewall
  2. Start de applicatie:

    sudo system-config-firewall
  3. Selecteer in de interface "Other Ports" en klik op "Add".

  4. Kies het protocol (TCP of UDP) en voer het poortnummer in.

  5. Klik op "Apply" om de wijzigingen op te slaan.

Deze methode is nuttig voor gebruikers die de voorkeur geven aan visuele tools.

Cloud-specifiek poortbeheer

Wanneer je CentOS uitvoert op cloud platforms, moet je mogelijk extra firewall instellingen overwegen voor je cloud provider.

Voor cloud-gehoste CentOS:

  1. Raadpleeg de documentatie van je cloud provider voor firewall beheer.

  2. Gebruik het controlepaneel van het cloud platform of CLI tools om netwerk beveiligingsgroepen te beheren.

  3. Configureer zowel de CentOS firewall als de firewall van de cloud provider om het gewenste verkeer toe te staan.

  4. Sommige cloud providers vereisen mogelijk dat je poorten opent op netwerkniveau voordat je de firewall op OS-niveau configureert.

  5. Test je configuratie om er zeker van te zijn dat zowel de cloud als OS firewalls correct samenwerken.

Onthoud dat cloud omgevingen andere beveiligingspraktijken kunnen hebben in vergelijking met on-premises setups. Volg altijd de beveiligingsrichtlijnen van je cloud provider bij het beheren van poorten en firewallregels.

Problemen met poorttoegang oplossen op CentOS

Wanneer je problemen met poorttoegang ondervindt op CentOS, kun je deze problemen tegenkomen. Hier zijn enkele oplossingen om je te helpen ze op te lossen:

  1. Poort opent niet:

    • Controleer de firewallregels met firewall-cmd --list-all
    • Voeg de poort toe aan de juiste zone
    • Herlaad de firewall na het maken van wijzigingen
  2. Service start niet:

    • Controleer of de service actief is met systemctl status service_name
    • Controleer de service logs op fouten
    • Zorg ervoor dat de service de juiste poort gebruikt
  3. Verkeerde SELinux instellingen:

    • Gebruik sestatus om te controleren of SELinux aan staat
    • Voer semanage port -l | grep port_number uit om SELinux poortlabels te controleren
    • Voeg indien nodig de juiste SELinux context toe met semanage port -a -t port_label_t -p tcp port_number
  4. Conflicterende applicaties:

    • Gebruik netstat -tuln of ss -tuln om te controleren of een andere applicatie de poort gebruikt
    • Stop of wijzig de conflicterende applicatie indien nodig

Om firewall logs te controleren op verbindingspogingen:

  1. Schakel logging in voor geweigerde pakketten:

    sudo firewall-cmd --set-log-denied=all --permanent
    sudo firewall-cmd --reload
  2. Bekijk de firewall logs:

    sudo journalctl -f -u firewalld
  3. Zoek naar items met "FINAL_REJECT" of "FINAL_DROP" die geblokkeerde verbindingen tonen

  4. Controleer de logitems om het bron-IP, bestemmingspoort en protocol van geblokkeerd verkeer te vinden