Ebben a cikkben bemutatjuk, hogyan kezelhetünk egy Linux tűzfalat a klasszikus használatával iptables a CentOS / RHEL 7 tűzfal helyett a bejövő és kimenő forgalom szűrésére. Ez a cikk leírja, hogyan konfigurálhatja az iptable programokat a CentOS 7 rendszeren a bejövő forgalom szűrésére, egy példa segítségével a nulláról telepített felhőalapú virtuális kiszolgálóra. myserver01, elérhető az internetről.
Tartalom:
- A tűzfalak letiltása a CentOS 7-ben
- Szintaxis és iptable szabályok a CentOS / Red Hat alkalmazásban
- Forgalomszűrési szabályok létrehozása az iptable-ban
- Az iptable naplók engedélyezése
- Az iptable szűrési szabályainak mentése és visszaállítása
A tűzfalak letiltása a CentOS 7-ben
A CentOS 7 alapértelmezés szerint a rendszerszolgáltatást használja a tűzfal vezérlésére firewalld. Biztosítja a saját felületét, de végül az iptables segédprogramon keresztül is működik. Ugyanakkor a tűzfalat akár a tűzfalakon keresztül, akár közvetlenül az iptable-kön keresztül kell irányítani.
A tűzfal nem helyettesíti, hanem egy csomagolóeszközt az iptable-ek körül, felhasználhatja belőle azt, amit jobban szeret, vagy adott körülmények között megfelelőbb. Az iptables univerzálisabb, alapvető eszköz, de egy kicsit nehezebb elsajátítani. A tűzfal egyszerűbb felületet biztosít, de például a CentOS 6 nem tudja használni, és más terjesztésekhez rendelkeznie kell a szükséges telepítőcsomagokkal. Ezen túlmenően, ha olyan alkalmazásokat használ, amelyek a tűzfalon állítják be a beállításokat, akkor kompatibilisnek kell lenniük a tűzfallal (ilyen alkalmazásokra példa a docker, fail2ban)..
Ellenőrizze a tűzfal állapotát és tiltsa le.
systemctl status firewalld
A parancs kimenetében egy piros területtel körözött terület a szóval engedélyezve, azt jelenti, hogy az indítás be van kapcsolva, és a terület sárga, a szóval körözve aktív, azt jelenti, hogy a szolgáltatás fut.
Leállítjuk a szolgáltatást, és kikapcsoljuk az automatikus betöltést:
a systemctl stop firewalld
a systemctl letiltja a tűzfalat
Az állapot újbóli ellenőrzése:
Most megjelenik a parancs kimenete mozgássérült automatikus töltéshez (ki), és tétlen azt jelenti, hogy a szolgáltatás ki van kapcsolva.
Szintaxis és iptable szabályok a CentOS / Red Hat alkalmazásban
iptables - Ez egy segédprogram, amely konfigurálja a tűzfalszabályokat a Linuxban.
Az Iptables a tűzfalszabályokat táblázatokba csoportosítja, a következők:
- táblázat szűrő - a forgalom szűrésére, azaz a kapcsolatok engedélyezésére és tagadására
- táblázat nat - használt címfordításhoz (NAT)
- táblázat mángorló - az ip csomag fejlécek egyéb módosításai.
Először ellenőrizze, hogy az iptables telepítve van-e a rendszeren (alapértelmezettnek kell lennie):
rpm -q iptables
A parancs kimenete azt mutatja, hogy az iptables jelenlegi telepített verziója 1.4.21.
Az iptable-kel a parancssorban történő munkavégzéshez root jogosultságokra van szükség, tehát továbbra is rootként fogunk dolgozni.
Az aktuális szabályok megjelenítéséhez hajtsa végre a következő parancsot:
iptables [-tábla] -L [lánc] [paraméterek]
Például egy parancs eredménye iptables -L, amikor még nem hoztak létre szabályokat a táblákban:
Fontolja meg részletesebben a parancs kiadását.
táblázat szűrő háromféle szabályt tartalmaz, az úgynevezett láncot (láncot):
- INPUT - a befogadó IP-csomagok, amelyek maguknak a gazdagépeknek szólnak, feldolgozódnak ebben a láncban;
- Kimenet - maga a gazdagép kimenő ip-csomagjai kerülnek feldolgozásra ebben a láncban;
- ELŐRE - erre a láncra van szükség az ip-csomagok átirányításához. Használható, ha a kiszolgálót útválasztóként kívánja használni.
Az egyes láncok szemben egy alapértelmezett házirend, amely meghatározza, hogy mit kell tenni, ha a kapcsolat nem tartozik valamelyik szabályba. Az alapértelmezett házirend két értéket vehet fel, és meghatározza a tűzfal szervezésének megközelítését:
- ACCEPT - alapértelmezés szerint minden kapcsolat megengedett, a szabályok blokkolják a nem kívánt kapcsolatokat;
- DROP - alapértelmezés szerint minden kapcsolat megtagadva, a szabályok lehetővé teszik a szükséges kapcsolatokat.
Forgalomszűrési szabályok létrehozása az iptable-ban
Az Iptables interfész szerint szűrhető
Kezdjük el létrehozni a szabályokat. A megadott lánc végére új szabály hozzáadására szolgáló parancs szintaxisa így néz ki:
iptable [-t tábla] -A -j
Először engedjük meg a forgalmat a helyi hurokfelületen (127.0.0.1), amely bizonyos alkalmazásokhoz szükséges:
iptables -A INPUT -i lo -j ACCEPT
Elemezzük sorrendben:
- Meghatározjuk az INPUT láncot, azaz a szabály a bejövő kapcsolatokra vonatkozik.
- Ezután használja a gombot -i (interfészen belül), annak a bejövő felületnek a meghatározására, amelyre az ip csomag megérkezik.
- A parancsot a kulcsmal fejezzük be -j (-jump), meghatározza az összes olyan ip-csomagra végrehajtandó műveletet, amely megfelel a 2. pontban foglalt kritériumoknak. Ebben az esetben az ACCEPT engedélyezi a kapcsolatot. Ezenkívül a kapcsolatokkal kapcsolatos alapműveletek tartalmazzák:
- DROP - tiltja a kapcsolatot, a kapcsolat forrása nincs informálva, az ip-csomagot egyszerűen eldobják;
- REJECT - tiltsa le a kapcsolatot, a kapcsolat forrását az üzenet tájékoztatja.
Az Iptable szűrő port, protokoll vagy IP cím alapján történik
Most adjunk hozzá egy engedélyezési szabályt, hogy a 22. porton SSH-n keresztül csatlakozzunk a Linux szerverünkhöz.
iptable -A INPUT -p tcp --dport 22 -j ACCEPT
Ebben a szabályban a port és a protokoll a kritérium. A protokollt (tcp, udp, icmp, all) a gomb állítja be -p (-protokoll), célport (azaz a port, amelybe az ip csomagok eljutnak a szerverre) -dport.
megjegyzés: ha a célportot vagy a forrásportot szeretné használni a kritériumokban (-dport vagy -sport), majd adja meg a protokollt.Megadhat egy porttartományt például kettősponttal
--dport 6000: 6063
Ha tudjuk az ügyfelek ip-címeit, ahonnan csatlakozunk a kiszolgálóhoz, akkor biztonságosabb lesz csak ezekről az ip-címekről engedélyezni a hozzáférést. Ebben az esetben add -s (-src, -source) a kritériumokhoz, megadva például a kapcsolati forrás IP-címét vagy alhálózatát a következő szabály segítségével:
iptable -A INPUT -p tcp -s 94.41.174.122 - 22.dport -j ACCEPT
A 22. porthoz való hozzáférés csak a 94.41.174.122 IP-címtől lehetséges.
Részben 3 típusú icmp kérés engedélyezése:
iptable -A INPUT -p icmp --icmp típusú visszhang kérés -j ACCEPT
iptable -A INPUT -p icmp --icmp típusú rendeltetési hely-elérhetetlen -j ELFOGADÁS
iptable -A INPUT -p icmp - az amp-típusú idő túllépett -j ACCEPT
Ezek a szabályok lehetővé teszik a ping, a traceroute segédprogramok használatát és lehetővé teszik a mechanizmus számára az MTU meghatározását két gazdagép között.
Csatlakozás állapota iptable szűrő
A helyes működéshez létre kell hoznia egy szabályt, amely lehetővé teszi a már létrehozott kapcsolatokat:
iptable -A INPUT -m állapot - állam LÉTREHOZOTT, KAPCSOLATOS -j ELFOGADT
Itt a kulcsot használják a kritériumokban -m, az állapotmodul betöltése, amely lehetővé teszi az ip csomag aktuális állapotának meghatározását a lehetségesből:
- ÚJ - a bejövő ip-csomagokra utal, amelyek a kapcsolat létrehozásában vesznek részt;
- BEÁLLÍTOTT és KAPCSOLÓDÓ - már létrehozott kapcsolatokban részt vevő beérkező ip-csomagokra, vagy a már létrehozott (csatlakoztatott kapcsolatokból) indított kapcsolatokra;
- Érvénytelen - a bejövő ip csomagokra utal, ha a fenti feltételek egyike sem vonatkozik rájuk.
Az alapértelmezett iptable házirend beállítása
A tűzfalat engedélyező minimumszabályok készen állnak, továbbra is meg kell határozni egy alapértelmezett házirendet, amely tiltja az összes bejövő kapcsolatot, amely nem felel meg a szabályainknak. Ehhez használja az iptables parancs kulcsát -P, beállítja az adott lánc alapértelmezett házirendjét, esetünkben:
iptables -P INPUT DROP
Vigyázat: a parancs használata előtt meg kell győződnie arról, hogy a jelenlegi szabályok lehetővé teszik-e a kiszolgálóhoz történő kapcsolódást, különben egyszerűen blokkolja a hozzáférést!
Nézzük meg a kapott iptable szabályok tábláját, adjunk hozzá egy kulcsot -v, sokkal pontosabb kimenet megjelenítése:iptables -L -v
Az iptable naplók engedélyezése
Az Iptables lehetővé teszi, hogy információkat írjon az ip csomagok továbbításáról a rendszernaplóba. Ez egy konkrét fellépés révén valósul meg. LOG A kapcsolat fölött azután az ip csomag továbbra is éppen mozog a lánc mentén. Hozzon létre például egy szabályt, amely rögzíti az összes csatlakozási eseményt a 445-ös porthoz (tcp) a rendszernaplóban:
iptable -A INPUT -p tcp --dport 445 -j LOG --log-prefix "IN SMB DROP:"
itt -log-előtag beállítja az előtagot az összes üzenethez, amelyet a szabályunk naplóz. Ez kényelmes, ha több különböző naplózási szabály van, vagy további szoftver-feldolgozáshoz. Ha most megpróbál külsőleg csatlakozni szerverünkhöz a 445-ös porton, például telnet útján, a fájlban / var / napló / üzenetek megjelennek a bejegyzések:
Elemezzük a következtetést:
SMB CROP-ban
: előtag, amelyet az opcióval állítottunk be -log-előtagIN = eth0
az interfész, amelyen az ip-csomagot fogadják, üres értéket tartalmaz a kimenő kapcsolatok számáraOUT =
az a felület, ahonnan az IP-csomagot küldték a bejövő kapcsolatokhoz, üres értéket tartalmazMAC =
összekapcsolva a következő sorrendben: rendeltetési MAC cím, forrás MAC cím, EtherType - 08:00 megfelel az IPv4-nek.Src =
annak a forrásnak az ip címe, ahonnan az ip csomag el lett küldveDST =
IP-cím, amelyre az IP-csomagot elküldtékLEN =
csomag ip mérete bájtbanSPT =
forrásport, ahonnan az ip csomag el lett küldveDPT =
célport, amelybe az ip-csomagot küldik
Az iptable szűrési szabályainak mentése és visszaállítása
Végezetül állítsa be a szabályok automatikus betöltését a kiszolgáló újraindítása után. Ehhez telepíteni kell egy csomagot. iptables-szolgáltatások és a szolgáltatás aktiválva van. Telepítse a csomagot a yum segítségével:
yum install iptables-services
A systemctl lehetővé teszi az iptables használatát
Ellenőrizze az iptable szolgáltatás állapotát:
systemctl status iptables
Az indítási beállítás értéke: engedélyezve (be) paraméter aktív azt jelzi, hogy a szolgáltatás fut.
Betöltéskor a szolgáltatás elolvassa a fájl tartalmát / etc / sysconfig / iptables, és visszaállítja a mentett szabályokat. A szabályok mentéséhez a következő parancsot használjuk:
iptables-save> / etc / sysconfig / iptables
A szabályokat a fájlból visszaállíthatja a következő paranccsal:
iptables-restore < /etc/sysconfig/iptables
Most újraindíthatja a kiszolgálót, és ellenőrizze, hogy a tűzfalszabályok a rendszerindításkor helyreálltak-e.
A következő cikkben bemutatjuk, hogyan lehet az iptables segítségével létrehozni a NAT forgalom-átirányítási szabályait a CentOS-alapú hozzáférési átjáró számára a szervezet belső hálózatába.