Contacte

CentOS 7 Firewall Open Port 80. Configurarea mesajelor de sistem

Stabilit de sistem de operare Firewall-ul este folosit pentru a preveni traficul neautorizat între rețelele de calculatoare. Manual sau creează automat reguli speciale pentru firewall, care sunt responsabile pentru controlul accesului. În sistemul de operare, dezvoltat pe kernelul Linux, CentOS 7 există un firewall încorporat și este controlat de firewall. Firewalld-ul implicit este implicat și am dori să vorbim astăzi despre asta.

Așa cum am menționat mai sus, firewall-ul standard din CentOS 7 este atribuit un utilitar Firewalld. Acesta este motivul pentru care setarea firewall va fi luată în considerare pe exemplul acestui instrument. Puteți seta regulile de filtrare cu aceleași iptable, dar se efectuează ușor diferit. Vă recomandăm să vă familiarizați cu configurația utilității menționate făcând clic pe linkul următor și vom începe dezasamblarea Firewalld.

Conceptele de bază ale firewall-ului

Există mai multe seturi de zone pentru a gestiona traficul pe baza încrederii în rețele. Toți li se oferă propriile lor politici, totalitatea căreia și formează configurația firewall-ului. Fiecare zonă este atribuită una sau mai multe interfețe de rețea, care vă permite să reglați filtrarea. Regulile aplicate direct depind de interfața utilizată. De exemplu, atunci când este conectat la Wi-Fi disponibil public ecranul de rețea. va crește nivelul de control și în rețeaua de domiciliu Acesta va deschide accesul suplimentar pentru participanții la lanț. În Farvolul privit există astfel de zone:

  • trusted este nivelul maxim de încredere în toate dispozitivele de rețea;
  • home - Grupul LAN. Există o încredere în înconjurătoare, dar conexiunile primite sunt disponibile numai pentru anumite mașini;
  • zona de lucru. Există o încredere în majoritatea dispozitivelor, iar serviciile suplimentare sunt activate;
  • dMZ - Zona pentru computerele izolate. Astfel de dispozitive sunt deconectate de la restul rețelei și numai un anumit trafic primit este trecut;
  • zona internă de rețea internă. Încrederea se aplică tuturor mașinilor, sunt deschise servicii suplimentare;
  • extern - invers în zona anterioară. În rețelele externe, mascarea NAT este activă, închizând rețeaua interioară, dar fără a bloca posibilitatea accesului;
  • public - o zonă de rețele publice cu neîncredere față de toate dispozitivele și recepția individuală a traficului primitor;
  • bloc - toate solicitările primite sunt resetate cu expedierea erorilor iCMP-Host-interzis sau iCMP6-ADM-interzis;
  • scăderea este nivelul minim de încredere. Conexiunile primite sunt descărcate fără notificări.

Politicile în sine sunt temporare și permanente. Când sau editați parametrii, acțiunea firewall se schimbă imediat fără repornirea. Dacă au fost aplicate reguli temporare, după repornirea Firewalld, acestea vor fi resetate. Regula permanentă se numește ceva - acesta va fi salvat în mod continuu atunci când se aplică argumentul -permanent.

Activarea firewall-ului Firewalld.

Mai întâi trebuie să rulați Firewalld sau să vă asigurați că este într-o stare activă. Doar daemonul funcțional (un program care operează în fundal) va aplica regulile pentru firewall. Activarea este făcută literalmente câteva clicuri:

  1. Rulați clasicul "Terminal" Orice metodă convenabilă, de exemplu, prin meniu "Aplicații".
  2. Introduceți comanda Sudo SystemCTL Start Firewalld.service și faceți clic pe tastă. INTRODUCE.
  3. Controlul utilităților este realizat în numele SuperUser, deci trebuie să confirmați autenticitatea prin specificarea parolei.
  4. Pentru a vă asigura că serviciul funcționează, specificați firewall-cmd --State.
  5. În fereastra grafică care se deschide, re-confirmați autenticitatea.
  6. O linie nouă va apărea. Valoare "Alergare" sugerează că firewall-ul funcționează.

Dacă o dată va fi dezactivați temporar sau permanent firewall-ul, vă sfătuim să utilizați instrucțiunile prezentate în celălalt articol cu \u200b\u200burmătorul link.

Vizualizați regulile implicite și zonele accesibile

Chiar și firewall-ul regulat are propriile reguli definite și zone accesibile. Înainte de a începe editarea politicienilor, vă sfătuim să vă familiarizați cu configurația curentă. Acest lucru se face folosind comenzi simple:

  1. Zona implicită va determina comanda Firewall-CMD - Observation-Zone.
  2. După activarea sa, veți vedea Șir nouunde apare parametrul necesar. De exemplu, zona este luată în considerare în ecranul de mai jos "Public".
  3. Cu toate acestea, mai multe zone pot fi active imediat, în plus, acestea sunt legate de o interfață separată. Aflați aceste informații prin firewall-cmd-cmd --get-active-active.
  4. Comanda Firewall-CMD-List va afișa regulile stabilite pentru zona implicită. Acordați atenție ecranului de mai jos. Vedeți zona activă "Public" Regulamentul acordat "MOD IMPLICIT" - Funcționarea implicită, interfață "ENP0S3" și a adăugat două servicii.
  5. Dacă aveți nevoie să aflați toate zonele de firewall disponibile, introduceți zone de firewall-cmd --get.
  6. Parametrii zonei specifice sunt definite prin Firewall-CMD --Zone \u003d Nume - List - toate, unde nume. - Zona de nume.

După determinarea parametrilor necesari, puteți trece la schimbarea și adăugarea acestora. Să analizăm mai multe dintre cele mai populare configurații în detaliu.

Configurarea zonelor de interfață

După cum știți din informațiile de mai sus, zona implicită este definită pentru fiecare interfață. Acesta va fi în el până când setările să schimbe utilizatorul sau programatic. Este posibil să transferați manual interfața în zona pe sesiune și se efectuează prin activarea firewall-cmd -zonului sudo \u003d Home Command - InterfațaChange-Interface \u003d eth0. Rezultat "SUCCES" Aceasta indică faptul că transferul a avut succes. Amintiți-vă că astfel de setări sunt resetate imediat după repornirea firewall-ului.

Cu o astfel de schimbare a parametrilor, ar trebui să se țină cont de faptul că funcționarea serviciilor poate fi resetată. Unii dintre ei nu susțin funcționarea în anumite zone, să spunem, ssh deși accesibil în "ACASĂ"Dar, în servicii sau servicii speciale, va refuza să lucreze. Asigurați-vă că interfața a fost legată cu succes de noua ramură, introducând zone de firewall-cmd --get-active.

Dacă doriți să resetați setările efectuate anterior, pur și simplu rulați repornirea firewallului: Sudo Systemctl Repornește Firewalld.Service.

Uneori nu este întotdeauna convenabil să schimbați zona de interfață într-o singură sesiune. În acest caz, va trebui să editați fișierul de configurare, astfel încât toate setările să fie smalate permanent. Pentru a face acest lucru, vă sfătuim să utilizați un editor de text. nano.care este instalat din depozitul oficial al Sudo Yum instalați nano. Înainte rămâne astfel de acțiuni:

  1. Deschideți fișierul de configurare prin editor introducând Sudo Nano / etc / Sysconfig / Script-uri de rețea / IFCFG-ETH0, unde eth0. - Numele interfeței necesare.
  2. Confirmați autenticitatea cont Pentru a îndeplini acțiuni suplimentare.
  3. Scoateți parametrul Zona Și să-și schimbe valoarea la dorit, de exemplu, public sau acasă.
  4. Țineți cheile Ctrl + O.Pentru a salva modificările.
  5. Nu modificați numele fișierului, ci pur și simplu faceți clic pe INTRODUCE.
  6. Ieșiți de la editor de text prin Ctrl + X..

Acum, zona de interfață va fi cea pe care ați specificat-o, până la următoarea editare a fișierului de configurare. Pentru parametrii actualizați, executați Sudo Systemctl Repornire Network.Service și Sudo Systemsctl Repornește Firewalld.Service.

Setarea zonei implicite

Mai sus, am demonstrat deja o echipă care vă permite să învățați zona implicită. De asemenea, poate fi modificat prin setarea parametrului la alegere. Pentru a face acest lucru, în consola, este suficient să se înregistreze firewall-cmd-cmd - set-implicit-zona \u003d numele, unde nume. - Numele zonei necesare.

Succesul echipei va evacua inscripția "SUCCES" Într-o linie separată. După aceasta, toate interfețele curente se vor naște în zona specificată, dacă cealaltă nu este specificată în fișierele de configurare.

Crearea de reguli pentru programe și utilități

La începutul articolului, am vorbit despre acțiunea fiecărei zone. Definirea serviciilor, utilităților și programelor în astfel de sucursale vor permite aplicarea parametrilor individuali pentru fiecare dintre ele pentru fiecare solicitare de utilizator. Pentru a începe, vă sfătuim să vă familiarizați cu lista completă a serviciilor disponibile în acest moment: Firewall-CMD --GET-SERVICES.

Rezultatul va fi afișat direct în consola. Fiecare server este împărțit la un spațiu și puteți găsi cu ușurință instrumentul care vă interesează. Dacă serviciul necesar lipsește, acesta trebuie instalat suplimentar. În regulile de instalare, citiți în documentația software oficială.

Comanda de mai sus demonstrează numai numele serviciilor. Informații detaliate pentru fiecare dintre ele sunt obținute prin fișierul individual pe calea / USR / LIB / Firewalld / Servicii. Astfel de documente au un format XML, calea, de exemplu, la SSH arată astfel: /usr/lib/firewalld/services/ssh.xml, iar documentul are următorul cuprins:

Ssh.
Secure Shell (SSH) este un protocol pentru conectarea și executarea comenzilor pe mașini de la distanță. Acesta oferă comunicații criptate securizate. Dacă intenționați să accesați telecomanda mașinii prin SSH pe o interfață Firewalled, activați această opțiune. Aveți nevoie de pachetul OpenSSH-Server instalat pentru această opțiune pentru a fi utilă.

Suportul de service este activat manual într-o anumită zonă. ÎN "Terminal" Ar trebui să setați firewall-cmd-cmd --zone \u003d public --DD-service \u003d http comandă, unde --Zone \u003d public. - zona de activare și --Add-service \u003d http - Numele serviciului. Rețineți că o astfel de modificare va fi valabilă numai în cadrul unei sesiuni.

Adăugarea permanentă este efectuată prin Sudo Firewall-cmd --Zone \u003d Public --Pentru --DDD-Service \u003d HTTP și rezultatul "SUCCES" Specifică finalizarea cu succes a operațiunii.

Vedere lista plina Reguli permanente pentru o anumită zonă pot, afișând o listă într-o linie separată a consolei: Sudo Firewall-cmd --Zone \u003d Public - List - lista de servicii.

Problema deciziei cu lipsa accesului la serviciu

Regulile standard de firewall sunt cele mai populare și sigure servicii, după cum sunt permise, dar unele standard sau aplicații terțe părți Blochează. În acest caz, utilizatorul trebuie să schimbe manual setările pentru a rezolva problema cu accesul. Puteți face acest lucru în două metode diferite.

Portul portului

După cum știți, toate serviciile de rețea utilizează un anumit port. Este ușor detectat de un firewall, iar blocurile pot fi efectuate. Pentru a evita astfel de acțiuni de la firewall, trebuie să deschideți portul dorit al firewall-CMD-CMD --Zone \u003d Public - Portd-Port \u003d 0000 / TCP, unde --Zone \u003d public. - Zona pentru port, - Port \u003d 0000 / TCP - numărul portului și protocolul. Opțiunea Firewall-CMD-PORTS va afișa o listă de porturi deschise.

Dacă aveți nevoie să deschideți porturile incluse în interval, utilizați firewall-cmd --Zone \u003d public - PORD-PORT \u003d 0000-9999 / UDP rând, unde --Dd-port \u003d 0000-9999 / UDP - Gama de porturi și protocolul acestora.

Comenzile de mai sus vă permit să testați utilizarea unor parametri similari. Dacă ar fi trecut cu succes, ar trebui să adăugați aceleași porturi la setări constante și acest lucru se face prin introducerea firewall-cmd -Zone Sudo \u003d Public --Permanent --Add-port \u003d 0000 / TCP sau sudo firewall-cmd - Zona \u003d Public --Permanent - Port \u003d 0000-9999 / UDP. Lista porturilor permanente deschise este vizualizată după cum urmează: Sudo Firewall-CMD --Zone \u003d Porturi publice --Permanente - Porturi.

Definiția serviciului

După cum puteți vedea, adăugarea de porturi nu provoacă dificultăți, dar procedura este complicată în cazul în care sunt utilizate aplicații un numar mare de. Pentru a urmări toate porturile utilizate devine dificil, având în vedere determinarea serviciului va fi o opțiune mai corectă:


Trebuie doar să alegeți cea mai potrivită soluție la problema de serviciu cu accesul la serviciu și să executați instrucțiunile furnizate. După cum puteți vedea, toate acțiunile sunt efectuate destul de ușor și nu ar trebui să existe dificultăți.

Creând zone personalizate

Știți deja că în inițial un număr mare de zone diverse cu reguli definite au fost create în Firewalld. Cu toate acestea, situațiile apar atunci când administratorul de sistem trebuie să creeze o zonă de utilizator, cum ar fi, de exemplu, "Publicweb" Pentru serverul web instalat sau pentru "Priviți" - Pentru serverul DNS. Pe aceste două exemple, vom analiza adăugarea ramurilor:


Din acest articol, ați învățat cum să creați zone personalizate și să le adăugați servicii. Le-am spus deja ca implicite și atribuirea interfețelor de mai sus, puteți specifica doar numele corect. Nu uitați să reporniți firewall-ul după ce ați efectuat orice schimbare permanentă.

După cum puteți vedea, Firewalld Firewall este un instrument destul de volumetric care vă permite să faceți cea mai flexibilă configurație a firewall-ului. Rămâne numai pentru a vă asigura că utilitatea lansează cu sistemul și regulile specificate încep imediat de munca lor. Faceți-o cu Sudo SystemCTL Activați comanda firewalld.

Zonele

Demon Firewalld gestionează grupuri de reguli folosind așa-numitele zone.

Zonele sunt, de fapt, seturile de reguli care controlează traficul pe baza nivelului de încredere în această rețea. Zonele sunt atribuite interfețelor de rețea și controlează comportamentul firewall-ului.

Computerele care sunt adesea conectate la diferite rețele (de exemplu, laptop-uri) pot utiliza zone pentru a schimba seturile de reguli în funcție de mediu. De exemplu, când este conectat la public rețele Wi-Fi. Firewall-ul poate aplica reguli mai stricte și în rețeaua de domiciliu pentru a slăbi restricțiile.

Următoarele zone există în Firewalld:

  • scădere: cel mai scăzut nivel de încredere în rețea. Toate traficul de intrare sunt evacuate fără un răspuns, sunt acceptate doar compușii de ieșire.
  • bloc: Această zonă este similară cu cea precedentă, dar cererile de intrare sunt resetate cu ICMP-Host-interzis sau ICMP6-ADM interzise.
  • public: Această zonă reprezintă o rețea publică care nu poate fi de încredere în totuși, ea susține compușii primiți individual.
  • externe: Zona de rețea externă. Sprijină mascarea NAT, astfel încât rețeaua internă rămâne închisă, dar cu capacitatea de a avea acces.
  • intern: Partea inversă a zonei externe, rețelele interne. Computerele din această zonă pot fi de încredere. Sunt disponibile servicii suplimentare.
  • dMZ: utilizat pentru computere situate în DMZ (computere izolate care nu vor avea acces la restul rețelei); Suportă numai câteva conexiuni primite.
  • lucrări: zona de rețea de lucru. Cele mai multe mașini din rețea pot fi de încredere. Sunt disponibile servicii suplimentare.
  • acasă: zona de rețea de domiciliu. Înconjurarea poate fi de încredere, dar sunt acceptate numai conexiunile de intrare definite de utilizator.
  • trusted: Toate mașinile din rețea pot fi de încredere.

Salvarea regulilor

Regulile Firewalld sunt permanente și temporare. Dacă setul apare sau modifică orice regulă, comportamentul curent al firewall-ului variază imediat. Cu toate acestea, după repornire, toate modificările vor fi pierdute dacă nu sunt salvate.

Cele mai multe comenzi de firewall-cmd pot folosi steagul -permanent, care va salva regula, după care va fi folosit în mod continuu.

Activarea firewall-ului Firewalld.

Mai întâi trebuie să porniți demonul. Fișierul unitar sistem este numit Firewalld.Service. Pentru a porni daemonul, introduceți.

sudo Systemctl începe Firewalld.Service

Asigurați-vă că serviciul funcționează:

firewall-cmd-state
Alergare

Acum, firewall-ul rulează și funcționează în funcție de configurația implicită.

În prezent, serviciul este activat, dar nu va porni automat împreună cu serverul. Pentru a vă bloca accidental pe propriul server, creați mai întâi un set de reguli, apoi configurați Autorunul.

Reguli implicite de firewall.

Vizualizați regulile implicite

Pentru a afla care zonă este utilizată în mod implicit, introduceți:

firewall-cmd - Obiectivul implicit
Public

În prezent, Firewalld nu a primit instrucțiuni privind alte zone, în plus, nici o interfață nu este legată de alte zone, deci acum zona publică este zona implicită, precum și singura zonă activă.

Pentru a obține o listă de zone active, introduceți:


Public
Interfețe: Eth0 Eth1

Două interfețe de rețea sunt legate de zona publică: eth0 și eth1. Interfețele atașate zonei funcționează în conformitate cu regulile acestei zone.

Pentru a afla care reguli utilizați zona implicită, introduceți:

firewall-cmd --list-all
Public (implicit, activ)
Interfețe: Eth0 Eth1
Surse:
Servicii: DHCPV6-Client SSH
Porturi:
Masquerade: Nu.
Porturi înainte:
Blocuri ICMP:
Reguli bogate:

Deci, acum știi că:

  • publicul este zona implicită și singura zonă activă.
  • Interfețele eth0 și eth1 sunt legate de acesta.
  • Acesta suportă traficul DHCP (atribuirea adreselor IP) și SSH (Administrare la distanță).

Alte zone de firewall.

Acum ar trebui să vă familiarizați cu alte zone.

Pentru a obține o listă cu toate zonele disponibile, introduceți:

firewall-cmd - geamuri

Pentru a obține parametrii unei anumite zone, adăugați Flag -Zone \u003d comanda.

firewall-cmd --Zone \u003d Home - List-Toate
ACASĂ.
Interfețe:
Surse:
Servicii: DHCPV6-Client IPP-client MDNS Samba-client SSH
Porturi:
Masquerade: Nu.
Porturi înainte:
Blocuri ICMP:
Reguli bogate:

Pentru a afișa definiția tuturor zonelor disponibile, adăugați opțiunea-List All-Zone. Pentru o vizualizare mai convenabilă, ieșirea poate fi transferată la pager:

firewall-cmd - lista de zone | Mai puțin

Configurarea zonelor de interfață

Inițial, toate interfețele de rețea sunt legate de zona implicită.

Schimbarea zonei de interfață pe sesiune

Pentru a traduce o interfață la o altă sesiune la o altă sesiune, utilizați -Zone \u003d și -CHANGE-Interface \u003d Opțiuni \u003d.

De exemplu, pentru a traduce Eth0 la zona de origine, trebuie să introduceți:

sudo Firewall-cmd --Zone \u003d Home - Interfață -Cange-interfață \u003d eth0
Succes.

Notă: La traducerea interfeței într-o altă zonă, trebuie să se țină cont de faptul că poate afecta funcționarea unor servicii. De exemplu, zona de origine acceptă SSH, astfel încât conexiunile Acest serviciu nu va fi resetat. Dar unele zone renunță la toate conexiunile, inclusiv ssh, și apoi puteți bloca accidental accesul la propriul dvs. server.

Pentru a vă asigura că interfața este legată de noua zonă, introduceți:

firewall-cmd - Obiective-Active-Zone
ACASĂ.
Interfețe: eth0.
Public
Interfețe: Eth1.

După repornirea firewall-ului, interfața va fi din nou legată de zona implicită.

sudo sistemctl repornește Firewalld.service
Firewall-cmd - Obiective-Active-Zone
Public
Interfețe: Eth0 Eth1

Schimbarea zonei de interfață pe o bază continuă

Dacă nu este specificată nicio altă zonă în setările de interfață, după repornirea firewall-ului, interfața va fi din nou legată de zona implicită. În CentOS, astfel de configurații sunt stocate în directorul / etc / sysconfig / rețea-script-uri, în fișiere de interfață IFCFG.

Pentru a determina zona de interfață, deschideți fișierul de configurare a acestei interfețe, de exemplu:

Adăugați o zonă variabilă la sfârșitul fișierului și specificați cealaltă zonă ca valoare, de exemplu, acasă:

. . .
DNS1 \u003d 2001: 4860: 4860 :: 8844
DNS2 \u003d 2001: 4860: 4860 :: 8888
DNS3 \u003d 8.8.8.8.
Zona \u003d casa.

Salvați și închideți fișierul.

Pentru a actualiza setările, reporniți serviciul de rețea și firewall:

sudo Systemctl Restart Network.service
Sudo sistemctl repornește Firewalld.service

După repornire, interfața etică va fi legată de zona de origine.

firewall-cmd - Obiective-Active-Zone
ACASĂ.
Interfețe: eth0.
Public
Interfețe: Eth1.

Setarea zonei implicite

De asemenea, puteți alege o altă zonă implicită.

Pentru a face acest lucru, utilizați zona-implicită-implicită \u003d. După aceea, toate interfețele vor fi legate de o altă zonă:

sudo firewall-cmd - set-implicit-zona \u003d acasă
ACASĂ.
Interfețe: Eth0 Eth1

Crearea regulilor pentru aplicații

Adăugarea unui serviciu în zona

Cea mai ușoară modalitate de a adăuga un serviciu sau un port în zona pe care o folosește firewall-ul. Consultați serviciile disponibile:

firewall-cmd --get-Servicii
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhnpv6 dhcpv6-client DNS FTP http http http httpps ipp ipp-client iPSec kerberos kpasswd ldap ldps libvirt libvirt-tls MDNS MS-WBT MySQL NFS NTP OPENVPN PMCD PMPROXY PMWEBAPI PMWebapis POP3S Postgresql Proxy-DHCP Radius RPC-Bind Samba Samba client SMTP SSH TELNET TFTP TFTP-Client Transmission-client VNC-server wbem-https

Notă: Mai multe informații despre fiecare serviciu specific pot fi găsite în fișiere.xml în directorul / USR / LIB / Firewalld / Service. De exemplu, informațiile despre serviciul SSH sunt stocate în /usr/lib/firewalld/services/ssh.xml și arată astfel:



Ssh.

Pentru a activa suportul de service într-o anumită zonă, utilizați opțiunea -ADD-SERVICE \u003d. Puteți specifica zona țintă utilizând opțiunea -Zone \u003d. În mod implicit, aceste modificări vor funcționa pentru o sesiune. Pentru a salva modificările și a le utiliza pe o bază în curs de desfășurare, adăugați steagul -permanent.

De exemplu, pentru a începe un server web pentru a menține traficul HTTP, mai întâi trebuie să activați suportul pentru acest trafic în zona publică pentru o sesiune:

sudo Firewall-cmd --Zone \u003d Public --Add-service \u003d http

Dacă serviciul trebuie să adauge în zona implicită, -Zone \u003d Steagul poate fi omis.

Asigurați-vă că operațiunea are succes:

firewall-CMD --Zone \u003d Public - lista de servicii
Dhcpv6-client http ssh

Testați lucrarea serviciului și a firewall-ului. Dacă totul funcționează corect, puteți modifica setul permanent de reguli și puteți adăuga o regulă pentru a sprijini acest serviciu.

sudo Firewall-CMD --Zone \u003d Public --Permanent --DD-Service \u003d http

Pentru a vizualiza o listă de reguli permanente, introduceți:

sudo Firewall-CMD --Zone \u003d Public - List SERVICII
Dhcpv6-client http ssh

Acum, zona publică acceptă http și portul 80 pe o bază în curs de desfășurare. Dacă serverul web poate servi trafic SSL / TLS, puteți adăuga, de asemenea, serviciul HTTPS (pentru o sesiune sau într-un set de reguli permanente):

sudo Firewall-CMD --Zone \u003d Public --DD-Service \u003d HTTPS
Sudo Firewall-cmd --Zone \u003d Public --Perment --Add-service \u003d https

Ce se întâmplă dacă serviciul necesar nu este disponibil?

Firewall-ul Firewalld în mod implicit include multe dintre cele mai comune servicii. Cu toate acestea, unele aplicații necesită servicii care nu sunt acceptate în Firewalld. În acest caz, puteți face în două moduri.

Metoda 1: Configurarea porturilor

Cea mai ușoară modalitate de a deschide un port de aplicare în zona de firewall necesară este cea mai ușoară. Trebuie doar să specificați gama de port sau port și protocolul.

De exemplu, o aplicație care utilizează protocolul Port 5000 și TCP trebuie adăugată în zona publică. Pentru a permite suportul aplicației pentru sesiunea de jos, utilizați parametrul -DD-port \u003d și specificați protocolul TCP sau UDP.

sudo Firewall-CMD --Zone \u003d Public --Add-Port \u003d 5000 / TCP

Asigurați-vă că operația a trecut cu succes:

firewall-cmd - lista de uzuri
5000 / TCP.

De asemenea, puteți specifica gama de seriali de porturi, separarea primului și ultimul port al intervalului de dash. De exemplu, dacă o aplicație utilizează porturile UDP 4990-4999 pentru a le adăuga în zona publică, trebuie să introduceți:

sudo Firewall-cmd --Zone \u003d Public --DD-port \u003d 4990-4999 / UDP

După testare, puteți adăuga aceste reguli în setările permanente ale firewall-ului.

sudo Firewall-CMD --Zone \u003d Public --Perment --Add-port \u003d 5000 / TCP
Sudo Firewall-cmd --Zone \u003d Public --Permanent --Add-port \u003d 4990-4999 / UDP
Sudo Firewall-CMD --Zone \u003d Public - Porturi
Succes.
Succes.
4990-4999 / UDP 5000 / TCP

Metoda 2: Definiția serviciului

Adăugați porturi în zona pur și simplu, dar dacă aveți multe astfel de aplicații, ca rezultat va fi dificil de urmărit, pentru care unul sau alt port este destinat. Pentru a evita o astfel de situație, puteți determina serviciile în loc de porturi.

Serviciile sunt pur și simplu seturi de port cu un nume și o descriere specifică. Cu ajutorul serviciilor este mai ușor să controlați setările, dar ele însele sunt mai dificile decât porturile.

Mai întâi trebuie să copiați scriptul existent din directorul / USR / LIB / Firewalld / Service din directorul / etc / Firewalld / Service (AICI Firewall-ul caută setări non-standard).

De exemplu, puteți copia definiția serviciului ssh și utilizați-o pentru a determina serviciul de exemplu condiționat. Numele scriptului trebuie să se potrivească cu numele serviciului și să aibă extensie .XML.

sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml

Corectați fișierul copiat.

sudo nano /etc/firewalld/services/example.xml.

Fișierul este definiția ssh:



Ssh.
Secure Shell (SSH) este un protocol pentru conectarea și executarea comenzilor pe mașini de la distanță. Acesta oferă comunicații criptate securizate. Dacă intenționați să accesați telecomanda mașinii prin SSH pe o interfață Firewalled, activați această opțiune. Aveți nevoie de pachetul OpenSSH-Server instalat pentru această opțiune pentru a fi utilă.

Cea mai mare parte a definiției serviciului este metadatele. Modificați numele scurt al serviciului în etichete . Acesta este un nume de serviciu pentru clienți. De asemenea, trebuie să adăugați o descriere a serviciului. Singura modificare care va afecta serviciul serviciului este de a schimba numărul portului și protocolul.

Să revenim la serviciul de exemplu; Să presupunem că este nevoie de portul TCP deschis 7777 și portul UDP 8888. Definiția va arăta astfel:



Exemplu de serviciu
Acesta este doar un exemplu de serviciu. Probabil nu ar trebui să fie folosit pe un sistem real.

Salvați și închideți fișierul.

Reporniți firewall-ul:

sudo Firewall-CMD - Încărcare

Acum, serviciul va apărea în lista de servicii disponibile:

firewall-cmd --get-Servicii
RH-satellite-6 amanda-client bacula bacula-client dhcp DHCPV6 DHCPV6-client DNS Exemplu FTP http http http httpps ipp ipp-client IPSec kerberos kpasswd ldap ldaps libvirt libvirt-tls MDN MS-WBT MySQL NFS NTP OpenVPN PMCD PMPROXY Pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius RPC-Bind Samba Samba-client SMTP SSH TELNET TFTP TFTP-Client Transmission-client VNC-server WBEM-HTTPS

Crearea de zone

Firewall-ul oferă multe zone predefinite, care în majoritatea cazurilor suficient de a lucra. Dar, în anumite situații, este nevoie să creați o zonă personalizată.

De exemplu, pentru un server Web, puteți crea o zonă publicăWeb și pentru serviciul DNS - Privatedns Zone.

Crearea unei zone, trebuie să o adăugați la setările constante ale firewall-ului.

Încercați să creați zonele PublicWeb și Privonds:

sudo Firewall-cmd --Permanent - nou-zone \u003d PublicWeb
Sudo Firewall-CMD --Permanent --New-Zone \u003d Priviți

Asigurați-vă că există zone:

sudo Firewall-cmd --Permanent - Obiective-Zone

În sesiunea curentă, zonele noi nu vor fi disponibile:

firewall-cmd - geamuri
Blocul DMZ Drop Home externă Publicul intern de încredere

Pentru a accesa zonele noi, trebuie să reporniți firewall-ul:

sudo Firewall-CMD - Încărcare
Firewall-cmd - geamuri
Blocul DMZ Drop Home Externe Priviți public Public Publicweb de încredere

Acum puteți atribui serviciile și porturile necesare în zonele noi. De exemplu, în zona Publicweb, puteți adăuga ssh, http și https.

sudo firewall-cmd --zone \u003d publicweb-add-service \u003d ssh
Sudo Firewall-cmd --Zone \u003d publicweb --add-service \u003d http
Sudo Firewall-CMD --Zone \u003d PublicWeb --Add-Service \u003d Https
Firewall-cmd --zone \u003d publicweb --list-all
Publicweb.
Interfețe:
Surse:
Servicii: http https ssh
Porturi:
Masquerade: Nu.
Porturi înainte:
Blocuri ICMP:
Reguli bogate:

Puteți adăuga DNS în zona privată:

sudo Firewall-CMD --Zone \u003d Privonds --Add-service \u003d DNS
Firewall-cmd --Zone \u003d Priviți - lista-toate
Priviți.
Interfețe:
Surse:
Servicii: DNS.
Porturi:
Masquerade: Nu.
Porturi înainte:
Blocuri ICMP:
Reguli bogate:

Apoi puteți lega interfețele de rețea în zonele noi:

sudo Firewall-cmd --Zone \u003d PublicWeb - Interfață -Change \u003d Eth0
Sudo Firewall-cmd --Zone \u003d Priviți - interfață -Change-interfață \u003d eth1

Acum puteți testa setarea. Dacă totul funcționează corect, puteți adăuga aceste reguli la setările constante.

sudo Firewall-CMD --Zone \u003d PublicWeb --Permanent --Add-Service \u003d SSH
Sudo Firewall-CMD --Zone \u003d PublicWeb --Permanent --Add-service \u003d http
Sudo Firewall-cmd --Zone \u003d Publicweb --Permanent --DD-Service \u003d HTTPS
Sudo Firewall-cmd --Zone \u003d Priviți --Permanent --Add-service \u003d DNS

După aceasta, puteți configura interfețele de rețea pentru a vă conecta automat la zona corectă.

De exemplu, eth0 va fi legată de publicweb:

sudo nano / etc / sysconfig / script-uri de rețea / IFCFG-eth0
. . .
Ipv6_autoconf \u003d Nr.
DNS1 \u003d 2001: 4860: 4860 :: 8844
DNS2 \u003d 2001: 4860: 4860 :: 8888
DNS3 \u003d 8.8.8.8.
Zona \u003d publicweb.

Și interfața etică va fi legată de privaturi:

sudo nano / etc / sysconfig / script-uri de rețea / IFCFG-ETH1
. . .
Netmask \u003d 255.255.0.0.
Defroute \u003d "Nu"
Nm_controlled \u003d "da"
Zona \u003d privat.

Reporniți serviciile de rețea și firewall:

sUDO SYSTEMCTL RESTART REȚELE
Sudo Systemctl Repornește Firewalld

Verificați zonele:

firewall-cmd - Obiective-Active-Zone
Priviți.
Interfețe: Eth1.
Publicweb.
Interfețe: eth0.

Asigurați-vă că nevoile următoarelor servicii lucrează în zone:

firewall-cmd --Zone \u003d PublicWeb - lista de servicii
http http ssh.
Firewall-cmd --Zone \u003d Priviți - lista de servicii
DNS.

Zonele personalizate sunt complet pregătite pentru muncă. Puteți face oricare dintre ele zona implicită. De exemplu:

sudo firewall-cmd - set-implicit-zona \u003d publicweb

Lansarea automată a firewall-ului

Acum că ați verificat toate setările și ați asigurat că toate regulile funcționează corect, puteți personaliza Autorunul firewall.

Pentru a face acest lucru, introduceți:

sudo Systemctl permite Firewalld

Acum, firewall-ul va alerga împreună cu serverul.

Concluzie

Firewall Firewalld este un instrument foarte flexibil. Zonele vă permit să schimbați rapid politica firewall-ului.

Acum știți cum funcționează Firewalld, familiarizați cu conceptele de bază ale firewall-ului, știți cum să creați zone personalizate și să adăugați servicii.

Etichete:

Începând cu CONDOOS 7 pentru a configura regulile de filtrare a traficului, a apărut un nou instrument firewalld.. Se recomandă utilizarea de a gestiona regulile iptablelor. În CentOS 8, în locul pachetului standard de filtrare IPTABABABS, se utilizează acum Cadrul NFTASS și la stabilirea regulilor firewall prin Firewalld, de fapt, configurați NFBABLES. În acest articol, vom analiza instalația, conceptele de bază și configurarea firewall-ului Firewalld pe serverul care rulează CentOS 8 (în CentOS 7, toate similare).


Firewalld. - un firewall pentru a proteja serverul de trafic nedorit, cu sprijinul gestionării regulilor dinamice (fără repornire) și implementarea regulilor permanente de firewall. Funcționează ca o interfață pentru și NfTables. Firewalld poate fi utilizat în aproape toate distribuțiile Linux.

Concepte de bază Firewalld, Zone și reguli

Înainte de a instala și configura firewalld.Vom fi familiarizați cu conceptul de zone care sunt folosite pentru a determina nivelul de încredere în diverse conexiuni. Pentru diferite zone firewalld. Puteți aplica diferite reguli de filtrare, specificați opțiunile active de firewall sub formă de servicii predefinite, protocoale și porturi, redirecționări portuare și reguli bogate.

Firewalld. Filtrează traficul primitor pe zonele, în funcție de regulile aplicate zonei. În cazul în care un Ip.- Expeditorul expeditorului expeditorului respectă regulile oricărei zone, pachetul va fi trimis prin această zonă. Dacă adresa nu se potrivește cu nici o zonă configurată pe server, pachetul va fi procesat de zona implicită. Când este instalat firewalld.zona implicită este numită public.

Firewalld are zone în care permisiunile sunt deja configurate pentru diverse servicii. Puteți utiliza aceste setări sau puteți crea propriile zone. Lista zonelor implicite care sunt create la instalarea Firewalld (stocate în / USR / LIB / Firewalld / Zone / Zones / Director):

cădere brusca. nivel minim de încredere. Toate conexiunile primite sunt blocate fără răspuns, sunt permise numai compușii de ieșire;
bloc zona este similară cu cea precedentă, dar când cererile de intrare respinge mesajul ICMP-Host-interzis pentru IPv4 sau ICMP6-ADM interzis pentru IPv6;
public reprezintă rețele publice, neîncrezătoare. Puteți rezolva individual compușii selectați;
extern rețelele externe atunci când se utilizează firewall ca gateway. Este configurat să masca NAT, astfel încât rețeaua dvs. internă rămâne privată, dar accesibilă;
intern zona antonim externă. Gazda posedă un nivel suficient de încredere, sunt disponibile o serie de servicii suplimentare;
dMZ. folosit pentru computere situate în DMZ (computere izolate fără acces la restul rețelei). Sunt permise numai anumiți compuși primiți;
muncă zona pentru mașini de lucru (cele mai multe computere din rețea de încredere);
aCASĂ. zona de rețea de domiciliu. Puteți avea încredere în majoritatea PC-urilor, dar sunt acceptate numai anumiți compuși primiți;
Încredere. aveți încredere în toate mașinile online. Cel mai deschis al tuturor optiuni Disponibilenecesită utilizare conștientă.

ÎN firewalld. Sunt utilizate două seturi de reguli - constante și temporare. Reguli temporare funcționează înainte de repornirea serverului. În mod implicit, la adăugarea regulilor în firewalld.Regulile sunt considerate temporare ( runtime.). Pentru a adăuga o regulă pe o bază continuă. Trebuie să utilizați steagul - Permanent.. Astfel de reguli vor fi aplicate după repornirea serverului.

Instalarea și activarea Firewalld în CentOS

În CentOS 7/8 Firewalld este instalat în mod implicit la sistemul de operare. Dacă l-ați șters și doriți să instalați Firewalld, puteți utiliza managerul standard / DNF:

# Yum instalați Firewalld -y - pentru CentOS 7
# DNF Install Firewalld -y - pentru CentOS 8

La demon firewalld. A început automat cu serverul de pornire, trebuie să-l adăugați la:

# Systemctl permite Firewalld

Și fugi:

# Systemctl începe Firewalld

Verificați starea serviciului:

# Sistemul SystemCTL Firewalld

● Firewalld.Service - Firewalld - Daemon de firewall dinamic încărcat: încărcat (/usr/lib/systemd/system/firewald.service; Activat; Presetarea furnizorului: Activat) Active: Active (Running) de la MON 2019-10-14 14:54 : 40 +06; Acum 22s Docs: Man: Firewalld (1) PID principal: 13646 (Firewalld) CGrup: /system.slice/firewalld.service └─13646 / usr / bin / python2 -s / usr / sbin / firewalld --nofork-nopid Oct 14:44:40 Server.vpn.ru Systemd: Pornirea Firewalld - Danewall Daemon ... Oct 14 14:54:40 Server.vpn.ru Systemd: A început Firewalld - Danewall Daemon.

Fie de echipă:

# Firewall-cmd --sstat

Comanda firewall-cmd este textul frontal Firewalld la NFTUBLES / IPTABABABLES.

# Firewall-cmd --sstat

Lucrați cu regulile Firewalld

Reguli implicite:

Înainte de a configura regulile Firewalld, trebuie să verificați zona care este utilizată în mod implicit:

# Firewall-CMD - Observația implicită

De la Firewalld am instalat doar și nu am fost încă înființați, avem o zonă implicită public.

Verificați zona activă. Ea este, de asemenea, singură - public:

# Firewall-cmd - Obiective-Active-Zone

Interfețe publice: eth0

După cum puteți vedea, interfața de rețea etică este controlată de zonă public.

Pentru a vizualiza regulile zonei active, introduceți:

# Firewall-cmd --list-all

Obiectiv public (activ): Implicit ICMP-bloc-inversiune: Nu Interfețe: Surse Eth0: Servicii: Porturi SSH DHCPV6-client: Protocoale: Masquerade: Fără porturi înainte: Porturi sursă: Blocuri ICMP: Reguli bogate:

Din listare, este clar că în această zonă se adaugă operațiuni regulate asociate cu clientul DHCP și SSH.

Zonele disponibile

Pentru a vizualiza o listă a tuturor zonelor, trebuie să executați comanda:

# Firewall-cmd - Obiective-Zone

Am o astfel de listă:

Blocul DMZ Drop Home externă Publicul intern de încredere

Pentru a verifica regulile zonei specifice, trebuie să adăugați o zonă de pavilion.

# Firewall-cmd --Zone \u003d Home - List-Toate

Acasă Țintă: Inversiune ICMP implicită: Nu există interfețe: surse: Servicii: DHCPV6-client MDNS Samba-client Porturi SSH: Protocoale: Masquerade: Nu porturi înainte: Source-Ports: Blocuri ICMP: Reguli bogate: Rich Reguli:

Reguli ale tuturor zonelor, puteți vedea echipa:

# Firewall-cmd - lista de zone

Listarea va fi destul de mare, deoarece zonele pot fi multe.

Schimbarea zonei implicite.

În mod implicit, toate interfețele de rețea sunt situate în zonă. publicDar puteți fi transferat la oricare dintre zone, echipa:

# Firewall-cmd --Zone \u003d Home-Schimbare-interfață \u003d eth0

După parametrul -Zone \u003d. Specificați zona dorită.

Pentru a schimba zona implicită, trebuie să aplicați comanda:

# Firewall-cmd - set-implicit-zona \u003d acasă

Adăugarea de reguli pentru aplicații

Pentru a deschide portul pentru aplicație, puteți adăuga servicii la excepții. Afișați o listă de servicii disponibile:

Producția va conține un număr mare de servicii. informatii detaliate Serviciul este cuprins în ea xml. fişier. Aceste fișiere sunt situate în director USR / lib / Firewalld / Servicii.

De exemplu:

# CD / usr / lib / firewalld / servicii

Mail (SMTP) Această opțiune permite livrarea de e-mail SMTP. Dacă trebuie să permiteți gazdelor la distanță să se conecteze direct la aparatul dvs. pentru a livra poștă, activați această opțiune. Nu este necesar să activați acest lucru dacă vă colectați poșta de pe serverul dvs. ISP cu POP3 sau IMAP sau dacă utilizați un instrument cum ar fi Fetchmail. Rețineți că un server SMTP configurat necorespunzător poate permite mașinilor la distanță să utilizeze serverul dvs. pentru a trimite serverul dvs. Spam.

Fișierul XML are o descriere a serviciului, a protocolului și a numărului de port, care va fi deschis în Firewalld.

La adăugarea regulilor, puteți utiliza parametrul -Add-serviciu.Pentru a deschide accesul la un anumit serviciu:

# Firewall-cmd --Zone \u003d Public --DD-service \u003d http

# Firewall-cmd --Zone \u003d Public --DD-service \u003d HTTPS

După adăugarea regulilor, puteți verifica dacă serviciile sunt adăugate în zona specificată:

# Firewall-cmd --Zone \u003d Public - lista de servicii

Dhcpv6-client http https ssh

Dacă doriți să faceți aceste reguli constante, atunci când adăugați, trebuie să adăugați un parametru -Permanent..

Pentru a elimina un serviciu din zonă:

# Firewall-cmd --Permanent --Zone \u003d Public --Remove-Service \u003d HTTP

DHCPV6-client https test ssh

Dacă doriți să adăugați serviciul dvs. la excepții, puteți crea un fișier. xml. Singur și umple-l. Puteți copia datele din orice serviciu, modificați numele, descrierea și numărul portului.

Copiați fișierul smtp.xml. La directorul pentru lucrul cu serviciile utilizatorilor:

# cp /usr/lib/firewalld/services/smtp.xml / etc / firewalld / serviciu

Modificați descrierea serviciului în fișier.

Fișierul XML în sine trebuie să fie redenumit de numele dvs. de serviciu. După aceea, trebuie să reporniți Firewalld și verificați dacă serviciul nostru este listat:

Am sunat la serviciu test Și în lista a apărut:

SYSLOG-TLS TELNET TFTP

Acum puteți adăuga serviciul creat în orice zonă:

# Firewall-CMD --Zone \u003d Public --Add-Service \u003d Test --Permanent

# Firewall-cmd --Zone \u003d Public --Permanent - lista de servicii

DHCPV6-client http https test ssh

Dacă găsiți serviciul de care aveți nevoie în listă, puteți deschide portul dorit pe echipa Firewalld:

# Firewall-cmd --Zone \u003d public -Add-port \u003d 77 / TCP - portul deschis 77 tCP.
# Firewall-cmd --Zone \u003d Public -Add-Port \u003d 77 / UDP - Port deschis 77 uDP.
# Firewall-cmd --Zone \u003d Public -Add-Port \u003d 77-88 / UDP - Gama de porturi deschise 77-88 uDP.
# Firewall-cmd --Zone \u003d Porturi publice - verificați lista porturilor permise

Blocați / Permiteți răspunsurile ICMP:

# Firewall-cmd --Zone \u003d public --DD-ICMP-bloc \u003d Echo-Răspuns
# Firewall-cmd --Zone \u003d Public --Remove-ICMP-bloc \u003d Echo-Răspuns

Ștergeți portul adăugat:

# Firewall-cmd --Zone \u003d Public -Remove-Port \u003d 77 / UDP - Ștergerea temporară a regulii 77 uDP.

# Firewall-cmd --Permanent --Zone \u003d public -Remove-Port \u003d 77 / UDP - Șterge o regulă permanentă

Adăugarea propriilor zone

Puteți crea propria zonă (o voi numi aL NOSTRU):

# Firewall-cmd --Permanent - Nouw-Zone \u003d Noi

După crearea unei noi zone, ca după crearea serviciului, aveți nevoie de o repornire firewalld.:

# Firewall-cmd - încărcați

# Firewall-cmd - Obiective-Zone

Blocul DMZ Drop Home externă Internă Internalul nostru de încredere publică

Zona aL NOSTRU Disponibil. Puteți adăuga servicii sau deschideți anumite porturi.

Firewalld: Blocați adresele IP, crearea excluderii

Puteți adăuga adresele IP de încredere la eliminarea Firewalld sau blocul nedorit.

Pentru a adăuga o anumită excepție adresa IP (de exemplu 8.8.8.8) de pe serverul dvs. prin firewalld.Utilizați comanda:

# Firewall-cmd --Zone \u003d public --dd-bogat-reglaj \u003d "Familia de reguli \u003d" IPv4 "adresa sursă \u003d" 8.8.8.8 "Accept"

Verificați zona și asigurați-vă că Ip. Adăugat la excepții în regulile Rich Reguli:

Obiectiv public (activ): Inversiune implicită ICMP: Nu există interfețe: Surse Eth0: Servicii: DHCPV6-Client HTTP HTTPS Porturi de testare SSH: Protocoale: Masquerade: Nu Porturi înainte: Source-Ports: Blocuri ICMP: Reguli bogate: Rich Reguli: REGULI FAMILIA \u003d "IPv4" Sursa Adresa \u003d "8.8.8.8" Acceptați

A bloca Ip., trebuie să înlocuiți accept pe respinge.:

# Firewall-CMD --Zone \u003d public - DDD-bogat-regula \u003d "Familia de reguli \u003d" IPv4 "adresa sursă \u003d" 8.8.4.4 "Respince"

# Firewall-cmd --Zone \u003d Lista publică - toate

Obiectiv public (activ): Inversiune implicită ICMP: Nu există interfețe: Surse Eth0: Servicii: DHCPV6-Client HTTP HTTPS Porturi de testare SSH: Protocoale: Masquerade: Nu Porturi înainte: Source-Ports: Blocuri ICMP: Reguli bogate: Rich Reguli: REGULI FAMILY \u003d "IPv4" Adresa sursă \u003d "8.8.8.8" Accept regulă familie \u003d "IPv4" adresa sursă \u003d "8.8.4.4" Respingere

Puteți rezolva un serviciu specific pentru solicitări de la o anumită adresă IP:

# Firewall-cmd - Reprezentantă - Rich-Rich-Rogand "IPv4" Source Adresă \u003d "10/10 / 1.0 / 24" Nume de serviciu \u003d "HTTPS" Accept "

Dacă aveți nevoie să blocați urgent toate solicitările către server, utilizați comanda de panică:

# Firewall-cmd --panic-on

Dezactivați modul de panică de către o comandă:

# Firewall-cmd --panic-off

Fie reporniți serverul.

Puteți bloca configurația Firewalld la serviciile locale cu drepturi de rădăcini Nu a putut schimba regulile firewall create de dvs .:

# Firewall-cmd - lookdown-on

Dezactivați modul de blocare:

# Firewall-cmd - blocare-off

Redirecționarea porturilor în Firewalld

Puteți crea o regulă de redirecționare a regulii în Firewalld. Pentru a redirecționa 443 port la 9090:

# Firewall-cmd --Zone \u003d Public --DD-Forward-Port \u003d Port \u003d 443: Proto \u003d TCP: TOPORT \u003d 9090 --Penanent

Pentru a șterge regula de redirecționare a portului:

# Firewall-cmd --Zone \u003d Public --Remove-Forward-Port \u003d Port \u003d 443: Proto \u003d TCP: TOPORT \u003d 9090

F Irewald este un instrument de control firewall disponibil în mod implicit pe serverele CentOS 7. Practic, aceasta este o coajă în jurul iPtables și vine cu un instrument grafic de configurare a configurației firewall-Configuration linie de comanda Firewall-cmd. Folosind serviciul iptables, fiecare schimbare necesită eliminarea regulilor vechi și crearea de noi reguli în " / etc / sysconfig / iptables`, Și când Firewalld aplică doar diferențe.

Firewalld Zones.

Firewalld utilizează servicii și zone în loc de reguli și lanțuri în iptables. Următoarele zone sunt disponibile în mod implicit:

  • cădere brusca. - Aruncați toate pachetele de rețea de intrare fără răspuns, sunt disponibile numai conexiuni de rețea de ieșire.
  • bloc- Respingeți toate pachetele de rețea primite cu mesaje interzise ICMP-Host-interzice, sunt disponibile numai conexiuni de rețea de ieșire.
  • public - sunt acceptate numai compușii primiți selectați, pentru utilizarea în locurile publice
  • extern - Pentru rețelele externe cu masquerading, sunt acceptate numai conexiunile selectate de intrare.
  • dMZ. - Zona DMZ demilitarizată este disponibilă public cu acces limitat la rețeaua internă, numai conexiunile selectate sunt acceptate.
  • muncă
  • aCASĂ. - Pentru computerele din zona de origine, sunt acceptate numai conexiunile primite selectate.
  • intern - Pentru computerele din rețeaua dvs. internă, sunt acceptate numai conexiuni primite selectate.
  • Încredere. - Toate conexiunile de rețea sunt acceptate.

Pentru a obține o listă cu toate zonele disponibile:

# Firewall-cmd - Obținerea zonelor de muncă Punerea internă externă de încredere Home DMZ Blocul public

Pentru a vizualiza lista de zone implicite:

# Firewall-CMD - Obiectivul implicit Public

Pentru a schimba zona implicită:

Servicii Firewalld.

Serviciile Firewalld sunt fișiere configurații XML., cu informații despre intrarea de serviciu pentru Firewalld. Pentru a obține o listă cu toate serviciile disponibile:

# Firewall-cmd --get-Servicii Amanda-client Amanda-K5-client Bacula Bacula-client Ceph Ceph-Mon DHCP DHCPV6 DHCPV6-client DNS Docker-Registry Dropbox-Lansync Freeipa-LDAP Freeipa-LDAPS Freipa-replication FTP de înaltă disponibilitate http https imap imaps ipp ipp-client IPSec ISCSI-TARGET KADMIN KERBEROS KPASSWD LDAP Libvirt Libvirt-TLS MDNS MOSH MS-WBT MySQL NFS NTP OpenVPN PMCD PMPROXY PMWEBAPI PMWebapis POP3 POP3SQL PRIVOXY PROXY-DHCP PTP Pulseaudio Puppetuster Radius RPC-Bind RSYNCD Samba Samba-client SAN SMTP SNMP SNMP SNMP SHIMP SHIP SSH SYNERGY SYSLOG SYSLOG-TLSE TFTP TFTP-Client Tinnet TFTP TFTP-Client Tinc TOR-SOCKS Transmisie-Client VDSM VNC-server WBEM-HTTPS XMPP-BOSH XMPP-client xmpp-local Xmpp-server.

Fișiere de configurare XML stocat în cataloage USR / lib / Firewalld / Servicii / și / etc / firewalld / servicii /.

Configurați firewall-ul cu firewalld

De exemplu, așa puteți configura firewall cu Firewalld dacă lucrați într-un server Web, SSH pe portul 7022 și serverul de mail.

Mai întâi am stabilit zona implicită pentru DMZ.

# Firewall-cmd - Default-Zone \u003d DMZ # Firewall-cmd - Observation-Zone DMZ

Pentru a adăuga reguli permanente de servicii pentru HTTP și HTTPS în zona DMZ, executați următoarea comandă:

# Firewall-cmd --Zone \u003d DMZ --DD-service \u003d HTTP --Permanent # Firewall-cmd --Zone \u003d DMZ --Add-service \u003d https --permanent

Portul deschis 25 (SMTP) și portul 465 (SMTPS):

Firewall-cmd --Zone \u003d DMZ --DD-service \u003d SMTP - Firewall-CMD --Zone \u003d DMZ --DD-Service \u003d SMTPS --Perment

Deschideți, IMAP, IMAPS, POP3 și POP3S:

Firewall-CMD --Zone \u003d DMZ --Add-service \u003d IMAP - Firewall-CMD-CMD --Zone \u003d DMZ --DD-Service \u003d IMAPS - Firewall-HMD --Zone \u003d DMZ --Add-Service \u003d POP3 - Firewall-Firewall-CMD --Zone \u003d DMZ --Add-service \u003d POP3S --Permanent

Deoarece portul SSH este schimbat la 7022, ștergem serviciul ssh (portul 22) și deschideți portul 7022

Firewall-CMD --Remove-Service \u003d SSH - Firewall-Firewall-CMD-Port \u003d 7022 / TCP --Permanent

Pentru a implementa modificările, trebuie să reporniți firewall-ul:

Firewall-cmd - Încărcare

Și în cele din urmă, puteți enumera regulile.

CENTOS 7, spre deosebire de CENTOS 6, în baza de date vine cu un nou firewall - Firewalld. Poate fi oprit și înlocuiți-l cu Iptables vechi vechi, dar dacă nu există o condiție directă pentru acest lucru, este mai bine să vă obișnuiți cu ceva nou și să nu vă odihniți în cel vechi. Acest lucru nu înseamnă că Windows 10 mai bine decât ferestrele 7, iar Windows XP este mai bună decât Windows 7;) Bun exemplu Pe acest subiect - selinux. Dacă mai întâi aproape toți (și, de asemenea), sa oprit și chiar a certat puțin, acum aproape nimeni nu o sfătuiește, numai dacă există încredere că este necesar. Dimpotrivă, mulți au devenit obișnuiți (sau utilizați) pentru a utiliza Semanage. Nu vom și acum vom opri firewalld și vom încerca cum are gust.

Firewalld nu este un firewall fundamental diferit. Aceasta este o altă suprastructură peste netfilter, deci dacă aveți experiență cu iptables, atunci suferind puțin vă începeți să utilizați un nou instrument.

Rularea și oprirea Firewalld

Verificați dacă Firewalld lansat:

# Sistemul SystemCTL Firewalld

Vor fi informații extinse. Pentru scurt, da (funcționează) sau nu acest lucru:

# Firewall-cmd --sstat
Alergare

Ok, funcționează.

Firewalld Stop:

# SystemCt Stop Firewalld

Stație automată inversă:

# Systemctl Dezactivați Firewalld

Lansați Firewalld:

# Systemctl începe Firewalld

Pornirea stației de autobuz:

# Systemctl permite Firewalld

Firewalld Zones.

Conceptul zonei este utilizat pe scară largă în Firewalld. Lista tuturor zonelor admise în mod implicit:

# Firewall-cmd - Obiective-Zone
Blocul DMZ Drop Home externă Publicul intern de încredere

Numirea zonelor (condiționată, desigur):

  • picătură - toate pachetele primite sunt eliminate (picătură) fără răspuns. Sunt permise numai compușii de ieșire.
  • block - conexiunile primite se abate (respins) cu răspunsul la ICMP-Host-Host-interzis (sau ICMP6-ADM-interzis). Sunt permise numai sistemul de conectare inițiat.
  • public - mod implicit. Din numele este clar de la faptul că această zonă vizează locul de muncă în rețele publice. Nu avem încredere în această rețea și nu permitem doar anumiți compuși primiți.
  • zona externă pentru interfața externă a routerului (așa-numita masquerading). Numai conexiunile primite definite de noi sunt permise.
  • zona DMZ - DMZ, numai anumite conexiuni primite sunt permise.
  • munca este o zonă de rețea de lucru. Încă nu avem încredere în nimeni, dar nu mai este la fel de mult ca înainte :) Numai anumiți compuși primiți sunt permise.
  • acasă - Zona de domiciliu. Avem încredere în împrejurimi, dar sunt permise numai anumiți compuși primiți
  • zona internă internă. Avem încredere în împrejurimi, dar sunt permise numai anumiți compuși primiți
  • trusted - Totul este permis.

Lista tuturor zonelor active:

# Firewall-cmd - Obiective-Active-Zone
Public
Interfețe: ENP1S0.

Da, zona publică la care este atașată interfața de rețea ENP1SO. Mai departe în zona publică adăugați un nou port pe care se va bloca SSHD.

Cunoașterea numelui interfeței de rețea (de exemplu, ENP1S0), puteți afla care zonă aparține:

# Firewall-cmd --get-zona-of-interface \u003d ENP1S0
Public

Și puteți afla care interfețe aparțin zonei specifice:

# Firewall-cmd --Zone \u003d Interfețe publice - lista de liniste
ENP1S0.

Exemplu: Permiteți SSH pe portul non-standard

Să permitem accesul la serverul SSH de pe portul 2234 / TCP și nu cu 22 / TCP, ca implicit. De-a lungul drumului, ușor atingeți selinux.

În primul rând, să vedem ceea ce este permis în general pe serverul nostru:

# Firewall-cmd --Permanent --list-all
Public (implicit)
Interfețe:
Surse:
Servicii: SSH DHCPV6-Client
Masquerade: Nu.
Porturi înainte:
Blocuri ICMP:
Reguli bogate:

Nu folosesc IPv6 în timp ce IPv6, așa că voi elimina imediat ACC. Regula de la Firewalld:

# Firewall-cmd --Permanent --Zone \u003d public --Remove-Service \u003d DHCPV6-Client

Pe baza unei baze continue (astfel încât după repornire nu este pierdută) Conectarea la Port 2234 / TCP (atârnă sshd pe ea):

# Firewall-cmd --Permanent --Zone \u003d public --dd-port \u003d 2234 / TCP

Reporniți regulile:

# Firewall-cmd - încărcați

Verifica:

# Firewall-cmd --Zone \u003d Porturi publice
2234 / TCP.

OK, portul este deschis. Editați config sshd:

# NANO / etc / ssh / sshd_config
...
PORT 2234.
...

# Systemctl reporniți sshd.service

Dar selinux, pe care sperați să nu dezactivați, nu veți permite conectarea la SSH pe portul non-standard (PORT 2234 / TCP pentru SSHD - non-standard). Puteți sări peste acest pas și verificați cum va funcționa protecția SELINUX și puteți configura imediat totul:

# Yum oferă semanage
# Yum instalați politicaCoreutils-Python
# Port de Semanage-o ssh_port_t -p TCP 2234

Acum totul este în regulă. Verificați conexiunea SSH de pe noul port. Dacă totul este OK, închideți accesul la portul 22:

# Firewall-cmd --Permanent --Zone \u003d public --Remove-Service \u003d SSH
# Firewall-cmd - încărcați

Ne uităm la ceea ce sa întâmplat:

# Firewall-cmd --list-all
Public (implicit, activ)
Interfețe:
Surse:
Servicii:
Porturi: 2234 / TCP
Masquerade: Nu.
Porturi înainte:
Blocuri ICMP:
Reguli bogate:

Asta e tot.

Diferite echipe utile:

Activați toate pachetele de ieșire și primele moduri:

# Firewall-cmd --panic-on

Opriți modul de blocare a tuturor pachetelor de ieșire și primite:

# Firewall-cmd --panic-off

Pentru a afla dacă toate pachetele de ieșire și primite sunt activate:

# Firewall-cmd - Vary-panică

Reîncărcați regulile Firewalld fără pierderea conexiunilor curente:

# Firewall-cmd - încărcați

Reîncărcați regulile Firewalld și resetați conexiunile curente (recomandate numai în cazul problemelor):

# Firewall-cmd - reîncărcare-reîncărcare

Adăugați la interfața de rețea Zone:

# Firewall-cmd --Zone \u003d Public --DD-interfață \u003d em1

Adăugați la interfața de rețea Zone (Salvare după repornirea firewall):

# Firewall-cmd --Zone \u003d public - Permanent --Add-interfață \u003d em1

Puteți specifica configul IFCFG-ENP1S0 pe care aparține această interfață. Pentru a face acest lucru, adăugați zona \u003d lucrul la fișierul / etc / sysconfig / script-uri de rețea / IFCFG-EP1S0. Dacă parametrul zonei nu este specificat, zona implicită va fi alocată (parametrul defaultzone în fișierul /etc/firewalld/firewalld.conf.

Permiteți intervalul de port:

# Firewall-cmd --Zone \u003d Public --DD-port \u003d 5059-5061 / UDP

Masquerade, el este Nat, el ...):

Verifica statusul:

# Firewall-cmd --Zone \u003d externă - Masquerade

Permite:

# Firewall-cmd --Zone \u003d extern --dd-masquerade

Aici trebuie remarcat faptul că puteți activa Masquerade și pentru zona publică, de exemplu.

Redirecționați portul către un alt port către o altă gazdă:

# Firewall-cmd --Zone \u003d Port extern - DDD-Forward-Port \u003d Port \u003d 22: Proto \u003d TCP: Toaddr \u003d 192.168.1.23

Redirecționați portul către un alt port către o altă gazdă cu o schimbare în portul de destinație (de la 22 la 192.168.1.23:2055):

# Firewall-cmd --Zone \u003d extern /
- Port înainte \u003d Port \u003d 22: Proto \u003d TCP: TOPORT \u003d 2055: TOADDR \u003d 192.168.1.23

În acest sens, pentru că Exemplele pot fi infinit foarte mult. Voi adăuga doar că eu personal nu mi-am compus opinia despre inovația Firewalld, pentru că Te obișnuiești cu sintaxa pentru o lungă perioadă de timp și dacă diferite OS Linux se găsește în grădina zoologică, apoi, în prima dată, pot exista probleme cu obiceiul. Dar am stăpânit Firewalld, extindeți orizonturile - cel mai adesea, merită efortul.

Avantajele Firewalld.

Principalul avantaj - veți fi un pic abstract de la lanțurile iptables. Pentru includerea redirecționării porturilor, nu trebuie să vă gândiți la frunte sau să postați în plus față de înainte. Vi se oferă "API din Iptables de la producător" ceva de genul asta. Dacă ați pornit NAT, nu contează unde este în mod specific (în orice număr de ordine de reguli curente) o regulă este postată. Pur și simplu specificați - porniți NAT în eth0. Și fără nonsens;) poate fi convenabil dacă trebuie să organizați interfață web Controlul firewall-ului.

Este posibil să verificați starea (de exemplu, NAT este pornit sau nu!). De asemenea, utilizați-l în scripturile dvs., în logica aplicației dvs., de exemplu. Nu știu cum să creez o solicitare de stare (ON / OFF) în iptables. Puteți, desigur, ceva în genul iptables -l -t Nat | GREP "...", dar sunteți de acord, acest lucru nu este același lucru care rulează "Firewall-cmd --Zone \u003d externă - Masquerade". Există, de exemplu, sute de VM cu CentOS, în care pot exista nume ușor diferite pentru interfețele WAN sau altceva în acest fel. Și astfel aveți un cmdlet universal, care va da un rezultat așteptat pe diferite mașini.

Dezavantaje ale Firewalld.

Principalul dezavantaj, în opinia mea, este că atunci când vă cunoașteți, dumping de la iptablele "curate", care este în Debian și în Ubuntu și în CentOS și, în general, peste tot. Chiar, apropo, sintaxa și lanțurile microtice arată ca tipul pe iptables. Acesta este un amator, desigur. Și profesionistul este încă să lucreze, dacă există condiții specifice, va funcționa cu ceea ce este. Dar ... Sunt retrograd și rezistă disperat (fără avantaje explicite) elemente noi pe care fiecare mare jucător îl implementează în sine. Redhat este benefic, dacă din ce în ce mai mulți specialiști sunt Asami în Firewalld.

Și dacă ați comutat la Firewalld, atunci iPtables net sintaxă va răni numai - va fi un terci sau va rupe funcția de firewall dacă începeți să schimbați / completați regulile care nu utilizează sintaxa standard Firewalld.

Nu vreau Firewalld! Întoarceți-vă la mine vechi IPables!

Dacă doriți încă să returnați trecutul și să înlocuiți Firewalld pe iptables, atunci nu este dificil să o faceți:

Novice aici nu este un loc:

# Systemctl Dezactivați Firewalld
# SystemCt Stop Firewalld

Am pus vechi IPABABABABLES:

# Yum instalați iptable-servicii

Rulați firewall-ul:

# Systemctl Start Iptables
# Systemctl Start Ip6mes

Autostart când este pornit:

# Systemctl Activează iptables
# Systemctl Activați IP6Mables

Pentru a salva regulile iptablelor după repornirea:

# / Sbin / iptables-salvare\u003e / etc / sysconfig / iptables
# / SBIN / IP6Bables-Save\u003e / etc / SysConfig / IP6mes

Sau într-un prag:

# Service iptables salvează

Regulile actuale sunt în fișiere:
/ etc / sysconfig / iptables
/ etc / sysconfig / ip6mes

Reporniți Iptables (de exemplu, după efectuarea oricăror modificări):

# Systemctl Repornire Iptables.service




Ți-a plăcut articolul? Împărtășește-l