Firewall op CentOS 7

Bij mijn vorige webserver stond de firewall standaard uit. dat is natuurlijk niet zo verstandig, dus probeer ik het bij mijn huidige server aan te laten staan. Maar dat levert wel wat extra uitzoekwerk op, hier en daar. In deze blog verzamel ik de dingen die ik er over heb ontdekt. deze gaan dus specifiek over CentOS 7 en let op: maak een backup voordat je dingen probeert die ik hier opschrijf.

Status en aan/uitzetten

Om te zien of de firewall aan staat, gebruik:
systemctl status firewalld

De firewall helemaal uitzetten:
systemctl disable firewalld
systemctl stop firewalld

De firewall weer aanzetten:
systemctl enable firewalld
systemctl start firewalld

Zones

De firewall in CentOS maakt gebruik van Zones. De zone die voor mij interessant is is de Public zone. Dat is de zone waarop alle regels zijn ingesteld die voor de buitenwereld gelden. Om te zien welke poorten open staan van buitenaf:

firewall-cmd --zone=public --list-all

Poort toevoegen

  • Om een poort (bijvoorbeeld 1234) open te stellen van buitenaf:
    firewall-cmd --permanent --zone=public --add-port=1234/tcp
  • Daarna moet de firewall deze instelling ook gaan gebruiken:
    firewall-cmd --reload

Port verwijderen

  • Een poort afsluiten (bijvoorbeeld 1234) van buitenaf gaat zo:
    firewall-cmd --permanent --zone=public --remove-port=2222/tcp
  • Daarna moet de firewall deze instelling nog gaan gebruiken:
    firewall-cmd --reload

Een poort openstellen alleen voor een bepaald ipadres

Als je bijvoorbeeld MySQL wilt kunnen bereiken vanaf je thuisadres, dan moet je al in DirectAdmin je eigen ipadres toevoegen aan adressen die bij de database mogen. maar als je een firewall hebt dan ben je er dan nog niet. Een nette methode is een speciale zone aanmaken voor de locatie waar je toegang toe wilt verlenen. Je hebt dus Public, maar nu voeg je bijvoorbeeld twee zones toe: Work en Home.

  • Voeg een zone toe:
    firewall-cmd --permanent --new-zone=home
  • Reload de firewall om deze zone actief te maken:
    firewall-cmd --reload
  • Koppel een ipadres (bijvoorbeeld 1.2.3.4) aan deze zone:
    firewall-cmd --permanent --zone=home --add-source=1.2.3.4/32
  • Open nu een poort (bijvoorbeeld 1234):
    firewall-cmd --permanent --zone=home --add-port=1234/tcp