Konfigurálja a FirewallD-t egy kiszolgálón a CentOS 8 és 7 segítségével

A CentoOS 7-től kezdve egy új eszköz jelent meg a forgalom szűrési szabályainak konfigurálására. firewalld. Javasoljuk, hogy használja az iptable szabályok kezelésére. A CentOS 8-ban a szokásos iptable szűrőcsomag helyett az nftables-keretrendszert használják, és amikor a tűzfalszabályokat a tűzfal segítségével konfigurálja, akkor valójában az nftables-t konfigurálja. Ebben a cikkben megvizsgáljuk a tűzfalak telepítését, alapvető fogalmait és konfigurálását egy olyan kiszolgálóra, amelyen a CentOS 8 fut (a CentOS 7-ben minden ugyanaz).


Tartalom:

  • Tűzfal alapvető fogalmak, zónák és szabályok
  • Telepítse és engedélyezze a tűzfalat a CentOS-on
  • Munka a tűzfal szabályokkal
  • Tűzfal: IP blokkolás, kivétel
  • Port továbbítás a tűzfalban

FirewallD - tűzfalat, amely megvédi a szervert a nem kívánt forgalomtól, a dinamikus szabálykezelés támogatásával (újraindítás nélkül) és az állandó tűzfalszabályok végrehajtásával. Interfészként működik az iptable és az nftables számára. A FirewallD szinte minden Linux disztribúción használható.

Tűzfal alapvető fogalmak, zónák és szabályok

A telepítés és a konfigurálás megkezdése előtt firewalld, megismerjük a zónák fogalmát, amelyek segítségével meghatározzuk a különféle vegyületekbe vetett bizalom mértékét. Különböző zónákhoz firewalld alkalmazhat különféle szűrési szabályokat, megadhatja az aktív tűzfalak beállításait előre definiált szolgáltatások, protokollok és portok, port-továbbítás és gazdag szabályok formájában.

Firewalld a bejövő forgalmat zónák szerint szűri, a zónára alkalmazott szabályoktól függően. ha IP-a kérés feladó címe megfelel minden zóna szabályainak, a csomagot ezen a zónán keresztül kell elküldeni. Ha a cím nem egyezik a szerveren konfigurált zónák egyikével, akkor a csomagot az alapértelmezett zóna dolgozza fel. Telepítéskor firewalld az alapértelmezett zónát hívják nyilvános.

A tűzfalakban vannak olyan zónák, ahol a különböző szolgáltatások engedélyei már előre vannak konfigurálva. Használhatja ezeket a beállításokat, vagy létrehozhat saját zónákat. A tűzfalak telepítésekor létrehozott alapértelmezett zónák listája (az / usr / lib / tűzfal / zónák / könyvtárban tárolva):

cseppa bizalom minimális szintje. Minden bejövő kapcsolat blokkolódik válasz nélkül, csak kimenő kapcsolatok engedélyezettek;
tömba zóna hasonló az előzőhöz, de amikor a bejövő kéréseket elutasítják, akkor az Impv4 számára egy icmp-host által tiltott üzenet vagy az Ipv6-hoz icmp6-adm-tiltott üzenet kerül elküldésre;
nyilvánosA nem megbízható nyilvános hálózatokat képviseli. Külön-külön engedélyezheti a kiválasztott bejövő kapcsolatokat;
külsőkülső hálózatok, ha tűzfalat használ átjáróként. Úgy van beállítva, hogy elrejtse a NAT-ot, tehát a belső hálózat magán, de hozzáférhető marad;
belsőa külső zóna antonimája. A házigazda megfelelő szintű bizalommal rendelkezik, számos kiegészítő szolgáltatás áll rendelkezésre;
demilitarizált övezeta DMZ-ben található számítógépekhez használják (izolált számítógépek, a hálózat többi részéhez való hozzáférés nélkül). Csak bizonyos bejövő kapcsolatok megengedettek;
munkazóna a munkagépek számára (a hálózaton lévő legtöbb számítógép megbízható);
otthonotthoni hálózati zóna. A legtöbb számítógépben megbízhat, de csak bizonyos bejövő kapcsolatok támogatottak;
megbízhatóBízzon a hálózat összes gépén. Az összes rendelkezésre álló lehetőség közül a legnyitottabb, tudatos felhasználást igényel.

az firewalld két szabálykészletet használnak - állandó és ideiglenes. Az ideiglenes szabályok addig működnek, amíg a szerver nem indul újra. Alapértelmezés szerint, amikor szabályokat ad hozzá firewalld, a szabályokat ideiglenesnek tekintik (futásidejű). Szabály folyamatos hozzáadásához használja a zászlót - állandó. Ezek a szabályok a kiszolgáló újraindítása után kerülnek alkalmazásra..

Telepítse és engedélyezze a tűzfalat a CentOS-on

A CentOS 7/8 rendszeren a tűzfal alapértelmezés szerint telepítve van az operációs rendszer telepítésekor. Ha törölte, és telepíteni kívánja a tűzfalat, használhatja a szokásos yum / dnf kezelőt:

# yum install firewalld -y - a Centos 7-hez
# dnf tűzfal telepítése -y - a Centos 8 számára

Démonhoz firewalld automatikusan elindult a szerver indulásával, hozzá kell adnia az indításhoz:

# systemctl engedélyezze a tűzfalat

És fuss:

# systemctl indítsa el a tűzfalat

Ellenőrizze a szolgáltatás állapotát:

# systemctl status tűzfal

● firewalld.service - firewalld - dinamikus tűzfal démon Betöltve: betöltve (/usr/lib/systemd/system/firewalld.service; engedélyezve; eladó preset: engedélyezve) Aktív: aktív (fut) 2019-10-14 14:54 között : 40 +06; 22 évvel ezelőtt Dokumentumok: ember: firewalld (1) Fő PID: 13646 (tűzfal) CGroup: /system.slice/firewalld.service └─13646 / usr / bin / python2 -Es / usr / sbin / firewalld --nofork --nopid Okt. 14 14:54:40 server.vpn.ru systemd [1]: Tűzfal indítása - dinamikus tűzfal démon ... Okt. 14 14:54:40 server.vpn.ru systemd [1]: Indított tűzfal - dinamikus tűzfal démon.

Vagy a parancs segítségével:

# tűzfal-cmd - state

A tűzfal-cmd parancs az nftables / iptables tűzfal előlapja.

# tűzfal-cmd - state

futás

Munka a tűzfal szabályokkal

Alapértelmezett szabályok:

A tűzfalszabályok konfigurálása előtt ellenőriznie kell, hogy melyik zónát használja alapértelmezés szerint:

# tűzfal-cmd --get-default-zone

Mivel éppen telepítettük és nem konfiguráltuk a tűzfalat, alapértelmezett zónánk van nyilvános.

Ellenőrizze a magot. Ő is egy - nyilvános:

# tűzfal-cmd - cél-aktív-zónák

nyilvános interfészek: eth0

Mint láthatja, az eth0 hálózati interfészt a zóna vezérli. nyilvános.

Megjeleníthető a CentOS hálózati interfészek listája:

# ip link show
vagy
# nmcli eszköz állapota

Az alapszabályok megtekintéséhez írja be:

# tűzfal-cmd - minden

nyilvános (aktív) cél: alapértelmezett icmp-block-inverzió: nincs interfész: eth0 források: szolgáltatások: dhcpv6-client ssh portok: protokollok: masquerade: nincs előre-portok: forrás-portok: icmp-blokkok: gazdag szabályok:

Amint az a listából látható, a DHCP klienssel és az ssh-vel kapcsolatos szokásos műveletek hozzáadódtak ebbe a zónába..

Elérhető zónák

Az összes zóna listájának megtekintéséhez a következő parancsot kell futtatnia:

# tűzfal-cmd - célzónák

Megkaptam a következő listát:

blokk dmz drop külső otthoni belső nyilvános megbízható munka

Egy adott zóna szabályainak ellenőrzéséhez adja hozzá a - zóna zászlót.

# tűzfal-cmd --zone = home - minden

otthoni cél: alapértelmezett icmp-block-inverzió: nincs interfész: források: szolgáltatások: dhcpv6-kliens mdns samba-kliens ssh portok: protokollok: álarcos: nincs előre-port: forrás-portok: icmp-blokkok: gazdag szabályok:

Az összes zóna szabályai a következő paranccsal tekinthetők meg:

# tűzfal-cmd - összes zóna

A lista meglehetősen nagy lesz, mivel sok zóna lehet.

Az alapértelmezett zóna módosítása.

Alapértelmezés szerint az összes hálózati interfész a zónában található nyilvános, de átvihetők bármelyik zónába a következő paranccsal:

# tűzfal-cmd --zone = home -change-interface = eth0

A paraméter után -zóna = adja meg a kívánt zónát.

Az alapértelmezett zóna megváltoztatásához használja a következő parancsot:

# tűzfal-cmd --set-default-zone = home

Szabályok hozzáadása az alkalmazásokhoz

Egy alkalmazás portjának megnyitásához hozzáadhat egy szolgáltatást a kivételekhez. Az elérhető szolgáltatások listájának megjelenítése:

# tűzfal-cmd - célszolgáltatások

A kimenet számos szolgáltatást tartalmaz. A szolgáltatás részleteit a xml fájlt. Ezek a fájlok a könyvtárban találhatók / usr / lib / tűzfal / szolgáltatások.

Például:

# cd / usr / lib / tűzfal / szolgáltatások

# macska smtp.xml

  Mail (SMTP) Ez a beállítás engedélyezi a bejövő SMTP levelek kézbesítését. Ha engedélyeznie kell a távoli állomásoknak, hogy közvetlenül kapcsolódjanak a számítógépéhez a levelek kézbesítéséhez, engedélyezze ezt a lehetőséget. Ezt nem kell engedélyeznie, ha a leveleket az internetszolgáltató kiszolgálójáról POP3 vagy IMAP segítségével gyűjti, vagy ha olyan eszközt használ, mint a fetchmail. Vegye figyelembe, hogy a nem megfelelően konfigurált SMTP-kiszolgáló lehetővé teszi a távoli gépek számára, hogy a kiszolgálót spam küldésére használják.  

Az XML fájl egy szolgáltatásleírást, protokollt és portszámot tartalmaz, amelyeket a tűzfalakban nyitnak meg.

Szabályok hozzáadásakor használhatja a paramétert -add-szolgáltatás, Egy adott szolgáltatás elérésének megnyitása:

# tűzfal-cmd --zone = public --add-service = http

siker

# tűzfal-cmd --zone = public --add-service = https

siker

A szabályok hozzáadása után ellenőrizheti, hogy hozzáadtak-e szolgáltatásokat a megadott zónához:

# tűzfal-cmd --zone = nyilvános - list-szolgáltatások

dhcpv6-client http https ssh

Ha ezeket a szabályokat állandóvá kívánja tenni, akkor hozzá kell adnia egy paramétert -állandó.

Szolgáltatás eltávolítása egy zónából:

# tűzfal-cmd - tartósan --zone = public --remove-service = http

# tűzfal-cmd --zone = nyilvános - tartós - list-szolgáltatások

dhcpv6-client https ssh teszt

Ha hozzá szeretné adni szolgáltatását a kivételekhez, akkor létrehozhat egy fájlt xml magad, és töltsd ki. Bármely szolgáltatás adatait másolhatja, megváltoztathatja a nevét, leírását és portszámát.

Másolja a fájlt smtp.xml a felhasználói szolgáltatásokkal foglalkozó könyvtárba:

# cp /usr/lib/firewalld/services/smtp.xml / etc / tűzfal / szolgáltatások

Módosítsa a szolgáltatás leírását a fájlban.

Magát az xml fájlt is át kell nevezni a szolgáltatás nevével. Ezután újra kell indítania a tűzfalat, és ellenőriznie kell, hogy a szolgáltatásunk szerepel-e a listában:

# tűzfal-cmd - célszolgáltatások

Felhívtam a szolgálatot teszt és a listában megjelent:

syslog-tls telnet teszt tftp

Most hozzáadhatja a létrehozott szolgáltatást bármely zónához:

# tűzfal-cmd --zone = public --add-service = test --permanent

siker

# tűzfal-cmd --zone = nyilvános - tartós - list-szolgáltatások

dhcpv6-client http https ssh teszt

Ha nem találta meg a szükséges szolgáltatást a listában, akkor a tűzfalon a kívánt portot megnyithatja a következő paranccsal:

# tűzfal-cmd --zone = public -add-port = 77 / tcp - nyitott 77-es port tcp
# tűzfal-cmd --zone = public -add-port = 77 / udp - nyitott 77-es port udp
# tűzfal-cmd --zone = public -add-port = 77-88 / udp - nyitott port tartomány: 77-88 udp
# tűzfal-cmd --zone = public-list-ports - ellenőrizze az engedélyezett portok listáját

Az ICMP válaszok blokkolása / engedélyezése:

# tűzfal-cmd --zone = public --add-icmp-block = visszhang-válasz
# tűzfal-cmd --zone = nyilvános --remove-icmp-block = visszhang-válasz

A hozzáadott port törlése:

# tűzfal-cmd --zone = public -remove-port = 77 / udp - törölje az ideiglenes 77. szabályt udp

# tűzfal-cmd - tartós - zóna = public -remove-port = 77 / udp - távolítsa el az állandó szabályt

Egyéni zónák hozzáadása

Készíthet saját zónát (nevezném mi):

# tűzfal-cmd - tartós - új zóna = mi

Új zóna létrehozása, valamint a szolgáltatás létrehozása után újra kell indítania firewalld:

# tűzfal-cmd - újratöltés

siker

# tűzfal-cmd - célzónák

blokkolja a dmz drop külső otthoni belső megbízható munkánkat

övezet mi áll rendelkezésre. Felvehet szolgáltatásokat ehhez vagy megnyithat bizonyos portokat.

Tűzfal: IP blokkolás, kivétel

Hozzáadhat megbízható IP-címeket a tűzfal kivételeihez, vagy blokkolhatja a nem kívánt címeket.

Adott IP-cím (például 8.8.8.8) hozzáadása a kiszolgálón kivételekkel firewalld, használja a parancsot:

# tűzfal-cmd --zone = public --add-rich-rule = 'szabálycsalád = "ipv4" forráscím = "8.8.8.8" elfogadás'

Ellenőrizze a területet, és ellenőrizze IP kiegészítve a gazdag szabályok alóli kivételekkel:

# tűzfal-cmd --zone = nyilvános - minden

nyilvános (aktív) cél: alapértelmezett icmp-block-inverzió: nincs interfész: eth0 források: szolgáltatások: dhcpv6-kliens http https ssh tesztportok: protokollok: álarcos: nincs előre-portok: forrás-portok: icmp-blokkok: gazdag szabályok: szabálycsalád = "ipv4" forráscím = "8.8.8.8" elfogadás

Blokkolni IP, ki kell cserélni elfogad tovább elutasít:

# tűzfal-cmd --zone = public --add-rich-rule = 'szabálycsalád = "ipv4" forráscím = "8.8.4.4" elutasítás'

# tűzfal-cmd --zone = nyilvános - minden

nyilvános (aktív) cél: alapértelmezett icmp-block-inverzió: nincs interfész: eth0 források: szolgáltatások: dhcpv6-kliens http https ssh tesztportok: protokollok: álarcos: nincs előre-portok: forrás-portok: icmp-blokkok: gazdag szabályok: szabály család = "ipv4" forrás címe = "8.8.8.8" elfogad a szabály család = "ipv4" forrás címe = "8.8.4.4" elutasítás

Csak egy adott szolgáltatást engedélyezhet egy adott IP-címre vonatkozó kérésekhez:

# tűzfal-cmd - tartós - add-rich-rule 'szabálycsalád = "ipv4" forráscím = "10.10.1.0/24" service name = "https" elfogadás'

Ha sürgősen le kell tiltania az összes kérést a kiszolgálóra, használja a pánik parancsot:

# tűzfal-cmd - spanyol

A pánik módot a következő paranccsal is letilthatja:

# tűzfal-cmd --panic-off

Vagy indítsa újra a szervert.

Letilthatja a tűzfalak konfigurációját úgy, hogy a root szolgáltatásokkal rendelkező helyi szolgáltatások ne változtassák meg a létrehozott tűzfalszabályokat:

# tűzfal-cmd - lekapcsolás

Lezárási mód letiltása:

# tűzfal-cmd - lekapcsolás

Port továbbítás a tűzfalban

Hozhat létre port-továbbítási szabályt a tűzfalakban. A 443-as és 9090-es port továbbítása:

# tűzfal-cmd --zone = public --add-forward-port = port = 443: proto = tcp: toport = 9090 - állandó

Windows rendszeren konfigurálhatja a port továbbítást a netsh segítségével.

Port továbbítási szabály eltávolítása:

# tűzfal-cmd - zóna = nyilvános - eltávolítás-előre-port = port = 443: proto = tcp: toport = 9090