Android

A tűzfalak konfigurálása és kezelése a centos 8-on

Week 6

Week 6

Tartalomjegyzék:

Anonim

A tűzfal a bejövő és kimenő hálózati forgalom figyelésére és szűrésére szolgál. Úgy működik, hogy meghatároz egy biztonsági szabályokat, amelyek meghatározzák, hogy engedélyezik-e vagy blokkolják-e az adott forgalmat. A megfelelően konfigurált tűzfal az általános rendszerbiztonság egyik legfontosabb szempontja.

A CentOS 8 egy tűzfal démonnal, a firewalld névvel szállít. Ez egy teljes megoldás egy D-Bus interfésszel, amely lehetővé teszi a rendszer tűzfalának dinamikus kezelését.

Ebben az oktatóanyagban a tűzfalak konfigurálásáról és kezeléséről beszélünk a CentOS 8 rendszeren. Megmagyarázzuk az alapvető FirewallD fogalmakat.

Előfeltételek

A tűzfalszolgáltatás konfigurálásához be kell jelentkeznie gyökérként vagy felhasználóként sudo jogosultságokkal.

Alapvető tűzfal koncepciók

A tűzfal a zónák és a szolgáltatások fogalmait használja. A konfigurált zónák és szolgáltatások alapján ellenőrizheti, hogy mekkora forgalom engedélyezett vagy blokkolva van-e a rendszer és onnan.

A tűzfalat a firewall-cmd parancssori segédprogrammal lehet konfigurálni és kezelni.

A CentOS 8 alkalmazásban az iptable helyébe az nftables lép, mint a tűzfal démonnak az alapértelmezett tűzfal hátterére.

Tűzfal zónák

A zónák előre meghatározott szabálykészletek, amelyek meghatározzák a számítógéphez csatlakoztatott hálózatok megbízhatóságának szintjét. A zóna hálózati interfészeket és forrásokat rendelhet hozzá.

Az alábbiakban a FirewallD által biztosított zónák vannak rendezve, a zóna megbízhatóságának szintje szerint, a megbízhatatlantól a megbízhatóig:

  • drop: Az összes bejövő kapcsolat értesítés nélkül megszakad. Csak kimenő kapcsolatok megengedettek. blokk: Minden bejövő kapcsolatot elutasítunk egy icmp-host-prohibited üzenettel az IPv4 és icmp6-adm-prohibited üzenetet az icmp6-adm-prohibited hez. Csak kimenő kapcsolatok megengedettek. nyilvános: nem megbízható nyilvános területeken történő felhasználásra. Nem bíz meg a hálózat többi számítógépén, de engedélyezheti a kiválasztott bejövő kapcsolatokat. Külső: Külső hálózatokon történő használatra, ahol a NAT-árnyékolás engedélyezve van, ha a rendszer átjáróként vagy útválasztóként működik. Csak a bejövő kapcsolatok engedélyezettek. belső: belső hálózatokban történő felhasználásra, amikor a rendszer átjáróként vagy útválasztóként működik. A hálózat többi rendszerére általában megbízható. Csak a bejövő kapcsolatok engedélyezettek. dmz: A demilitarizált zónában található számítógépekhez használható, amelyek korlátozott hozzáféréssel rendelkeznek a hálózat többi részéhez. Csak a bejövő kapcsolatok engedélyezettek. munka: Munkagépekhez használható. A hálózat többi számítógépére általában megbízható. Csak a bejövő kapcsolatok engedélyezettek. otthon: otthoni gépekhez használják. A hálózat többi számítógépére általában megbízható. Csak a bejövő kapcsolatok engedélyezettek. megbízható: Minden hálózati kapcsolat elfogadva. Bízzon a hálózat összes számítógépén.

Tűzfal szolgáltatások

A tűzfal szolgáltatásai előre meghatározott szabályok, amelyek egy zónán belül érvényesek, és meghatározzák a szükséges beállításokat az adott szolgáltatás bejövő forgalmának engedélyezéséhez. A szolgáltatások lehetővé teszik, hogy egyszerre több feladatot elvégezzen egy lépésben.

A szolgáltatás például meghatározásokat tartalmazhat a portok megnyitásáról, a forgalom továbbításáról és egyebekről.

Tűzfal futási idő és állandó beállítások

A tűzfal két külön elválasztott konfigurációs készletet használ, a futási időt és az állandó konfigurációt.

A futásidejű konfiguráció a tényleges futó konfiguráció, és nem áll fenn újraindításkor. Amikor a tűzfal démon elindul, betölti az állandó konfigurációt, amely a futásidejű konfigurációvá válik.

Alapértelmezés szerint, amikor a tűzfal-konfigurációt a firewall-cmd segédprogrammal módosítja, a módosításokat a futásidejű konfigurációra kell alkalmazni. A változtatások állandóvá --permanent csatolja a --permanent opciót a parancshoz.

A módosítások mindkét konfigurációs halmazban történő alkalmazására a következő két módszer egyikét használhatja:

  1. Változtassa meg a futási idő konfigurációját:

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

    Változtassa meg az állandó konfigurációt, és töltse be újra a tűzfal démont:

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

A FirewallD engedélyezése

A CentOS 8 rendszeren a tűzfal telepítve van és alapértelmezés szerint engedélyezve van. Ha valamilyen okból nincs telepítve a rendszerére, a démont telepítheti és elindíthatja a következő gépeléssel:

sudo dnf install firewalld sudo systemctl enable firewalld --now

A tűzfal szolgáltatás állapotát az alábbiakkal ellenőrizheti:

sudo firewall-cmd --state

Ha a tűzfal engedélyezve van, akkor a parancsnak nyomtatnia kell. Ellenkező esetben látni fogja, hogy not running .

Tűzfal zónák

Az alapértelmezett zóna mindaz, amelyet nincs kifejezetten hozzárendelve egy másik zónához.

Az alapértelmezett zónát a következő gépeléssel láthatja:

sudo firewall-cmd --get-default-zone

public

Az összes elérhető zóna listájának megtekintéséhez írja be:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

Az aktív zónák és a hozzájuk rendelt hálózati interfészek megtekintéséhez:

sudo firewall-cmd --get-active-zones

Az alábbi kimenet azt mutatja, hogy az eth0 és eth1 interfészek a public zónához vannak rendelve:

public interfaces: eth0 eth1

A zóna konfigurációs beállításait kinyomtathatja:

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:

A fenti kimenetből láthatjuk, hogy a nyilvános zóna aktív és az alapértelmezett célt használja, amely a REJECT . A kimenet azt is mutatja, hogy a zónát az eth0 és eth1 interfészek használják, és lehetővé teszik a DHCP kliens és az SSH forgalmat.

sudo firewall-cmd --list-all-zones

A parancs hatalmas listát nyomtat az összes elérhető zóna beállításaival.

A zóna cél megváltoztatása

A cél meghatározza a zóna alapértelmezett viselkedését a nem megadott bejövő forgalom számára. Az alábbi lehetőségek egyikét állíthatja be: default , ACCEPT , REJECT és DROP .

A zóna céljának beállításához adja meg a zónát a --zone opcióval, a célt pedig a --set-target opcióval.

Például, ha a public zóna célját DROP szeretné változtatni, akkor futtatná:

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

Interfész hozzárendelése egy másik zónához

Készíthet különös szabálykészleteket a különböző zónákhoz, és különféle interfészeket rendelhet hozzájuk. Ez különösen akkor hasznos, ha a számítógépen több interfész van.

Interfész hozzárendeléséhez egy másik zónához adja meg a zónát a --zone opcióval, és az interfészt a --change-interface opcióval.

Például a következő parancs az eth1 felületet rendeli a eth1 :

sudo firewall-cmd --zone=work --change-interface=eth1

Ellenőrizze a változásokat a következő gépeléssel:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Az alapértelmezett zóna megváltoztatása

Az alapértelmezett zóna megváltoztatásához használja a --set-default-zone opciót, majd kövesse az --set-default-zone a nevét.

Például, ha az alapértelmezett zónát home szeretné váltani, akkor a következő parancsot futtassa:

sudo firewall-cmd --set-default-zone=home

Ellenőrizze a változásokat:

sudo firewall-cmd --get-default-zone

home

Új zónák létrehozása

A Firewalld lehetővé teszi saját zónák létrehozását is. Ez akkor hasznos, ha alkalmazási szabályokat szeretne létrehozni.

A következő példában létrehozzunk egy új memcached nevű zónát, nyissuk meg a 11211 portot, és csak a 192.168.100.30 IP-címről engedélyezzük a hozzáférést:

  1. Hozza létre a zónát:

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

    Adja hozzá a szabályokat a zónához:

    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

    Töltse fel újra a tűzfal démont a változások aktiválásához:

    sudo firewall-cmd --reload

Tűzfal szolgáltatások

A tűzfallal engedélyezheti a forgalmat bizonyos portok és / vagy források számára, előre meghatározott szolgáltatásoknak nevezett szabályok alapján.

Az összes elérhető alapértelmezett szolgáltatás típusának felsorolása:

sudo firewall-cmd --get-services

Az egyes szolgáltatásokkal kapcsolatban további információkat találhat a kapcsolódó.xml fájl megnyitásával a /usr/lib/firewalld/services könyvtárban. Például a HTTP-szolgáltatás így van meghatározva:

/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.

A bejövő HTTP forgalom (80-as port) engedélyezése a nyilvános zónában lévő interfészek számára, csak az aktuális munkamenethez (futásidejű konfiguráció):

sudo firewall-cmd --zone=public --add-service=http Ha módosítja az alapértelmezett zónát, akkor hagyhatja ki a --zone opciót.

A szolgáltatás - sikeres hozzáadása - ellenőrzéséhez használja a --list-services opciót:

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

ssh dhcpv6-client

Ha a 80-as portot újraindítás után nyitva tartja, futtassa ugyanazt a parancsot a --permanent opcióval, vagy hajtsa végre:

sudo firewall-cmd --runtime-to-permanent

Használja a --list-services és a --permanent opciót a változások ellenőrzéséhez:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

A szolgáltatás eltávolításának szintaxisa megegyezik a hozzáadásával. Csak használja a --remove-service a --add-service jelző helyett:

sudo firewall-cmd --zone=public --remove-service=http --permanent

A fenti parancs eltávolítja a http szolgáltatást a nyilvános zóna állandó konfigurációjából.

Új FirewallD szolgáltatás létrehozása

Mint már említettük, az alapértelmezett szolgáltatások a /usr/lib/firewalld/services könyvtárban vannak tárolva. Új szolgáltatás létrehozásának legegyszerűbb módja egy meglévő szolgáltatásfájl másolása az /etc/firewalld/services könyvtárba, amely a felhasználó által létrehozott szolgáltatások helye, és a fájlbeállítások módosítása.

Például egy szolgáltatásdefiníció létrehozásához a Plex Media Server számára az SSH szolgáltatásfájlt használhatja:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

Nyissa meg az újonnan létrehozott plexmediaserver.xml fájlt, és módosítsa a szolgáltatás rövid nevét és leírását a és címkéket. A legfontosabb megváltoztatni kívánt címke a portcímke, amely meghatározza a megnyitni kívánt portszámot és protokollt.

A következő példában megnyitjuk az 1900 UDP és a 32400 TCP portokat.

/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.

Mentse el a fájlt, és töltse be újból a FirewallD szolgáltatást:

sudo firewall-cmd --reload

Most már a plexmediaserver szolgáltatást is használhatja a zónáiban, mint bármely más szolgáltatás.

Portok és forrás IP-k megnyitása

A Firewalld lehetővé teszi a megbízható IP-címekből vagy egy adott portról származó összes forgalom gyors engedélyezését a szolgáltatásdefiníció létrehozása nélkül.

Forrás IP megnyitása

Egy adott IP-címen (vagy tartományban) az összes bejövő forgalom engedélyezéséhez adja meg a zónát a --zone opcióval, a forrás IP- --add-source pedig a --add-source opcióval.

Például az 192.168.1.10-től kezdődő összes bejövő forgalom engedélyezéséhez a public zónában futtassa:

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

Az új szabály tartósítása:

sudo firewall-cmd --runtime-to-permanent

Ellenőrizze a változásokat a következő paranccsal:

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

192.168.1.10

A forrás IP eltávolításának szintaxisa ugyanaz, mint az hozzáadásakor. Csak használja --remove-source helyett --add-source opciót:

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

Forrásport megnyitása

Az összes bejövő forgalom engedélyezéséhez egy adott porton adja meg a zónát a --zone opcióval, a portot és a protokollt az --add-port opcióval.

Például a 8080 -as port megnyitásához a nyilvános zónában az aktuálisan futtatott munkamenethez:

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

A protokoll lehet tcp , udp , sctp vagy dccp .

Ellenőrizze a változásokat:

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

8080

Ahhoz, hogy a port nyitva maradjon az újraindítás után, add hozzá a szabályt az állandó beállításokhoz, ugyanazzal a paranccsal --permanent a --permanent zászlót, vagy végrehajtva:

sudo firewall-cmd --runtime-to-permanent

A port eltávolításának szintaxisa ugyanaz, mint egy port hozzáadásakor. Csak használja a --add-port parancsot a --add-port opció helyett.

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

Kikötők továbbítása

A forgalom továbbítására egyik portról a másikra a porton, először engedélyezze a kívánt zóna --add-masquerade a --add-masquerade opcióval. Például a external zóna maszkolásának engedélyezéséhez írja be:

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

Forgalom továbbítása az egyik portról a másikra az IP-címen

A következő példában ugyanazon a szerveren továbbítjuk a forgalmat a 80 portról a 8080 80 portra:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

Forgalom továbbítása egy másik IP-címre

A következő példában továbbítjuk a forgalmat a 80 portról a 80 80 portra egy IP 10.10.10.2 kiszolgálón:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

Forgalom továbbítása egy másik port másik szerverére

A következő példában továbbítjuk a forgalmat a 80 portról a 8080 80 portra egy IP 10.10.10.2 kiszolgálón:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

Ahhoz, hogy az előremenő szabály kitartó legyen, használja:

sudo firewall-cmd --runtime-to-permanent

Következtetés

Megtanulta, hogyan kell konfigurálni és kezelni a tűzfal szolgáltatást a CentOS 8 rendszeren.

Ügyeljen arra, hogy engedélyezzen minden bejövő kapcsolatot, amely a rendszer megfelelő működéséhez szükséges, miközben korlátozza az összes felesleges kapcsolatot.

tűzfal tűzfal centos biztonság