Bevezetés
Firewalld egy tűzfal-kezelő megoldás, amely számos Linux disztribúcióhoz elérhető. Interfészként szolgál a Linux kernel által biztosított iptables csomagszűrő rendszerhez. Ebben az útmutatóban megtudhatja, hogyan konfigurálhat tűzfalat a szerveréhez. Bemutatjuk a tűzfal kezelésének alapjait is a firewall-cmd adminisztrációs eszközzel.
A Firewalld alapjai
A FirewallD a zónák és szolgáltatások fogalmát használja az iptables láncai és szabályai helyett. A konfigurált zónáktól és szolgáltatásoktól függően szabályozhatja, hogy milyen forgalom engedélyezett vagy nem engedélyezett a rendszerbe és onnan ki. A FirewallD a firewall-cmd parancssori segédprogrammal konfigurálható és kezelhető.
A tűzfal telepítése és engedélyezése a rendszerindításkor történő induláshoz
A legtöbb Linux disztribúción a firewallD már telepítve van. Ha azonban saját magának kell telepítenie, írja be az alábbi szintaxist:
|
1 |
sudo yum install firewalld |
A firewalld telepítése után engedélyezheti a szolgáltatást, és újraindíthatja a szervert:
|
1 2 |
sudo systemctl enable firewalld sudo reboot |
Ezután indítsa újra a szervert. A tűzfal engedélyezve lesz, miután sikeresen újraindította a szervert. Ezt követően az alábbi paranccsal ellenőrizheti, hogy a szolgáltatás aktiválva lett-e:
|
1 |
sudo firewall-cmd --state |

A kimenet azt mutatja, hogy az alapértelmezett tűzfalbeállítás működik.
Az alapértelmezések ellenőrzése
A szerver által kiválasztott zónát a következő paranccsal ellenőrizheti:
|
1 |
firewall-cmd --get-default-zone |

Ellenőrizze az aktív zónát a következő beírásával:
|
1 |
firewall-cmd --get-active-zones |

Nyomtassa ki az alapértelmezett zóna konfigurációját, hogy megismerje a nyilvános területhez csatolt szabályokat az alábbi szintaxis használatával:
|
1 |
sudo firewall-cmd --list-all |

A kimenet azt jelzi, hogy ez a zóna az alapértelmezett és az aktív zóna is. Azt is mutatja, hogy az eth0 és eth1 interfészek ehhez a zónához vannak hozzárendelve.
Alternatív zónák ellenőrzése
Az alapértelmezett és aktív zónákon kívül más zónákat is felfedezhet. Írja be ezt a parancsot az összes elérhető zóna megtekintéséhez:
|
1 |
firewall-cmd --get-zones |

Ellenőrizze az adott zónához rendelt konfigurációt a –zone= paraméter hozzáadásával a –list-all parancsban:
|
1 |
sudo firewall-cmd --zone=home --list-all |

Az interfész zónájának megváltoztatása
Könnyen megváltoztathatja az interfész zónáját a –change-interface opció és a –change-interface opció kombinálásával. A következő parancs hozzárendeli az eth1 interfészt a workspace-hez:
|
1 |
sudo firewall-cmd --zone=work --change-interface=eth1 |
A változtatásokat a következő beírásával ellenőrizheti:
|
1 |
sudo firewall-cmd --get-active-zones |
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, amelyet a beállítani kívánt zóna neve követ. Például az alapértelmezett zóna módosításához a kezdéshez futtassa a következő parancsot:
|
1 |
sudo firewall-cmd --set-default-zone=home |
Ezután ellenőrizheti a változtatásokat a következővel:
|
1 |
sudo firewall-cmd --get-default-zone |
Szabályok beállítása az alkalmazásokhoz
Nézzük át a szolgáltatásokra vonatkozó tűzfalkivételek meghatározásához szükséges alapokat:
Szolgáltatás hozzáadása a zónákhoz
A legegyszerűbb módszer a szükséges portok vagy szolgáltatások hozzáadása a használt zónákhoz. Hasonlóképpen, a –get-services opcióval megtekintheti az összes elérhető szolgáltatást:
|
1 |
firewall-cmd --get-services |

A szolgáltatást egy zónához a –add-service = paraméterrel aktiválhatja. A művelet az alapértelmezett zónát vagy a –zone = paraméterrel meghatározott bármely zónát célozza meg. Alapértelmezés szerint csak az aktuális tűzfal-munkamenet van konfigurálva. Állandó tűzfal-konfigurációt a –permanent jelző aktiválásával állíthat be. Ha például olyan webszervert futtat, amely normál HTTP-forgalmat biztosít, akkor ezt a forgalmat a következő beírásával engedélyezheti a “public” zónánkban lévő interfészek számára erre a munkamenetre:
|
1 |
sudo firewall-cmd --zone=public --add-service=http |
Kihagyhatja a –zone = paramétert, ha az alapértelmezett zónát szeretné módosítani. A művelet sikerességét a –list-all vagy a –list-services műveletekkel ellenőrizheti:
|
1 |
sudo firewall-cmd --zone=public --list-services |

Miután ellenőrizte, hogy minden a várt módon működik, valószínűleg módosítani szeretné az állandó tűzfalszabályokat, hogy a szolgáltatás újraindítás után is elérhető maradjon. A “public” zónánkat véglegesen módosíthatjuk a következő szintaxis beírásával:
|
1 2 3 4 |
sudo firewall-cmd --zone=public --permanent --add-service=http kimenet: success |
Ellenőrizheti, hogy ez sikeres volt-e, ha hozzáadja a –permanent jelzőt a –list-services művelethez. A sudo használata kötelező minden állandó művelethez:
|
1 2 3 4 |
sudo firewall-cmd --zone=public --permanent --list-services kimenet: dhcpv6-client http ssh |
A “public” zóna mostantól engedélyezi a HTTP-forgalmat a 80-as porton. Ezt hozzáadhatja az aktuális munkamenethez és a tartós szabálykészlethez az alábbi paranccsal:
|
1 2 3 |
sudo firewall-cmd --zone=public --add-service=https sudo firewall-cmd --zone=public --permanent --add-service=https |
Ha nincsenek az igényeinek megfelelő szolgáltatások, két kiváló lehetőség áll rendelkezésére a helyzet kezelésére:
- Port megnyitása a zónák számára
A legegyszerűbb módja annak, hogy támogatást adjon az adott alkalmazáshoz, ha megnyitja az egyes zónákban használt portokat. Ez olyan egyszerű, mint egy port vagy porttartomány és a megfelelő protokoll kijelölése a megnyitni kívánt portokhoz. Ha például az alkalmazás az 5000-es porton fut és TCP-t használ, akkor a –add-port = paraméterrel hozzáadhatja a “public” zónához ehhez a munkamenethez. A protokollok TCP vagy UDP lehetnek:
|
1 2 3 4 |
sudo firewall-cmd --zone=public --add-port=5000/tcp kimenet: success |
A művelet sikerességének ellenőrzéséhez használja a –list-ports műveletet:
|
1 2 3 4 |
sudo firewall-cmd --zone=public --list-ports Kimenet: 5000/tcp |
Egy tartományt is megadhat a soros interfészhez úgy, hogy a tartomány kezdő és végpontját kötőjellel választja el. Ha például az alkalmazás a 4990–4999-es UDP-portokat használja, akkor a “public” zónában a következő beírásával nyithatja meg azokat:
|
1 |
sudo firewall-cmd --zone=public --add-port=4990-4999/udp |
A tesztelés után valószínűleg hozzá szeretné adni őket az állandó tűzfalhoz. Ezt a következők beírásával teheti meg:
|
1 2 3 |
sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp sudo firewall-cmd --zone=public --permanent --list-ports |

- Szolgáltatás meghatározása
A szolgáltatás portok gyűjteménye egy hozzárendelt névvel és leírással. A szolgáltatásokat könnyebb kezelni, mint a portokat, de ez igényel némi kezdeti munkát. A legegyszerűbb módja a kezdésnek egy meglévő szkript másolása (a / usr / lib / firewalld / services könyvtárból) a /etc/firewalld/services könyvtárba. Például átmásolhatja az SSH szolgáltatás definícióját a “example” szolgáltatásdefinícióban való használatra az alábbiak szerint. Az XML kiterjesztés nélküli fájlnév határozza meg a szolgáltatás nevét a tűzfalszolgáltatások listájában:
|
1 |
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/example.xml |
Ezen a ponton módosíthatja a definíciót a másolt fájlban:
|
1 |
sudo vi /etc/firewalld/services/example.xml |
Először is, a fájl a másolt SSH definíciót tartalmazza:
|
1 2 3 4 5 6 |
<?xml version="1.0" encoding="utf-8"?> <service> <short>SSH</short> <description>Biztonságos Shell (SSH) egy egy protokoll számára bejelentkezéshez való és végrehajtásához parancsok gépén távoli gépeken. Ez biztosít biztonságos titkosított kommunikációt. Ha ön tervezi hogy eléri a gépét távolról keresztül SSH felett egy tűzfallal védett interfészen, engedélyezze ezt az opciót. Önnek szüksége van a openssh-szerver csomagra telepítve számára ez opció hogy legyen hasznos.</description> <port protocol="tcp" port="22"/> </service> |
Ezen definíció nagy része metaadatokból áll. Meg kell változtatnia a szolgáltatás rövid nevét a <short> címkék között. Ez egy olvasható szolgáltatásnév. Képzelje el, hogy a “example” szolgáltatásunkhoz meg kell nyitnunk a 7777-es portot a TCP-hez és a 8888-ast az UDP-hez. A meglévő definíciót az i billentyű megnyomásával, INSERT módba lépve módosíthatja:
|
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="utf-8"?> <service> <short>Példa szolgáltatás</short> <description>Ez van csak egy példa szolgáltatás. Ez valószínűleg nem'kellene legyen használva egy egy valódi rendszeren.</description> <port protocol="tcp" port="7777"/> <port protocol="udp" port="8888"/> </service> |
Ezután nyomja meg az ESC billentyűt, és írja be a :x parancsot a fájl mentéséhez és bezárásához. Ezután írja be az alábbi parancsot a tűzfal újraindításához, hogy hozzáférjen az új szolgáltatáshoz;
|
1 |
sudo firewall-cmd --reload |
Ezt követően használja az alábbi parancsot az elérhető szolgáltatások listázásához:
|
1 |
firewall-cmd --get-services |

Ez a szolgáltatás mostantól elérhető a zónájában.
Saját zónák létrehozása
Bár az előre meghatározott zónák valószínűleg a legtöbb felhasználó számára elegendőek, hasznos lehet saját zónák meghatározása, amelyek pontosabban leírják a funkciójukat.
Zóna hozzáadásakor adja azt a végleges tűzfalbeállításokhoz. Ezután újraindíthatja a tűzfalat, hogy a beállítások érvénybe lépjenek a munkamenetben. Például a korábban említett két zónát a következő beírásával hozhatja létre:
|
1 2 |
sudo firewall-cmd --permanent --new-zone=publicweb sudo firewall-cmd --permanent --new-zone=privateDNS |
Az alábbi paranccsal ellenőrizheti, hogy jelen vannak-e a végleges konfigurációban:
|
1 |
sudo firewall-cmd --permanent --get-zones |

Töltse be újra a tűzfalat, hogy ezek az új zónák aktív konfigurációvá váljanak:
|
1 2 3 4 5 |
sudo firewall-cmd --reload firewall-cmd --get-zones kimenet: block dmz drop external home internal privateDNS public publicweb trusted work |
Most már hozzárendelheti a megfelelő szolgáltatásokat és portokat a zónáihoz. Például a “publicweb” zónához hozzáadhatja az SSH, HTTP és HTTPS szolgáltatásokat:
|
1 2 3 |
sudo firewall-cmd --zone=publicweb --add-service=ssh sudo firewall-cmd --zone=publicweb --add-service=http sudo firewall-cmd --zone=publicweb --add-service=https |

Ezenkívül a DNS szolgáltatást is hozzáadhatja a „privateDNS” zónához a következő paranccsal:
|
1 2 |
sudo firewall-cmd --zone=privateDNS --add-service=dns sudo firewall-cmd --zone=privateDNS --list-all |

Ezután módosíthatja az interfészeket ezekre az új zónákra a teszteléshez:
|
1 2 3 |
sudo firewall-cmd --zone=publicweb --change-interface=eth0 sudo firewall-cmd --zone=privateDNS --change-interface=eth1 |
Tesztelje a konfigurációt, hogy működik-e. Ha ezek az értékek működnek Önnek, akkor ugyanezeket a szabályokat hozzá kell adnia az állandó konfigurációhoz is. Ezt a szabályok újbóli alkalmazásával teheti meg a —permanent jelzővel:
|
1 2 3 4 5 6 7 |
sudo firewall-cmd --zone=publicweb --permanent --add-service=ssh sudo firewall-cmd --zone=publicweb --permanent --add-service=http sudo firewall-cmd --zone=publicweb --permanent --add-service=https sudo firewall-cmd --zone=privateDNS --permanent --add-service=dns |
Miután véglegesen alkalmazta ezeket a szabályokat, újraindíthatja a hálózatot és újratöltheti a tűzfal szolgáltatást:
|
1 2 3 |
sudo systemctl restart network sudo systemctl reload firewalld |
Ellenőrizze, hogy a zónák megfelelően lettek-e hozzárendelve:
|
1 |
firewall-cmd --get-active-zones |

Továbbá győződjön meg arról, hogy mindkét zóna a megfelelő szolgáltatással rendelkezik:
|
1 2 3 4 |
sudo firewall-cmd --zone=publicweb --list-services kimenet: http https ssh |
|
1 2 3 4 5 |
sudo firewall-cmd --zone=privateDNS --list-services kimenet: dns |
Ha az egyik zónát szeretné alapértelmezettként beállítani a többi interfészhez, akkor ezt a viselkedést a –set-default-zone= paraméterrel kell konfigurálnia a következő paranccsal:
|
1 |
sudo firewall-cmd --set-default-zone=publicweb |
Összegzés
Ezen a ponton sikeresen létrehozta a saját zónáit. Most már rendelkeznie kell a firewalld szolgáltatás CentOS rendszeren történő mindennapi kezelésének alapvető ismereteivel. A firewalld szolgáltatás alapos ismerete lehetővé teszi, hogy teljes mértékben kihasználja annak erejét és rugalmasságát.
Kellemes számítógép-használatot!


Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.