Tudásbázis Egyszerű utasítások a Profitserver szolgáltatással való együttműködéshez
Tudásbázis Tűzfal konfigurálása Linuxon

Tűzfal konfigurálása Linuxon


A Linux tűzfala létfontosságú szerepet játszik a számítógépes rendszerek védelmében. Gátként működik, szabályozza és szűri a hálózati forgalmat, hogy megvédje a rendszert az illetéktelen hozzáféréstől, támadásoktól és egyéb fenyegetésektől. Megfelelően konfigurált tűzfal nélkül a kiszolgáló kiszolgáltatott lehet különféle típusú kibertámadásoknak, ami súlyos következményekkel járhat az adatbiztonság és a bizalmas kezelés szempontjából.

Ebben a cikkben a Linux tűzfal beállításának két fő eszközét tekintjük meg: a tűzfalat és az iptables-t. Összehasonlító elemzést végzünk jellemzőikről, funkcionalitásukról és előnyeiről. Ezenkívül részletes útmutatást adunk ezen eszközök mindegyikének beállításához és használatához, valamint megvitatjuk a rendszer tűzfallal történő biztosításának legjobb gyakorlatait Linux platformon. Minden művelet bemutatásra kerül a virtuális szerver root hozzáféréssel.

Tűzfal konfigurálása Linuxon

Tűzfal (Firewall Daemon) egy program a tűzfal kezelésére Linux operációs rendszerekben. Felhasználói felületet biztosít a tűzfalszabályok konfigurálásához, a hálózati alkalmazások kapcsolatainak engedélyezéséhez vagy blokkolásához. Alapértelmezés szerint a legtöbb kiszolgálódisztribúcióban előre telepítve van. Ha a Firewalld nincs előre telepítve, akkor a disztribúció hivatalos tárolóitól függetlenül telepíthető.

Red Hat rendszerek esetén (például RHEL, CentOS, Fedora) a telepítés a következő paranccsal történik:

yum install firewalld

Debian/Ubuntu esetén:

apt-get install firewalld

Telepítés után azonnal elindítható és aktiválható a következő paranccsal:

systemctl start firewalld

Ezután hozzá kell adnia a szolgáltatást az induláshoz:

systemctl enable firewalld
Tűzfal hozzáadása a Linux automatikus betöltéséhez

Ezen a ponton javasoljuk az ufw letiltását, mivel ennek az eszköznek a tűzfallal vagy iptables-szal történő egyidejű használata nem javasolt. Ellenőrizze az állapotot:

systemctl status ufw
Ufw linux ellenőrzése

A leállításhoz írja be a következő parancsot:

systemctl stop ufw

A teljes deaktiváláshoz:

ufw disable

Ezen műveletek után folytathatja a tűzfal beállítását.

Először is meg kell határozni a bizalmi zónákat. A Firewall a zónák fogalmát használja a hálózati interfészek megbízhatósági szintjének meghatározására. Minden interfészhez egy zóna van hozzárendelve, és a tűzfalszabályok a zónától függően kerülnek alkalmazásra. Az összes elérhető zóna listája a következő paranccsal nyílik meg:

firewall-cmd --get-zones

Általában 4 fő zónát használnak:

  1. nyilvános: Ez a zóna az Ön által nem biztonságosnak tartott hálózatokhoz való;
  2. Magán: Otthoni hálózatokra vagy más megbízható hálózati kapcsolatokra vonatkozik;
  3. belső: Belső hálózatokhoz használatos, például egy szervezeten vagy vállalati hálózaton belüli hálózatokhoz;
  4. Demilitarizált zóna: Ebben a zónában általában olyan szervereket helyeznek el, amelyeknek elérhetőnek kell lenniük az internetről.

Ez azonban csak egy példa. Saját zónát a következő paranccsal adhat hozzá:

firewall-cmd --permanent --new-zone=nameyourzone

Hozzáadás után újra kell tölteni:

firewall-cmd --reload

Egy zóna törléséhez hasonló módszert alkalmaznak

firewall-cmd --permanent --delete-zone=nameyourzone

A zónák meghatározása után engedélyezni kell a forgalmat a szükséges szolgáltatások és portok számára. Egy bizonyos szolgáltatás engedélyezéséhez használja a következő parancsot:

firewall-cmd --zone=public --add-service=name

Hol név a szolgáltatás neve. Például, hogy engedélyezze a forgalmat az Apache számára:

firewall-cmd --zone=public --add-service=http

A megengedett portok meghatározásához használja a következő parancsot:

firewall-cmd --zone=public --add-port=number/protocol

Például az SSH szabványos 22-es portja így néz ki:

firewall-cmd --zone=public --add-port=22/tcp

Ebben a szakaszban a fő szabályok már létrejöttek. Ezután határozza meg a forgalom feldolgozásának módját a forrástól, a célállomástól, a porttól és egyéb feltételektől függően. Szabály hozzáadásához (a nyilvános zóna példaként):

firewall-cmd --zone=public rule

Például a bejövő forgalom engedélyezéséhez bármely forrásból a 80-as portra (HTTP):

firewall-cmd --zone=public --add-port=80/tcp --permanent

Szabály eltávolítása:

firewall-cmd --permanent --remove-rule=rule_specification

Hol szabály a szabály típusa (pl. port, service, rich-rule stb.), és szabály_specifikáció maga a szabály specifikációja.

Miután módosította a tűzfal konfigurációját, el kell mentenie és alkalmaznia kell azokat. A módosítások mentéséhez használja a következő parancsot:

firewall-cmd --runtime-to-permanent

A módosítások alkalmazása:

firewall-cmd --reload

A beállítás befejezése után ellenőrizheti a kiválasztott paramétereket az összes szabály listájának megnyitásával:

firewall-cmd --list-all
tűzfal Linux szabályai

Ha bármilyen probléma adódik, ellenőrizze a Firewalld naplóit a következő paranccsal:

journalctl -u firewalld

Megjegyzés: Csak a kapcsolat beállításának általános algoritmusával foglalkoztunk. Az eszköz széles körű funkciókkal rendelkezik. Az összes elérhető opcióval kapcsolatos teljes körű információért használja a hivatalos dokumentumok vagy nyissa meg a súgót:

firewall-cmd --help

Az iptables beállítása Linuxon

A Firewallddal ellentétben az iptables egy régebbi, de még mindig széles körben használt eszköz a Linuxban a tűzfal kezelésére. Közvetlenebb és rugalmasabb megközelítést biztosít a csomagszűrési szabályokhoz a Linux kernel szintjén. Az iptables azonban fejlettebb tudást és tapasztalatot igényel, mint a Firewalld, így kevésbé hozzáférhető a kezdők számára. Ellenőrizze az eszköz előre telepített verzióját a következő paranccsal:

iptables -V

Ha az eszköz nincs telepítve, akkor telepíteni kell. Ubuntu, Debian telepítési parancs:

apt install iptables

Red Hat rendszerek esetén (pl. CentOS, Fedora):

yum install iptables

A telepítés utáni aktiválási parancs:

systemctl start iptables

Az indításhoz való hozzáadáshoz hajtsa végre:

systemctl enable iptables

Az iptables konfigurációjának elindítása előtt fontos megérteni, hogyan működik. Ebben segít a program szintaxisa. A következőképpen néz ki:

iptables -t table action chain additional_parameters

Nézzünk mélyebbre az egyes tételekbe.

Az Iptables négy fő táblával rendelkezik: filter, nat, mangle és raw. Mindegyiket bizonyos típusú csomagok feldolgozására tervezték, és megvannak a saját szabályláncai:

  1. szűrő: Ez a leggyakrabban használt tábla, amely csomagszűrési szabályokat tartalmaz. A csomagok engedélyezésével vagy elutasításával kapcsolatos döntések meghozatalára szolgál.
  2. nat: Ez a táblázat a csomagokban lévő hálózati címek és portok módosítására szolgál. Gyakran használják a maszkolás (NAT) beállítására.
  3. mángorló: Ebben a táblázatban módosíthatja a csomagfejléceket. Speciális csomagműveletekhez, például jelöléshez használják.
  4. nyers: Ez a táblázat a kapcsolatkövető rendszeren való áthaladás előtt érvényes szabályok konfigurálására szolgál. Általában olyan szabályok beállítására használják, amelyeket a nyomkövető rendszernek nem szabad módosítania, például csomagok eldobására bizonyos címekről.

Minden táblázat egy sor láncot tartalmaz. A láncok szabálysorozatok, amelyeket egymás után ellenőriznek. Három előre meghatározott lánc létezik:

  1. BEMENET (bejövő). A lánc szabályai határozzák meg, hogy mit kell tenni a bejövő csomagokkal.
  2. KIMENET (kimenő). Ez a lánc minden olyan csomagra vonatkozik, amelyet a számítógép a hálózat többi eszközére vagy számítógépére küld.
  3. ELŐRE (továbbítás). A lánc szabályai meghatározzák, hogy mit kell tenni a továbbított csomagokkal.

Végül minden láncnak van valamilyen akciója (célpontja). A gyakorlatban 5 fő műveletet alkalmaznak:

  1. ELFOGAD: Hagyja, hogy a csomag áthaladjon a tűzfalon.
  2. DROP: A csomag elutasítása és válasz nélkül dobja el.
  3. ELUTASÍT: A csomag elutasítása és ICMP hibaüzenet küldése a feladónak.
  4. BEJELENTKEZÉS: naplózza a csomagot a rendszernaplóba, és hajtson végre egy másik műveletet (pl. ELFOGADÁS vagy DROP).
  5. VISSZATÉRÉS: Hagyja abba a szabályok ellenőrzését az aktuális láncban, és térjen vissza a hívó lánchoz (ha van).

A telepítés elindításához nyissa meg a meglévő szabályok listáját a következő paranccsal:

iptables -L
Tűzfal konfigurálása Linuxon

Útmutatóként az Iptables konfigurálásához nézzünk gyakorlati példákat a leggyakrabban használt parancsokra. Az egyszerűség kedvéért a példákat 3 csoportra osztjuk, az adott lánctól függően.

Lánc INPUT:

  1. TCP protokollon keresztül bejövő forgalom engedélyezése a 80-as porton:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Engedélyezze a bejövő forgalmat UDP protokollon keresztül a 22-es porton:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Egy adott IP-címről érkező forgalom blokkolása:

iptables -A INPUT -s 192.168.1.100 -j DROP

Lánc KIMENET:

  1. Kimenő forgalom engedélyezése TCP protokollon keresztül a 443-as porton:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Engedélyezze a kimenő forgalmat UDP protokollon keresztül a 80-as porton:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Blokkolja a kimenő forgalmat egy adott portra (például 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

Lánc ELŐRE:

  1. Az IP-címek meghatározott tartományáról továbbított forgalom blokkolása:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Blokkolja a csomagok továbbítását egy adott hálózati interfészről:

iptables -A FORWARD -i eth1 -j DROP

3. Korlátozza az egyidejű kapcsolatok számát egy adott porton (ebben a példában 10 kapcsolat percenként a 80-as porton):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Mint látható, minden egyes esetben egy további argumentum (parancs) kerül felhasználásra. A lehetséges érvek teljes listájának megtekintéséhez és az eszköz funkcióinak általános támogatásához írja be:

iptables -h
iptables linux setup parancslistája

A beállítások helyességének ellenőrzéséhez írja be újra a parancsot a szabályok listájának megtekintéséhez:

iptables -L
Az iptables linux szabályainak ellenőrzése

Egy adott szabály törléséhez használja a következő parancsot:

iptables -D chain rule_number

Például, ha törölni szeretné az 1. számú szabályt az INPUT láncból, a parancs így fog kinézni:

iptables -D INPUT 1

Az összes szabály törlése egyetlen paranccsal:

iptables -F

Fontos megjegyzés: az iptables szabályok nem kerülnek automatikusan mentésre a rendszer vagy a szolgáltatás újraindítása után. A szabályok mentéséhez hozzá kell adni őket egy konfigurációs fájlhoz, és újraindítás után vissza kell állítani őket. A iptables-save és a iptables-restore segédprogramok segíthetnek ebben. A szabályok mentéséhez írja be a következő parancsot:

iptables-save > /etc/iptables/rules.v4

Ez elmenti az aktuális iptables-szabályokat a rules.v4 fájlba. Az újraindítás utáni visszaállításhoz írja be:

iptables-restore < /etc/iptables/rules.v4

Ez a parancs visszaállítja a szabályokat a rules.v4 fájlból.

Összegzés

A tűzfal konfigurálása Linux rendszeren tűzfal vagy iptables használatával fontos szempont a kiszolgáló biztonságának biztosításában. Mindkét eszköz megbízható eszközöket kínál a hálózati forgalom kezeléséhez, valamint a rendszer megóvásához az illetéktelen hozzáféréstől és a kibertámadásoktól. A tűzfal és az iptables közötti választás a felhasználó egyedi igényeitől és preferenciáitól függ, figyelembe véve a különböző funkciókat és erősségeiket.

❮ Előző cikk Linux-felhasználók: Kezelés és engedélyek
Következő cikk ❯ Szerverterhelési diagnosztika

Kérdezzen meg minket a VPS-ről

Mindig készséggel válaszolunk kérdéseire a nap és az éjszaka bármely szakában.