Weboldal keresés

RHCSA sorozat: A tűzfal alapjai és a hálózati forgalom szabályozása FirewallD és Iptables használatával – 11. rész


Egyszerűen fogalmazva, a tűzfal egy olyan biztonsági rendszer, amely előre meghatározott szabályok (például a csomagok célállomása/forrása vagy a forgalom típusa) alapján szabályozza a bejövő és kimenő forgalmat a hálózaton. .

Ebben a cikkben áttekintjük a tűzfal alapjait, a Red Hat Enterprise Linux 7 alapértelmezett dinamikus tűzfaldémonját, valamint az örökölt iptables szolgáltatást. tűzfalszolgáltatás Linuxhoz, amelyet a legtöbb rendszer- és hálózati rendszergazda jól ismer, és amely az RHEL 7ben is elérhető.

A FirewallD és az Iptables összehasonlítása

A motorháztető alatt mind a firewall, mind az iptables szolgáltatás ugyanazon a felületen keresztül kommunikál a kernel netfilter keretrendszerével, nem meglepő módon az iptables parancs . Az iptables szolgáltatással ellentétben azonban a tűzfal a rendszer normál működése során módosíthatja a beállításokat anélkül, hogy a meglévő kapcsolatok megszakadnának.

A Tűzfalat alapértelmezés szerint telepíteni kell az RHEL rendszerben, bár előfordulhat, hogy nem fut. A következő parancsokkal ellenőrizheti (a firewall-config a felhasználói felület konfigurációs eszköze):


yum info firewalld firewall-config

és,


systemctl status -l firewalld.service

Másrészt az iptables szolgáltatás alapértelmezés szerint nem szerepel benne, de ezen keresztül telepíthető.


yum update && yum install iptables-services

Mindkét démon elindítható és engedélyezhető a rendszerindításkor a szokásos systemd parancsokkal:


systemctl start firewalld.service | iptables-service.service
systemctl enable firewalld.service | iptables-service.service

Olvassa el még: Hasznos parancsok a rendszerszolgáltatások kezeléséhez

Ami a konfigurációs fájlokat illeti, az iptables szolgáltatás a /etc/sysconfig/iptables fájlt használja (ami nem fog létezni, ha a csomag nincs telepítve a rendszerére). A fürtcsomópontként használt RHEL 7 dobozon ez a fájl a következőképpen néz ki:

Míg a tűzfal két könyvtárban tárolja konfigurációját: /usr/lib/firewall és /etc/firewall:


ls /usr/lib/firewalld /etc/firewalld

Ezeket a konfigurációs fájlokat a cikk későbbi részében tovább vizsgáljuk, miután itt-ott hozzáadunk néhány szabályt. Mostanra elegendő emlékeztetni arra, hogy mindkét eszközről mindig találhat további információkat.


man firewalld.conf
man firewall-cmd
man iptables

Ezen kívül ne felejtsen el egy pillantást vetni az Alapvető parancsok és rendszerdokumentáció áttekintésére – a jelenlegi sorozat 1. részére, ahol több forrást is leírtam, ahol információkat kaphat az RHEL 7 rendszerére telepített csomagokról. .

Iptables használata a hálózati forgalom szabályozására

Érdemes lehet olvasni az Iptables Firewall konfigurálása – a Linux Foundation Certified Engineer (LFCE) sorozat 8. részét, hogy felfrissítse az emlékezetet az iptables belső elemeiről. mielőtt továbblép. Így rögtön beleugorhatunk a példákba.

1. példa: Bejövő és kimenő webforgalom engedélyezése

A 80 és a 443 TCP-portok az Apache webszerver által használt alapértelmezett portok a normál (HTTP) és a biztonságos (HTTPS<) kezelésére.) webforgalom. Az alábbiak szerint engedélyezheti a bejövő és kimenő webes forgalmat az enp0s3 felület mindkét portján:


iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
2. példa: Blokkolja az összes (vagy néhány) bejövő kapcsolatot egy adott hálózatról

Előfordulhat, hogy blokkolnia kell egy adott hálózatról származó összes (vagy bizonyos) típusú forgalmat, például 192.168.1.0/24:


iptables -I INPUT -s 192.168.1.0/24 -j DROP

eldobja az összes 192.168.1.0/24 hálózatról érkező csomagot, míg


iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT

csak a 22-es porton keresztül engedélyezi a bejövő forgalmat.

3. példa: A bejövő forgalmat egy másik célállomásra irányítsa át

Ha az RHEL 7 boxot nem csak szoftveres tűzfalként, hanem tényleges hardver alapúként is használja, így két különböző hálózat között helyezkedik el, akkor az IP-továbbításnak már engedélyezve kell lennie a rendszerben. . Ha nem, módosítsa az /etc/sysctl.conf fájlt, és állítsa be a net.ipv4.ip_forward értékét 1-re, az alábbiak szerint:


net.ipv4.ip_forward = 1

majd mentse a módosítást, zárja be a szövegszerkesztőt, és végül futtassa a következő parancsot a módosítás alkalmazásához:


sysctl -p /etc/sysctl.conf

Például előfordulhat, hogy egy IP 192.168.0.10-es belső dobozba nyomtató van telepítve, és a CUPS szolgáltatás a 631-es porton figyel (mindkettő a nyomtatószerveren és a tűzfalon). A tűzfal másik oldalán lévő ügyfelektől érkező nyomtatási kérelmek továbbításához hozzá kell adnia a következő iptables szabályt:


iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631

Ne feledje, hogy az iptables sorban olvassa be a szabályait, ezért győződjön meg arról, hogy az alapértelmezett házirendek vagy a későbbi szabályok nem írják felül a fenti példákban leírtakat.

A FirewallD használatának első lépései

A tűzfallal bevezetett egyik változás a zónák. Ez a koncepció lehetővé teszi a hálózatok különböző zónákra való szétválasztását a felhasználó által az eszközökkel és a hálózaton belüli forgalommal szembeni bizalom szintjén.

Az aktív zónák felsorolásához:


firewall-cmd --get-active-zones

Az alábbi példában a nyilvános zóna aktív, és az enp0s3 interfész automatikusan hozzá van rendelve. Egy adott zónára vonatkozó összes információ megtekintéséhez:


firewall-cmd --zone=public --list-all

Mivel a zónákról az RHEL 7 biztonsági útmutatójában olvashat bővebben, itt csak néhány konkrét példát sorolunk fel.

4. példa: Szolgáltatások engedélyezése a tűzfalon keresztül

A támogatott szolgáltatások listájának megtekintéséhez használja a.


firewall-cmd --get-services

A http és https internetes forgalom tűzfalon keresztüli engedélyezése azonnali és a következő rendszerindításkor:


firewall-cmd --zone=MyZone --add-service=http
firewall-cmd --zone=MyZone --permanent --add-service=http
firewall-cmd --zone=MyZone --add-service=https
firewall-cmd --zone=MyZone --permanent --add-service=https
firewall-cmd --reload

Ha a–zone kimarad, akkor az alapértelmezett zóna kerül felhasználásra (ellenőrizheti a firewall-cmd –get-default-zone segítségével).

A szabály eltávolításához cserélje ki az add szót eltávolításra a fenti parancsokban.

5. példa: IP/port továbbítás

Először is meg kell találnia, hogy a maszkolás engedélyezve van-e a kívánt zónában:


firewall-cmd --zone=MyZone --query-masquerade

Az alábbi képen láthatjuk, hogy az masquerading engedélyezve van a külső zónában, de nem a nyilvánosban:

A nyilvános maszkolást engedélyezheti:


firewall-cmd --zone=public --add-masquerade

vagy használjon maszkolást külsőben. A következőképpen replikáljuk a 3. példát a tűzfallal:


firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp:toport=631:toaddr=192.168.0.10

És ne felejtse el újratölteni a tűzfalat.

További példákat találhat az RHCSA sorozat 9. részében, ahol elmagyaráztuk, hogyan lehet engedélyezni vagy letiltani a webszerverek és az ftp-szerverek által általában használt portokat, és hogyan lehet megváltoztatni a megfelelő szabályt, ha az alapértelmezett port ezen szolgáltatásokhoz. megváltoznak. Ezenkívül érdemes a tűzfal wikiben további példákat találni.

Olvassa el még: Hasznos FirewallD-példák a tűzfal konfigurálásához az RHEL 7-ben

Következtetés

Ebben a cikkben elmagyaráztuk, mi az a tűzfal, milyen szolgáltatások érhetők el annak megvalósításához az RHEL 7-ben, és bemutattunk néhány példát, amelyek segíthetnek az első lépésekben. feladat. Ha bármilyen észrevétele, javaslata vagy kérdése van, nyugodtan tudassa velünk az alábbi űrlap segítségével. Előre is köszönöm!