RHCSA Serie: Firewall Essentials an Network Traffic Control Benotzt FirewallD an Iptables - Deel 11


An einfache Wierder, eng Firewall ass e Sécherheetssystem deen den erakommen an erausginn Traffic an engem Netz kontrolléiert baséiert op enger Rei vu virdefinéierte Reegelen (wéi zum Beispill d'Packet Destinatioun/Quell oder Typ vum Traffic, zum Beispill).

An dësem Artikel wäerte mir d'Grondlage vu Firewalld iwwerpréiwen, de Standard dynamesche Firewall Daemon am Red Hat Enterprise Linux 7, an den iptables Service, de legacy Firewall Service fir Linux, mat deem déi meescht System- an Netzwierkadministratoren gutt vertraut sinn, an deen och verfügbar ass. an RHEL 7.

E Verglach tëscht FirewallD an Iptables

Ënnert der Hood schwätzen souwuel Firewalld wéi och den iptables Service mam Netfilter Kader am Kernel duerch déiselwecht Interface, net iwwerraschend, den iptables Kommando. Wéi och ëmmer, am Géigesaz zum iptables Service, kann Firewalld d'Astellunge wärend der normaler Systemoperatioun änneren ouni datt existent Verbindunge verluer ginn.

Firewalld soll als Standard an Ärem RHEL System installéiert ginn, obwuel et vläicht net leeft. Dir kënnt mat de folgende Befehle verifizéieren (firewall-config ass de User Interface Konfiguratiounsinstrument):

# yum info firewalld firewall-config

an,

# systemctl status -l firewalld.service

Op der anerer Säit ass den iptables Service net als Standard abegraff, awer kann duerch installéiert ginn.

# yum update && yum install iptables-services

Béid Daemone kënne gestart ginn an aktivéiert fir mam Boot mat den üblechen Systemd Kommandoen ze starten:

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

Liest och: Nëtzlech Kommandoen fir Systemd Services ze managen

Wat d'Konfiguratiounsdateien ugeet, benotzt den iptables Service /etc/sysconfig/iptables (wat net existéiert wann de Package net an Ärem System installéiert ass). Op enger RHEL 7 Këscht déi als Cluster Node benotzt gëtt, gesäit dës Datei wéi follegt aus:

Wou Firewalld seng Konfiguratioun iwwer zwee Verzeichnisser späichert, /usr/lib/firewalld an /etc/firewalld:

# ls /usr/lib/firewalld /etc/firewalld

Mir wäerten dës Konfiguratiounsdateien méi spéit an dësem Artikel ënnersichen, nodeems mir e puer Reegelen hei an do bäigefüügt hunn. Bis elo geet et duer fir Iech drun z'erënneren datt Dir ëmmer méi Informatioun iwwer béid Tools fannt.

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

Aner wéi dat, erënnert Iech un e Bléck op Essential Commands & System Documentation ze kucken - Deel 1 vun der aktueller Serie, wou ech verschidde Quelle beschriwwen hunn, wou Dir Informatioun iwwer d'Packagen op Ärem RHEL 7 System installéiert kritt.

Benotzt Iptables fir den Netzverkéier ze kontrolléieren

Dir wëllt vläicht op Iptables Firewall konfiguréieren - Deel 8 vun der Linux Foundation Certified Engineer (LFCE) Serie referenzéieren fir Äert Gedächtnis iwwer iptables Interns z'erfrëschen ier Dir weider geet. Sou kënne mir direkt an d'Beispiller sprangen.

TCP Ports 80 an 443 sinn d'Standard Ports déi vum Apache Webserver benotzt ginn fir normal (HTTP) a sécher (HTTPS) Webverkéier ze handhaben. Dir kënnt erakommen an erausginn Webverkéier duerch béid Ports op der enp0s3 Interface erlaben wéi follegt:

# 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

Et kann Zäite sinn wann Dir all (oder e puer) Traffic aus engem spezifesche Netzwierk blockéiere musst, zum Beispill 192.168.1.0/24:

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

fällt all Packagen aus dem 192.168.1.0/24 Netzwierk erof, wärend,

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

erlaabt nëmmen erakommen Traffic duerch den Hafen 22.

Wann Dir Är RHEL 7 Këscht net nëmmen als Software Firewall benotzt, awer och als déi aktuell Hardware-baséiert, sou datt et tëscht zwee verschidde Netzwierker setzt, muss d'IP Forwarding schonn an Ärem System aktivéiert sinn. Wann net, musst Dir /etc/sysctl.conf änneren an de Wäert vun net.ipv4.ip_forward op 1 setzen, wéi follegt:

net.ipv4.ip_forward = 1

späichert dann d'Ännerung, maach Ären Texteditor zou a lafe schliisslech de folgende Kommando aus fir d'Ännerung z'applizéieren:

# sysctl -p /etc/sysctl.conf

Zum Beispill kënnt Dir en Drécker op enger interner Këscht mat IP 192.168.0.10 installéiert hunn, mat dem CUPS Service lauschtert um Hafen 631 (souwuel um Dréckserver wéi op Ärer Firewall). Fir Drécksufroe vu Clienten op der anerer Säit vun der Firewall weiderzebréngen, sollt Dir déi folgend iptables Regel addéieren:

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

Bedenkt w.e.g. datt iptables seng Reegelen sequenziell liest, also vergewëssert Iech datt d'Standardpolitik oder spéider Reegelen déi net iwwerschreiden déi an de Beispiller hei uewen beschriwwe ginn.

Ugefaangen mat FirewallD

Eng vun den Ännerungen agefouert mat Firewalld sinn Zonen. Dëst Konzept erlaabt Netzwierker a verschidden Zonen ze trennen Niveau vum Vertrauen, deen de Benotzer decidéiert huet op d'Apparater an de Verkéier an deem Netz ze setzen.

Fir déi aktiv Zonen ze lëschten:

# firewall-cmd --get-active-zones

Am Beispill hei ënnen ass d'ëffentlech Zone aktiv, an d'enp0s3 Interface gouf automatesch zougewisen. Fir all Informatioun iwwer eng bestëmmte Zone ze gesinn:

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

Well Dir méi iwwer Zonen am RHEL 7 Sécherheetsguide liesen kënnt, wäerte mir nëmmen e puer spezifesch Beispiller hei oplëschten.

Fir eng Lëscht vun de ënnerstëtzte Servicer ze kréien, benotzt.

# firewall-cmd --get-services

Fir http an https Webverkéier duerch d'Firewall z'erméiglechen, effektiv direkt an op spéider Stiwwelen:

# 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

Wann Code>–Zone ewechgelooss gëtt, gëtt d'Standardzon (Dir kënnt mat Firewall-cmd –get-default-zone kontrolléieren) benotzt.

Fir d'Regel ze läschen, ersetzt d'Wuert addéiere mat ewechhuelen an den uewe genannte Kommandoen.

Als éischt musst Dir erausfannen ob Masquerading fir déi gewënscht Zone aktivéiert ass:

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

Am Bild hei drënner kënne mir gesinn datt Masquerading fir déi extern Zone aktivéiert ass, awer net fir ëffentlech:

Dir kënnt entweder d'Masquerading fir de Public aktivéieren:

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

oder benotzen masquerading an externen. Hei ass wat mir maache fir Beispill 3 mat Firewalld ze replizéieren:

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

A vergiesst net d'Firewall nei ze lueden.

Dir fannt weider Beispiller am Deel 9 vun der RHCSA Serie, wou mir erkläert hunn wéi d'Ports erlaabt oder auszeschalten déi normalerweis vun engem Webserver an engem ftp Server benotzt ginn, a wéi Dir déi entspriechend Regel änneren wann de Standardport fir dës Servicer geännert ginn. Ausserdeem wëllt Dir op d'Firewalld Wiki fir weider Beispiller referenzéieren.

Liest och: Nëtzlech FirewallD Beispiller fir Firewall an RHEL 7 ze konfiguréieren

Conclusioun

An dësem Artikel hu mir erkläert wat eng Firewall ass, wat sinn déi verfügbare Servicer fir een an RHEL 7 ëmzesetzen, an e puer Beispiller geliwwert déi Iech hëllefe mat dëser Aufgab unzefänken. Wann Dir Kommentaren, Suggestiounen oder Froen hutt, fille sech frei mat der Hëllef vum Formulaire hei drënner ze loossen. Merci am Viraus!