În cuvinte simple, a firewall este un sistem de securitate care controlează traficul de intrare și ieșire dintr-o rețea pe baza unui set de reguli predefinite (cum ar fi destinația / sursa pachetului sau tipul de trafic, de exemplu).
În acest articol vom analiza elementele de bază ale firewalld, daemonul firewall implicit din Red Hat Enterprise Linux 7, și iptables service, vechiul serviciu de firewall pentru Linux, cu care majoritatea administratorilor de sistem și de rețea sunt bine cunoscuți și care este, de asemenea, disponibil în RHEL 7.
Sub capotă, ambele firewalld si iptables serviciu vorbesc cu netfilter cadru în kernel prin aceeași interfață, nu este surprinzător, comanda iptables. Cu toate acestea, spre deosebire de serviciul iptables, firewalld poate modifica setările în timpul funcționării normale a sistemului, fără a pierde conexiunile existente.
Firewalld ar trebui să fie instalat implicit în sistemul dvs. RHEL, deși este posibil să nu ruleze. Puteți verifica cu următoarele comenzi (
firewall-config este instrumentul de configurare a interfeței utilizatorului):# yum info firewalld firewall-config.
și,
# systemctl status -l firewalld.service.
Pe de altă parte, iptables serviciul nu este inclus în mod implicit, dar poate fi instalat prin.
# yum update && yum install iptables-services.
Ambii daemons pot fi porniti și activați pentru a porni la boot cu cel obișnuit systemd comenzi:
# systemctl pornește firewalld.service | iptables-service.service. # systemctl activate firewalld.service | iptables-service.service.
Citește și:Comenzi utile pentru a gestiona serviciile Systemd
În ceea ce privește fișierele de configurare, se folosește serviciul iptables /etc/sysconfig/iptables
(care nu va exista dacă pachetul nu este instalat în sistemul dvs.). Pe o casetă RHEL 7 utilizată ca nod de cluster, acest fișier arată după cum urmează:
Întrucât firewall-ul stochează configurația sa în două directoare, /usr/lib/firewalld
și /etc/firewalld
:
# ls / usr / lib / firewalld / etc / firewalld.
Vom examina aceste fișiere de configurare mai departe în acest articol, după ce adăugăm câteva reguli aici și acolo. Până acum va fi suficient să vă reamintim că puteți găsi întotdeauna mai multe informații despre ambele instrumente cu.
# man firewalld.conf. # man firewall-cmd. # om iptables.
În afară de asta, nu uitați să aruncați o privire Revizuirea comenzilor esențiale și a documentației de sistem - Partea 1 din seria curentă, unde am descris mai multe surse în care puteți obține informații despre pachetele instalate pe computerul dvs. RHEL 7 sistem.
Poate doriți să vă referiți la Configurați paravanul de protecție Iptables - Partea 8 din Inginer certificat Linux Foundation (LFCE) serie pentru a vă reîmprospăta memoria iptables interne înainte de a continua mai departe. Astfel, vom putea să intrăm direct în exemple.
Porturi TCP 80 și 443 sunt porturile implicite utilizate de serverul web Apache pentru a gestiona normal (HTTP) și sigur (HTTPS) trafic web. Puteți permite traficul web de intrare și de ieșire prin ambele porturi de pe enp0s3 interfață după cum urmează:
# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW, STABILIT -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, STABILIT -j ACCEPT. # iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT.
S-ar putea să fie momente când trebuie să blocați tot (sau unele) tipuri de trafic provenind dintr-o anumită rețea, să zicem 192.168.1.0/24 de exemplu:
# iptables -I INPUT -s 192.168.1.0/24 -j DROP.
va renunța la toate pachetele care vin din 192.168.1.0/24 rețea, întrucât,
# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT.
va permite doar traficul de intrare prin port 22.
Dacă folosești RHEL 7 caseta nu numai ca firewall software, ci și ca reală bazată pe hardware, astfel încât să se așeze între două rețele distincte, redirecționarea IP trebuie să fi fost deja activată în sistemul dvs. Dacă nu, trebuie să editați /etc/sysctl.conf
și setați valoarea net.ipv4.ip_forward la 1, după cum urmează:
net.ipv4.ip_forward = 1.
apoi salvați modificarea, închideți editorul de text și rulați în cele din urmă următoarea comandă pentru a aplica modificarea:
# sysctl -p /etc/sysctl.conf.
De exemplu, este posibil să aveți o imprimantă instalată la o cutie internă cu IP 192.168.0.10, cu CUPE serviciu ascultând pe port 631 (atât pe serverul de imprimare, cât și pe paravanul de protecție). Pentru a redirecționa cererile de tipărire de la clienții de pe cealaltă parte a firewall-ului, trebuie să adăugați următoarea regulă iptables:
# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631.
Vă rugăm să rețineți că iptables își citește regulile secvențial, deci asigurați-vă că politicile implicite sau regulile ulterioare nu le înlocuiesc pe cele subliniate în exemplele de mai sus.
Una dintre modificările introduse cu firewalld sunt zone. Acest concept permite separarea rețelelor în diferite zone, nivel de încredere pe care utilizatorul a decis să îl plaseze pe dispozitivele și traficul din acea rețea.
Pentru a lista zonele active:
# firewall-cmd --get-active-zones.
În exemplul de mai jos, zona publica este activ, iar enp0s3 interfața i-a fost atribuită automat. Pentru a vizualiza toate informațiile despre o anumită zonă:
# firewall-cmd --zone = public --list-all.
Deoarece puteți citi mai multe despre zone în RHEL 7 Ghid de securitate, vom enumera aici doar câteva exemple specifice.
Pentru a obține o listă a serviciilor acceptate, utilizați.
# firewall-cmd --get-services.
A permite http și https trafic web prin firewall, eficient imediat și la pornirea ulterioară:
# 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.
Dacă codul> –zona este omis, zona implicită (puteți verifica cu firewall-cmd –get-default-zone) este folosit.
Pentru a elimina regula, înlocuiți cuvântul adăugare cu eliminare în comenzile de mai sus.
În primul rând, trebuie să aflați dacă mascherarea este activată pentru zona dorită:
# firewall-cmd --zone = MyZone --query-masquerade.
În imaginea de mai jos, putem vedea asta mascat este activat pentru zona exterioară, dar nu pentru public:
Puteți activa fie mascherarea pentru public:
# firewall-cmd --zone = public --add-masquerade.
sau folosiți mascararea în extern. Iată ce am face pentru a replica Exemplul 3 cu firewalld:
# firewall-cmd --zone = external --add-forward-port = port = 631: proto = tcp: toport = 631: toaddr = 192.168.0.10.
Și nu uitați să reîncărcați paravanul de protecție.
Puteți găsi exemple suplimentare pe Partea 9 din seria RHCSA, unde am explicat cum se permite sau se dezactivează porturile care sunt de obicei utilizate de un web server și un server ftp și cum să modificați regula corespunzătoare atunci când este portul implicit pentru aceste servicii schimbat. În plus, vă recomandăm să consultați firewalld wiki pentru exemple suplimentare.
Citește și:Exemple utile de firewallD pentru a configura firewall-ul în RHEL 7
În acest articol am explicat ce a firewall care sunt serviciile disponibile pentru a implementa unul RHEL 7și a oferit câteva exemple care vă pot ajuta să începeți cu această sarcină. Dacă aveți comentarii, sugestii sau întrebări, nu ezitați să ne anunțați folosind formularul de mai jos. Vă mulțumesc anticipat!