Android

Cum să configurați și să gestionați firewallul pe Centos 8

Disable Windows Defender on Windows 10 - Turn Off Antivirus

Disable Windows Defender on Windows 10 - Turn Off Antivirus

Cuprins:

Anonim

Un firewall este o metodă pentru monitorizarea și filtrarea traficului de rețea care intră și iese. Funcționează prin definirea unui set de reguli de securitate care determină dacă să permită sau să blocheze traficul specific. Un firewall configurat corect este unul dintre cele mai importante aspecte ale securității generale a sistemului.

CentOS 8 nave cu un demon de firewall numit firewalld. Este o soluție completă cu o interfață D-Bus care vă permite să gestionați firewall-ul sistemului în mod dinamic.

În acest tutorial, vom vorbi despre cum să configurați și să gestionați firewall-ul pe CentOS 8. Vom explica, de asemenea, conceptele de bază FirewallD.

Cerințe preliminare

Pentru a configura serviciul de firewall, trebuie să fiți autentificat ca root sau utilizator cu privilegii sudo.

Conceptele de bază pentru firewalld

firewalld folosește conceptele de zone și servicii. Pe baza zonelor și serviciilor pe care le veți configura, puteți controla ce trafic este permis sau blocat către și din sistem.

Firewalld poate fi configurat și gestionat folosind utilitatea liniei de comandă firewall-cmd .

În CentOS 8, iptables este înlocuit cu nftables ca backend pentru firewall implicit pentru daemon firewalld.

Zonele firewalld

Zonele sunt seturi de reguli predefinite care specifică nivelul de încredere al rețelelor 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-prohibited pentru IPv4 și icmp6-adm-prohibited pentru 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. Serviciile vă permit să efectuați cu ușurință mai multe sarcini într-un singur pas.

De exemplu, serviciul poate conține definiții despre deschiderea porturilor, redirecționarea traficului și multe altele.

Firewalld Runtime și Setări permanente

Firewalld utilizează două seturi de configurare separate, runtime și configurație permanentă.

Configurația runtime este configurația de execuție reală și nu persistă la repornire. Când demonul 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 ca modificările să adauge permanent opțiunea --permanent la comandă.

Pentru a aplica modificările în ambele seturi de configurare, puteți utiliza una dintre următoarele două metode:

  1. Schimbați configurația de rulare și faceți-o permanentă:

    sudo firewall-cmd sudo firewall-cmd --runtime-to-permanent

    Modificați configurația permanentă și reîncărcați demonul firewalld:

    sudo firewall-cmd --permanent sudo firewall-cmd --reload

Activarea FirewallD

Pe CentOS 8, firewalld este instalat și activat implicit. Dacă din anumite motive nu este instalat pe sistemul dvs., puteți instala și porni demonul tastând:

sudo dnf install firewalld sudo systemctl enable firewalld --now

Puteți verifica starea serviciului firewall cu:

sudo firewall-cmd --state

Dacă firewallul este activat, comanda ar trebui să imprime running . În caz contrar, veți vedea că not running .

Zonele firewalld

Zona implicită este cea folosită pentru tot ceea ce nu este atribuit explicit unei alte zone.

Puteți vedea 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

Pentru a vedea zonele active și interfețele de rețea atribuite acestora:

sudo firewall-cmd --get-active-zones

Rezultatul de mai jos arată că interfețele eth0 și eth1 sunt atribuite zonei public :

public interfaces: eth0 eth1

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 folosește ținta implicită, care este REJECT . De asemenea, ieșirea arată că zona este folosită de interfețele eth0 și eth1 și permite traficul client DHCP și SSH.

sudo firewall-cmd --list-all-zones

Comanda tipărește o listă uriașă cu setările tuturor zonei disponibile.

Modificarea țintei zonei

Ținta definește comportamentul implicit al zonei pentru traficul care nu este specificat. Poate fi setat la una dintre următoarele opțiuni: default , ACCEPT , REJECT și DROP .

Pentru a seta ținta zonei, specificați zona cu opțiunea --zone și ținta cu opțiunea --set-target .

De exemplu, pentru a schimba ținta zonei public în DROP veți rula:

sudo firewall-cmd --zone=public --set-target=DROP

Alocarea unei interfețe unei zone diferite

Puteți crea seturi de reguli specifice pentru zone diferite și le puteți atribui interfețe diferite. Acest lucru este util mai ales când aveți mai multe interfețe pe mașină.

Pentru a atribui o interfață unei zone diferite, specificați zona cu opțiunea --zone și interfața cu opțiunea --change-interface .

De exemplu, următoarea comandă atribuie interfața eth1 zonei de work :

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 home 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

home

Crearea de noi zone

Firewalld vă permite, de asemenea, să vă creați propriile dvs. zone. Acest lucru este util atunci când doriți să creați reguli pentru fiecare aplicație.

În următorul exemplu, vom crea o nouă zonă numită memcached , vom deschide portul 11211 și vom permite accesul numai de la adresa IP 192.168.100.30 :

  1. Creați zona:

    sudo firewall-cmd --new-zone=memcached --permanent

    Adăugați regulile la zonă:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent

    Reîncărcați demonul firewalld pentru a activa modificările:

    sudo firewall-cmd --reload

Servicii Firewalld

Cu firewalld puteți permite traficul pentru anumite porturi și / sau surse 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:

/usr/lib/firewalld/services/http.xml

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

Pentru a menține portul 80 deschis după o repornire rulați aceeași comandă din nou cu opțiunea --permanent sau executați:

sudo firewall-cmd --runtime-to-permanent

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 unuia. Utilizați doar --remove-service în loc de --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.

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, puteți utiliza fișierul de serviciu 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 și Etichete. Cea mai importantă etichetă pe care trebuie să o schimbați este eticheta 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.

/etc/firewalld/services/plexmediaserver.xml

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.

Deschiderea porturilor și a IP-urilor sursă

Firewalld vă permite, de asemenea, să activați rapid tot traficul de la o adresă IP de încredere sau de pe un port specific, fără a crea o definiție a serviciului.

Deschiderea unui IP sursă

Pentru a permite tot traficul de intrare de la o anumită adresă IP (sau interval), specificați zona cu opțiunea --zone și IP --add-source opțiunea --add-source .

De exemplu, pentru a permite tot traficul primit din 192.168.1.10 în zona public , executați:

sudo firewall-cmd --zone=public --add-source=192.168.1.10

Faceți ca noua regulă să persiste:

sudo firewall-cmd --runtime-to-permanent

Verificați modificările folosind următoarea comandă:

sudo firewall-cmd --zone=public --list-sources

192.168.1.10

Sintaxa pentru eliminarea unui IP sursă este aceeași ca la adăugarea unuia. Utilizați doar --remove-source în locul --add-source :

sudo firewall-cmd --zone=public --remove-source=192.168.1.10

Deschiderea unui port sursă

Pentru a permite tot traficul de intrare pe un port dat, specificați zona cu opțiunea --zone și portul și protocolul cu opțiunea --add-port .

De exemplu, pentru a deschide portul 8080 în zona publică pentru sesiunea curentă în care ați rulat:

sudo firewall-cmd --zone=public --add-port=8080/tcp

Protocolul poate fi fie tcp , udp , sctp sau dccp .

Verificați modificările:

sudo firewall-cmd --zone=public --list-ports

8080

Pentru a menține portul deschis după o repornire, adăugați regula la setările permanente, executând aceeași comandă folosind --permanent sau executând:

sudo firewall-cmd --runtime-to-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=8080/tcp

Transmiterea porturilor

Pentru a redirecționa traficul dintr-un port în alt port, activați mai întâi masquerading-ul pentru zona dorită folosind opțiunea --add-masquerade . De exemplu, pentru a activa mascherarea pentru zona external , tastați:

sudo firewall-cmd --zone=external --add-masquerade

Transmite trafic de la un port la altul pe adresa IP

Î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 o altă adresă IP

Î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

Pentru a face persistenta regula înainte, utilizați:

sudo firewall-cmd --runtime-to-permanent

Concluzie

Ați învățat cum să configurați și să gestionați serviciul firewalld pe sistemul dvs. CentOS 8.

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 centos security