Iptables configureren met system-config-firewall

11 augustus, 2014
Handleidingen
Iptables, Firewall, Beveiliging, CentOS, Fedora
Screenshot system-config-firewall

Wie snel een eenvoudige firewall wil opzetten, en de basis van het relatief complexe iptables nog niet onder de knie heeft, kan gebruik maken van system-config-firewall. Dit is een grafische gebruikersomgeving (GUI) waarin je onder meer poorten kunt openen en doorverwijzen (port forwarding), ICMP filters kunt instellen en netwerkkaarten kunt maskeren. Deze handleiding richt zich met name op het simpelweg openen en sluiten van specifieke poorten, zoals poort 80 voor HTTP-verkeer en poort 22 voor SSH.

Let op! Het verkeerd configureren van je firewall kan tot gevolg hebben dat je je systeem niet meer van buitenaf kunt benaderen, bijvoorbeeld omdat de SSH-poort (22) geblokkeerd wordt. Deze waarschuwing is met name van belang als je geen andere toegangsmogelijkheden hebt, zoals een remote console. Je kunt je wijzigingen dan immers niet meer ongedaan maken. Informeer eventueel naar de mogelijkheden bij je hosting provider.

Het programma system-config-firewall is alleen beschikbaar voor Red Hat Enterprise Linux (RHEL) en Linux-distributies die daar op gebaseerd zijn, zoals CentOS, Fedora en Scientific Linux. Ook wordt ervan uitgegaan dat iptables reeds op het systeem geïnstalleerd is; dit is in de meeste gevallen automatisch gebeurd bij de installatie van het besturingssysteem, en kun je verifiëren door middel van het volgende commando:

iptables --version

Installatie

Het installeren van system-config-firewall gaat eenvoudig via de YUM package manager:

yum install system-config-firewall

Zodra het programma in de base-repository gevonden wordt, kun je de installatie bevestigen door "y" te typen (voor "yes"), of "n" (voor "no") als je wilt afbreken, en op Enter te drukken.

Maak je gebruik van een Linux-distributie die gebaseerd is op een RHEL-versie ouder dan 6, bijvoorbeeld CentOS 5.*, dan heeft het programma een andere naam, system-config-securitylevel:

yum install system-config-securitylevel

Dit commando zal zowel system-config-securitylevel als system-config-securitylevel-tui installeren. Laatstgenoemde is de "text-based user interface"-versie die geschikt is voor gebruik in de Linux terminal, bijvoorbeeld wanneer je je systeem via SSH beheert. Vanaf RHEL6 zijn deze twee versies samengevoegd in system-config-firewall.

Programma starten

Als de installatie zonder problemen is verlopen, start je het programma met het commando:

system-config-firewall

Of, als je system-config-securitylevel geïnstalleerd hebt:

system-config-securitylevel

Gebruik

Zodra het programma geopend is, kun je door middel van de pijltjestoetsen en/of de "Tab"-toets op je toetsenbord door het menu navigeren. Voor het aan- of uitvinken van opties en het 'indrukken' van een knop, zoals "OK" of "Cancel", gebruik je de spatiebalk.

Firewall configureren

Screenshot system-config-firewall

Zoals het beginscherm aangeeft, blokkeert een firewall alle inkomende verbindingen, wanneer zij niet aan de ingestelde regels voldoen. Zonder een firewall is je systeem kwetsbaar, omdat iedereen in principe in staat is om deze van buitenaf te benaderen. Zorg er daarom voor dat het hokje tussen "Firewall:" en "Enabled" is aangevinkt, voordat je verder gaat.

Navigeer vervolgens naar de knop "Customize" en druk de spatiebalk in. Je krijgt nu een lijst voorgeschoteld met "Trusted Services", oftewel diensten die voor de buitenwereld vrij toegankelijk moeten zijn, zoals een web-, SSH- of FTP-server. Tot welke services je toegang verleent, is afhankelijk van het doel van je systeem. Wil je bijvoorbeeld een website toegankelijk maken, dan moet poort 80 open staan, en vink je daarom de regel "WWW (HTTP)" aan. Als je verbinding maakt via SSH, zorg er dan voor dat ook de "SSH"-regel is aangevinkt voor je verder gaat, om te voorkomen dat je jezelf buitensluit na het activeren van je firewall.

Overige poorten openen

Staat een benodigde service niet in de lijst, of heb je bijvoorbeeld de standaardpoort van een dienst als SSH gewijzigd, dan kun je, door in het menu op "Forward" te drukken, één of meerdere aangepaste poorten instellen. Navigeer vervolgens naar "Add" om het "Port and Protocol"-scherm te benaderen, waar je de benodigde poort en het bijbehorende protocol kunt invullen. In de meeste gevallen is het protocol tcp van toepassing. Met de "OK"-knop sla je de instellingen op.

Firewall opslaan en activeren

In ieder scherm kun je naar de "Close"-knop navigeren om de instellingen op te slaan en terug te keren naar het beginscherm. Daar kun je vervolgens op de "OK"-knop drukken om de firewall te activeren en het programma af te sluiten. Ben je niet zeker van je instellingen, druk dan op "Cancel" om het programma te stoppen en de wijzigingen te negeren.

Je hebt nu een eenvoudige doch functionele firewall gecreëerd, die alle inkomende verbinding blokkeert tenzij ze aan de met system-config-firewall ingestelde regels voldoen. Wil je eens bekijken hoe de ingestelde regels in iptables geregistreerd zijn, gebruik dan het volgende commando:

iptables -L

Let op! Dit is je laatste kans om te verifiëren dat je SSH-poort open staat. Alle reeds gemaakte verbindingen, zoals een huidige SSH-verbinding, zullen namelijk actief blijven voor zolang je sessie actief is. Zodra je de verbinding verbreekt, moet je, net als alle andere buitenstaanders, voldoen aan de zojuist ingestelde regels van je firewall. Wordt de SSH-poort actief geblokkeerd door iptables, dan zul je geen nieuwe verbinding kunnen maken, en heb je jezelf effectief buitengesloten. Verifieer je instellingen met bovenstaand commando, of door system-config-firewall nogmaals te openen.