RHCSA-serie: Firewall-essentials en netwerkverkeerscontrole met FirewallD en Iptables – Deel 11

In eenvoudige bewoordingen is een firewall een beveiligingssysteem dat het inkomende en uitgaande verkeer in een netwerk controleert op basis van een reeks vooraf gedefinieerde regels (zoals de pakketbestemming / bron of het type verkeer, bijvoorbeeld).

RHCSA: Control Network Traffic with FirewallD and Iptables – Part 11

In dit artikel zullen we de basisprincipes van firewalld bekijken, de standaard dynamische firewall daemon in Red Hat Enterprise Linux 7, en de iptables service, de legacy firewall service voor Linux, waarmee de meeste systeem- en netwerkbeheerders goed bekend zijn, en die ook beschikbaar is in RHEL 7.

A Comparison Between FirewallD and Iptables

Onder de motorkap praten zowel firewalld als de iptables service met het netfilter framework in de kernel via dezelfde interface, niet verrassend, het iptables commando. Echter, in tegenstelling tot de iptables service kan firewalld de instellingen wijzigen tijdens normale systeemwerking zonder dat bestaande verbindingen verloren gaan.

Firewalld zou standaard geïnstalleerd moeten zijn in uw RHEL-systeem, hoewel het mogelijk niet actief is. U kunt dit verifiëren met de volgende commando’s (firewall-config is de gebruikersinterface configuratietool):

# yum info firewalld firewall-config
Check FirewallD Information

en,

# systemctl status -l firewalld.service
Check FirewallD Status

Aan de andere kant is de iptables service niet standaard inbegrepen, maar kan worden geïnstalleerd via.

# yum update && yum install iptables-services

Beide daemons kunnen worden gestart en ingeschakeld om bij het opstarten te starten met de gebruikelijke systemd commando’s:

# systemctl start firewalld.service | iptables-service.service
# systemctl enable firewalld.service | iptables-service.service

Lees ook: Nuttige commando’s voor het beheren van systemd-services

Wat betreft de configuratiebestanden, gebruikt de iptables-service /etc/sysconfig/iptables (die niet zal bestaan als het pakket niet is geïnstalleerd op uw systeem). Op een RHEL 7-box die wordt gebruikt als een clusterknooppunt, ziet dit bestand er als volgt uit:

Iptables Firewall Configuration

Terwijl firewalld zijn configuratie opslaat in twee mappen, /usr/lib/firewalld en /etc/firewalld:

# ls /usr/lib/firewalld /etc/firewalld
FirewallD Configuration

We zullen deze configuratiebestanden later in dit artikel verder onderzoeken, nadat we hier en daar een paar regels hebben toegevoegd. Tot nu toe volstaat het om u eraan te herinneren dat u altijd meer informatie kunt vinden over beide tools met.

# man firewalld.conf
# man firewall-cmd
# man iptables

Daarnaast, vergeet niet om een kijkje te nemen bij Het beoordelen van essentiële commando’s & systeemdocumentatie – Deel 1 van de huidige serie, waar ik verschillende bronnen heb beschreven waar u informatie kunt krijgen over de geïnstalleerde pakketten op uw RHEL 7 systeem.

Het gebruik van Iptables om het netwerkverkeer te beheren

U kunt Configure Iptables Firewall – Deel 8 van de Linux Foundation Certified Engineer (LFCE) serie raadplegen om uw geheugen op te frissen over de interne werking van iptables voordat u verder gaat. Op deze manier kunnen we meteen doorgaan naar de voorbeelden.

Voorbeeld 1: Zowel inkomend als uitgaand webverkeer toestaan

TCP-poorten 80 en 443 zijn de standaard poorten die worden gebruikt door de Apache-webserver om normaal (HTTP) en beveiligd (HTTPS) webverkeer te verwerken. U kunt inkomend en uitgaand webverkeer toestaan via beide poorten op de enp0s3 interface als volgt:

# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
Voorbeeld 2: Blokkeer alle (of sommige) inkomende verbindingen van een specifiek netwerk

Er kunnen momenten zijn waarop u alle (of sommige) soorten verkeer afkomstig van een specifiek netwerk moet blokkeren, bijvoorbeeld 192.168.1.0/24:

# iptables -I INPUT -s 192.168.1.0/24 -j DROP

zal alle pakketten die afkomstig zijn van het 192.168.1.0/24 netwerk laten vallen, terwijl,

# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT

alleen inkomend verkeer via poort 22 zal toestaan.

Voorbeeld 3: Inkomend verkeer doorsturen naar een andere bestemming

Als je je RHEL 7 box niet alleen als software firewall gebruikt, maar ook als de daadwerkelijke hardwarematige firewall, zodat deze tussen twee verschillende netwerken staat, moet IP-forwarding al zijn ingeschakeld in je systeem. Zo niet, dan moet je /etc/sysctl.conf bewerken en de waarde van net.ipv4.ip_forward instellen op 1, als volgt:

net.ipv4.ip_forward = 1

sla vervolgens de wijziging op, sluit je teksteditor en voer tot slot het volgende commando uit om de wijziging toe te passen:

# sysctl -p /etc/sysctl.conf

Bijvoorbeeld, je kunt een printer geïnstalleerd hebben op een intern apparaat met IP 192.168.0.10, met de CUPS service die luistert op poort 631 (zowel op de printserver als op je firewall). Om printverzoeken door te sturen van clients aan de andere kant van de firewall, moet je de volgende iptables-regel toevoegen:

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631

Houd er rekening mee dat iptables zijn regels sequentieel leest, dus zorg ervoor dat de standaardbeleidsregels of latere regels de hierboven beschreven regels niet overschrijven.

Aan de slag met FirewallD

Een van de wijzigingen die zijn geïntroduceerd met firewalld zijn zones. Dit concept maakt het mogelijk om netwerken in verschillende zones te scheiden op basis van het vertrouwensniveau dat de gebruiker heeft besloten toe te kennen aan de apparaten en het verkeer binnen dat netwerk.

Om de actieve zones te tonen:

# firewall-cmd --get-active-zones

In het onderstaande voorbeeld is de publieke zone actief en is de enp0s3 interface automatisch aan deze toegewezen. Om alle informatie over een bepaalde zone te bekijken:

# firewall-cmd --zone=public --list-all
List all FirewallD Zones

Aangezien je meer kunt lezen over zones in de RHEL 7 Security guide, zullen we hier alleen enkele specifieke voorbeelden vermelden.

Voorbeeld 4: Services toestaan via de firewall

Om een lijst van ondersteunde services te krijgen, gebruik.

# firewall-cmd --get-services
List All Supported Services

Om http en https webverkeer onmiddellijk en bij volgende opstarts toe te staan via de firewall:

# firewall-cmd --zone=MyZone --add-service=http
# firewall-cmd --zone=MyZone --permanent --add-service=http
# firewall-cmd --zone=MyZone --add-service=https
# firewall-cmd --zone=MyZone --permanent --add-service=https
# firewall-cmd --reload

Als code>–zone wordt weggelaten, wordt de standaardzone gebruikt (je kunt dit controleren met firewall-cmd –get-default-zone).

Om de regel te verwijderen, vervang het woord add door remove in de bovenstaande commando’s.

Voorbeeld 5: IP / Poort doorsturen

Allereerst moet je controleren of masquerading is ingeschakeld voor de gewenste zone:

# firewall-cmd --zone=MyZone --query-masquerade

In de onderstaande afbeelding kunnen we zien dat masquerading is ingeschakeld voor de externe zone, maar niet voor publiek:

Check Masquerading Status

Je kunt masquerading inschakelen voor publiek:

# firewall-cmd --zone=public --add-masquerade

of masquerading gebruiken in extern. Dit is wat we zouden doen om Voorbeeld 3 te repliceren met firewalld:

# firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp:toport=631:toaddr=192.168.0.10

Vergeet niet om de firewall te herladen.

U kunt meer voorbeelden vinden in Deel 9 van de RHCSA-serie, waar we hebben uitgelegd hoe u de poorten kunt toestaan of uitschakelen die doorgaans worden gebruikt door een webserver en een ftp-server, en hoe u de bijbehorende regel kunt wijzigen wanneer de standaardpoorten voor die services worden gewijzigd. Bovendien kunt u voor meer voorbeelden verwijzen naar de firewalld-wiki.

Ook lezen: Nuttige FirewallD-voorbeelden voor het configureren van de firewall in RHEL 7

Conclusie

In dit artikel hebben we uitgelegd wat een firewall is, wat de beschikbare services zijn om er een te implementeren in RHEL 7, en hebben we een paar voorbeelden gegeven die u kunnen helpen bij het beginnen met deze taak. Als u opmerkingen, suggesties of vragen heeft, laat het ons dan gerust weten via het onderstaande formulier. Bij voorbaat dank!

Source:
https://www.tecmint.com/firewalld-vs-iptables-and-control-network-traffic-in-firewall/