Настройка firewall в CentOS 7 (firewalld)
Cuprins:
- Cerințe preliminare
- Conceptele de bază pentru firewalld
- Zonele firewalld
- Servicii firewall
- Firewalld Runtime și Setări permanente
- Instalarea și activarea FirewallD
- Lucrul cu zonele Firewalld
- Schimbarea zonei unei interfețe
- Modificarea zonei implicite
- Deschiderea unui port sau serviciu
- Crearea unui nou serviciu FirewallD
- Transmiterea portului cu Firewalld
- Crearea unui set de reguli cu FirewallD
- Concluzie
Un firewall configurat corect este unul dintre cele mai importante aspecte ale securității generale a sistemului.
FirewallD este o soluție completă de firewall care gestionează regulile iptables ale sistemului și oferă o interfață D-Bus pentru operarea lor. Începând cu CentOS 7, FirewallD înlocuiește iptables ca instrument implicit de gestionare a firewall-ului.
În acest tutorial, vă arătăm cum puteți configura un firewall cu FirewallD pe sistemul dvs. CentOS 7 și vă explicăm conceptele de bază FirewallD.
Cerințe preliminare
Înainte de a începe cu acest tutorial, asigurați-vă că sunteți conectat la serverul dvs. cu un cont de utilizator cu privilegii sudo sau cu utilizator root. Cea mai bună practică este să rulați comenzi administrative ca utilizator sudo în loc de root. Dacă nu aveți un utilizator sudo în sistemul dvs. CentOS, puteți crea unul urmând aceste instrucțiuni.
Conceptele de bază pentru firewalld
FirewallD utilizează conceptele de zone și servicii, în loc de lanț iptables și reguli. Pe baza zonelor și serviciilor pe care le veți configura, puteți controla ce trafic este permis sau interzis pentru și din sistem.
FirewallD poate fi configurat și gestionat folosind utilitatea liniei de comandă
firewall-cmd
.
Zonele firewalld
Zonele sunt seturi de reguli predefinite care specifică ce trafic trebuie permis în funcție de nivelul de încredere în rețelele la care este conectat computerul. Puteți atribui interfețe de rețea și surse unei zone.
Mai jos sunt zonele furnizate de FirewallD ordonate în funcție de nivelul de încredere al zonei de la neîncredere la încredere:
- picătură: Toate conexiunile primite sunt eliminate fără nicio notificare. Sunt permise doar conexiunile de ieșire. bloc: Toate conexiunile primite sunt respinse cu un mesaj
icmp-host-prohibitedpentruIPv4șiicmp6-adm-prohibitedpentru IPv6n. Sunt permise doar conexiunile de ieșire. public: Pentru utilizare în zone publice neîncredute. Nu aveți încredere în alte computere din rețea, dar puteți permite conexiuni de intrare selectate. extern: Pentru utilizare pe rețele externe cu mascare NAT activat atunci când sistemul dvs. acționează ca un gateway sau un router. Sunt permise numai conexiunile de intrare selectate. intern: Pentru utilizare în rețelele interne atunci când sistemul dvs. acționează ca un gateway sau un router. Alte sisteme din rețea sunt în general de încredere. Sunt permise numai conexiunile de intrare selectate. dmz: utilizat pentru calculatoarele din zona dvs. demilitarizată care au acces limitat la restul rețelei. Sunt permise numai conexiunile de intrare selectate. de lucru: folosit pentru mașini de lucru. Alte computere din rețea sunt în general de încredere. Sunt permise numai conexiunile de intrare selectate. acasă: folosit pentru mașini de uz casnic. Alte computere din rețea sunt în general de încredere. Sunt permise numai conexiunile de intrare selectate. de încredere: toate conexiunile de rețea sunt acceptate. Ai încredere în toate calculatoarele din rețea.
Servicii firewall
Serviciile Firewalld sunt reguli predefinite care se aplică într-o zonă și definesc setările necesare pentru a permite traficul de intrare pentru un anumit serviciu.
Firewalld Runtime și Setări permanente
Firewalld utilizează două seturi de configurare separate, runtime și configurație permanentă.
Configurația de execuție este configurația de execuție reală și nu este persistentă la repornirea. Când serviciul Firewalld începe, se încarcă configurația permanentă, care devine configurația de rulare.
În mod implicit, atunci când efectuați modificări la configurația Firewalld folosind utilitarul
firewall-cmd
, modificările sunt aplicate la configurația runtime. Pentru a face modificările permanente, trebuie să utilizați opțiunea
--permanent
.
Instalarea și activarea FirewallD
-
Firewalld este instalat în mod implicit pe CentOS 7, dar dacă nu este instalat pe sistemul dvs., puteți instala pachetul tastând:
sudo yum install firewalldServiciul Firewalld este dezactivat în mod implicit. Puteți verifica starea firewallului cu:
sudo firewall-cmd --statePentru a porni serviciul FirewallD și a-l activa pe tipul de boot:
sudo systemctl start firewalldsudo systemctl enable firewalld
Lucrul cu zonele Firewalld
După activarea serviciului FirewallD pentru prima dată, zona
public
este setată ca zonă implicită. Puteți vizualiza zona implicită tastând:
sudo firewall-cmd --get-default-zone
public
Pentru a obține o listă cu toate zonele disponibile, introduceți:
sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work
În mod implicit, toate interfețele de rețea sunt alocate zonei implicite. Pentru a verifica ce zone sunt utilizate de tipul de interfață de rețea:
sudo firewall-cmd --get-active-zones
public interfaces: eth0 eth1
Rezultatul de mai sus ne spune că ambele interfețe
eth0
și
eth1
sunt atribuite zonei publice.
Puteți imprima setările de configurare a zonei cu:
sudo firewall-cmd --zone=public --list-all
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Din ieșirea de mai sus, putem vedea că zona publică este activă și setată ca implicită, folosită atât de interfețele
eth0
cât și de
eth1
. De asemenea, conexiunile legate de clientul DHCP și SSH sunt permise.
sudo firewall-cmd --list-all-zones
Comanda tipărește o listă uriașă cu setările tuturor zonei disponibile.
Schimbarea zonei unei interfețe
Puteți schimba cu ușurință Zona de interfață utilizând opțiunea
--zone
în combinație cu opțiunea
--change-interface
. Următoarea comandă va atribui interfața
eth1
zonei de lucru:
sudo firewall-cmd --zone=work --change-interface=eth1
Verificați modificările tastând:
sudo firewall-cmd --get-active-zones
work interfaces: eth1 public interfaces: eth0
Modificarea zonei implicite
Pentru a schimba zona implicită, utilizați opțiunea
--set-default-zone
urmată de numele zonei pe care doriți să o faceți implicită.
De exemplu, pentru a schimba zona implicită în casă, ar trebui să executați următoarea comandă:
sudo firewall-cmd --set-default-zone=home
Verificați modificările cu:
sudo firewall-cmd --get-default-zone
Deschiderea unui port sau serviciu
Cu FirewallD puteți permite traficul pentru anumite porturi pe baza regulilor predefinite numite servicii.
Pentru a obține o listă cu toate tipurile de servicii disponibile implicit:
sudo firewall-cmd --get-services

Puteți găsi mai multe informații despre fiecare serviciu prin deschiderea fișierului.xml aflat în directorul
/usr/lib/firewalld/services
. De exemplu, serviciul HTTP este definit astfel:
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
Pentru a permite traficul HTTP de intrare (port 80) pentru interfețele din zona publică, numai pentru tipul sesiunii curente (configurație runtime):
sudo firewall-cmd --zone=public --add-service=http
Dacă modificați zona implicită, puteți părăsi opțiunea
--zone
.
Pentru a verifica dacă serviciul a fost adăugat cu succes, utilizați opțiunea
--list-services
:
sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client
sudo firewall-cmd --permanent --zone=public --add-service=http
Utilizați
--list-services
împreună cu opțiunea
--permanent
pentru a verifica modificările:
sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client
Sintaxa pentru eliminarea serviciului este aceeași ca la adăugarea unui serviciu. Utilizați doar
--remove-service
în loc de opțiunea
--add-service
:
sudo firewall-cmd --zone=public --remove-service=http --permanent
Comanda de mai sus elimină serviciul http din configurația permanentă a zonei publice.
Ce se întâmplă dacă executați o aplicație precum Plex Media Server pentru care nu există un serviciu adecvat disponibil?
În situații ca acestea, aveți două opțiuni. Puteți deschide porturile corespunzătoare sau defini un nou serviciu FirewallD.
De exemplu, Plex Server ascultă portul 32400 și folosește TCP, pentru a deschide portul în zona publică pentru sesiunea curentă, folosiți opțiunea
--add-port=
:
sudo firewall-cmd --zone=public --add-port=32400/tcp
Protocoalele pot fi fie
tcp
fie
udp
.
Pentru a verifica dacă portul a fost adăugat cu succes, utilizați opțiunea
--list-ports
:
sudo firewall-cmd --zone=public --list-ports
32400/tcp
Pentru a menține portul
32400
deschis după repornire, adăugați regula la setările permanente, executând aceeași comandă folosind opțiunea
--permanent
.
Sintaxa pentru eliminarea unui port este aceeași ca la adăugarea unui port. Utilizați doar
--remove-port
în locul
--add-port
.
sudo firewall-cmd --zone=public --remove-port=32400/tcp
Crearea unui nou serviciu FirewallD
După cum am menționat deja, serviciile implicite sunt stocate în directorul
/usr/lib/firewalld/services
. Cel mai simplu mod de a crea un nou serviciu este de a copia un fișier de servicii existent în directorul
/etc/firewalld/services
, care este locația pentru servicii create de utilizator și de a modifica setările fișierului.
De exemplu, pentru a crea o definiție de serviciu pentru Plex Media Server, putem folosi fișierul de servicii SSH:
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml
Deschideți fișierul recent creat
plexmediaserver.xml
și schimbați numele scurt și descrierea pentru serviciul din
port
, care definește numărul de port și protocolul pe care doriți să îl deschideți.
În următorul exemplu, deschidem porturi
1900
UDP și
32400
TCP.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
Salvați fișierul și reîncărcați serviciul FirewallD:
sudo firewall-cmd --reload
Acum puteți utiliza serviciul
plexmediaserver
în zonele dvs. la fel ca orice alt serviciu..
Transmiterea portului cu Firewalld
Pentru a
--add-masquerade
traficul dintr-un port în alt port sau adresă, activați mai întâi masquerading-ul pentru zona dorită folosind comutatorul
--add-masquerade
. De exemplu, pentru a activa mascherarea pentru tipul de zonă
external
:
sudo firewall-cmd --zone=external --add-masquerade
- Transmite trafic de la un port la altul pe același server
În următorul exemplu trimitem traficul de la portul
80
la portul
8080
pe același server:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
- Transmite trafic către un alt server
În următorul exemplu, redirecționăm traficul de la portul
80
la portul
80
pe un server cu IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2
- Transmite trafic către un alt server de pe un alt port
În următorul exemplu, redirecționăm traficul de la portul
80
la portul
8080
pe un server cu IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2
Crearea unui set de reguli cu FirewallD
În exemplul următor, vom arăta cum să configurați firewallul dacă rulați un server web. Presupunem că serverul dvs. are o singură interfață
eth0
și doriți să permiteți traficul de intrare numai pe porturile SSH, HTTP și
-
Modificați zona implicită în dmz
Vom folosi zona dmz (demilitarizată), deoarece implicit, aceasta permite doar trafic SSH. Pentru a schimba zona implicită la dmz și a o aloca interfeței
eth0, executați următoarele comenzi:sudo firewall-cmd --set-default-zone=dmzsudo firewall-cmd --zone=dmz --add-interface=eth0Deschide porturi HTTP și
Pentru a deschide porturile HTTP și HTTPS adăugați reguli de serviciu permanente în zona dmz:
sudo firewall-cmd --permanent --zone=dmz --add-service=httpsudo firewall-cmd --permanent --zone=dmz --add-service=httpsFaceți modificările eficiente imediat reîncărcând firewall-ul:
sudo firewall-cmd --reloadVerificați modificările
Pentru a verifica tipul de setări de configurare a zonei dmz:
sudo firewall-cmd --zone=dmz --list-alldmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:Rezultatul de mai sus ne spune că dmz este zona implicită, este aplicat pe interfața
eth0și porturile ssh (22) http (80) și https (443) sunt deschise.
Concluzie
Ați învățat cum puteți configura și gestiona serviciul FirewallD pe sistemul dvs. CentOS.
Asigurați-vă că permiteți toate conexiunile primite care sunt necesare pentru buna funcționare a sistemului dvs., limitând în același timp toate conexiunile inutile.
firewalld firewall iptables centos de securitateAflați cum să modificați, să configurați, să configurați, să salvați, exportați, importați asocieri de fișiere în Windows 10 / 8.1 utilizând Setări și Instrumentul DISM.
Am văzut cum putem seta sau modifica File Associations & Extensions în Windows prin intermediul applet-ului Programs Default Panel. De asemenea, Windows 10 / 8.1 / 8 vă permite să configurați aceste Asociații de fișiere prin Setări.
Cum să configurați tunelul ssh pentru a ocoli un firewall
Un firewall este un lucru bun, dar dacă te împiedică să faci ceva, atunci SSH Tunneling este o opțiune bună pentru a explora.
Cum să opriți și să dezactivați firewalld pe Centos 7
Începând cu CentOS 7, FirewallD înlocuiește iptables ca instrument implicit de gestionare a firewall-ului. În acest tutorial vă vom arăta cum să dezactivați FirewallD pe sistemele CentOS 7.







