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).

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

en,
# systemctl status -l firewalld.service

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:

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

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

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

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:

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/