Ebben a cikkben megvizsgáljuk a CentOS 7.x alapú egyszerű internetes átjáró megszervezésének és konfigurálásának folyamatát. Ez az átjáró lehetővé teszi a helyi hálózat felhasználói számára az internet elérését, valamint a belső hálózat kiszolgálóinak vagy számítógépekhez való hozzáférését kívülről. A csomagok továbbításának és továbbításának megszervezéséhez az iptables tűzfalalapú NAT technológiát fogjuk használni. Azt is fontolóra vesszük, hogyan lehet karbantartani és elemezni a kapcsolat naplóit az internetes átjárón, amikor a külső felhasználók hozzáférnek a helyi hálózathoz.
Tartalom:
- Helyi hálózati diagram internet-hozzáférési átjáróval, NAT típusok
- A Source NAT konfigurálása: LAN hozzáférés
- Konfigurálja a cél NAT-ot és a port továbbítást: hozzáférés az internetről a helyi hálózatra
- A NAT hálózati csatlakozási naplók elemzése Linux rendszeren
Helyi hálózati diagram internet-hozzáférési átjáróval, NAT típusok
NAT (Hálózati címfordítás) - IP-címfordítás, ez egy olyan mechanizmus, amely lehetővé teszi a forrás- és célcímek cseréjét a csomagok IP-fejlécében, amikor átjutnak az útválasztón, azaz a különböző hálózatok között.
A NAT-ot kétféle módon konfiguráljuk a 10.2.0.0/24 címzésű belső hálózat és a külső internetes hálózat között:
- forrás NAT - ez a forrás IP-cím helyettesítése, esetünkben az internethez való hozzáférés megszervezésére több ügyfél egyetlen nyilvános IP-címén keresztül.
- rendeltetési hely NAT - a rendeltetési hely IP-címeinek helyettesítése, esetünkben, hogy hozzáférést biztosítsunk egy külső internetes hálózatról nyilvános IP-címen keresztül a belső hálózati szerverekhez.
Meghatározjuk azokat a hálózati elemeket (1. ábra), amelyek között a NAT szerveződik:
- gw-szerver - szerver átjáró, azaz a CentOS Linux szerverünk, amely hozzáférést biztosít a belső hálózaton kívül. Két illesztőfelülettel rendelkezik, az első eth1 (10.2.0.1) a belső hálózaton, a második eth0 (84.201.168.122) nyilvános IP-címmel és internet-hozzáféréssel;
- web-kiszolgáló01 - A belső hálózat webszervere, 10.2.0.11 IP-cím;
- my-kiszolgáló01 - a belső hálózat személyes szervere, IP-cím 10.2.0.12.
A Source NAT konfigurálása: LAN hozzáférés
A külső hálózati szerverekhez tartozó NAT forrás esetén a belső hálózaton lévő ügyfeleink kérései úgy néznek ki, mintha az átjáró-kiszolgáló közvetlenül kommunikál velük. - gw-kiszolgáló01.
Az utolsó cikkben, “Alapvető Linux tűzfalkonfiguráció az iptables segítségével”, az iptable használatának alapjait ismertettük. Ezúttal az iptables-ben fogunk dolgozni, nem csak az asztallal szűrő, hanem egy asztallal nat. A forgalom szűrésére szolgáló táblázatokkal ellentétben szűrő, A nat táblázat a következő láncokat tartalmazza:
- PREROUTING - Ebben a láncban a bejövő IP csomagokat feldolgozzuk, mielőtt felosztanánk azokat, amelyeket magának a szervernek vagy egy másiknak történő továbbításra szánnak, azaz mielőtt döntene az IP-csomag útvonalválasztásáról;
- OUTPUT - A lánc arra szolgál, hogy feldolgozza az IP-csomagokat, amelyeket a kiszolgáló alkalmazás helyileg generál. A helyileg generált IP-csomagok nem haladnak át a PREROUTING láncon;
- POSTROUTING - az összes kimenő IP-csomagot feldolgozzuk ebben a láncban, miután meghatározták az IP-csomag útvonalát.
A táblázatban az IP-csomagokhoz végrehajtott műveletek szintén eltérőek:
- MASQUERADE és SNAT- helyettesíti a kimenő csomagok forrás IP-címét. A különbség ezek között a műveletek között az, hogy a SNAT lehetővé teszi egy speciális IP-cím beállítását egy új forrás számára, és a MASQUERADE esetében ez dinamikusan történik;
- DNAT - helyettesíti a rendeltetési hely IP-címét a bejövő csomagokhoz.
A 2. ábra bemutatja a gw-server01 átjárón belüli IP-csomag IP-csomagok feldolgozásának lépéseit az iptable-k SNAT-jával. Az IP-cím és a célport változatlan marad..
2. ábra
- Az IP csomag megérkezett a gw-server01 szerver eth1 belső felületére. Mivel a rendeltetési IP nem tartozik a gw-server01-hez, az IP-csomag a FORWARD lánc által feldolgozásra kerül.
- A FORWARD lánc áthaladása után az IP-csomag számára meghatározzák a kimenő hálózati interfészt, ahonnan el kell küldeni, ezt sárga színű jelöli
- A végén az IP-csomag áthalad a POSTROUTING láncon, amelyben a forrás IP-címét a gw-server01 szerver külső0 illesztőjének IP-címére változtatják.
Állítsuk fel. Először be kell állítania a kernel paramétert, amely lehetővé teszi a csomagok átvitelét a szerver interfészek között. Ezt fájlban kell elvégezni /etc/sysctl.conf adj hozzá egy változót:
net.ipv4.ip_forward = 1
A módosítások alkalmazásához hajtsa végre a parancsot
sysctl -p /etc/sysctl.conf
Itt a sysctl egy parancs, amely lehetővé teszi a kernelparaméterek, a kulcs, kezelését -p azt jelenti, hogy el kell olvasnia a paramétereket a fájlból.
Hozzon létre egy szabályt az iptable-ban, amely lehetővé teszi a csomagok átvitelét a belső (eth1) és a külső (eth0) felületek között:
iptable -A FORWARD -i eth1 -o eth0 -j ELFOGADTA
és tegyük át a csomagokat a már kialakult kapcsolatokkal kapcsolatos interfészek között.
iptable -A FORWARD -m állapot - állam KAPCSOLATOS, LÉTREHOZOTT -j ELFOGADTA
Az előző két szabály csak akkor értelmezhető, ha a DROP házirendet alapértelmezés szerint állítja be a FORWARD láncra:
iptable -P FORWARD DROP
SNAT engedélyezése:
iptable-nat-nat -A UTASÍTÁS -s 10.2.0.0/24 -o eth1 -j SNAT - -forrás 84.201.168.122
- -a forrás annak a felületnek a címét kell megadnia, ahonnan a külső hálózat számára tervezik IP-csomagok kiadását;
- -s 10.2.0.0/24 meg van adva, hogy a belső hálózat 10.2.0.0/24, de ez nem kötelező paraméter, ha nem adja meg, akkor az interakció forrása nem lesz korlátozva.
Lássuk az eredményül kapott táblázat konfigurációját szűrő és láncok FORWARD (a kimenet kivágva):
iptables -L -n -v
és a táblázat konfigurációja nat és láncok POSTROUTING (a kimenet kivágva):
iptables -t nat -L -n -v
Annak ellenőrzése érdekében, hogy a belső hálózaton lévő webszerverünk hozzáférést kapott-e az internethez, megpróbálunk telnet útján kapcsolódni az 1.1.1.1 (Cloudflare DNS) 80-as porthoz:
telnet 1.1.1.1 80
Csapat eredménye Csatlakoztatva 1.1.1.1, azt jelzi, hogy a kapcsolat sikeres volt.
Konfigurálja a cél NAT-ot és a port továbbítást: hozzáférés az internetről a helyi hálózatra
Most fontolja meg a fordított helyzetet. Azt akarjuk, hogy a külső ügyfelek hozzáférjenek webhelyünkhöz a belső hálózaton. Ezenkívül az internetről el kell mennünk a személyes kiszolgálóra (vagy munkaállomásra). A jelen eset közötti különbség nemcsak az interakció irányában rejlik, hanem abban is, hogy a kéréseket az egyes portokra (80 (TCP) és 3389 (TCP) kell átirányítani, miközben a célkiszolgálót és esetleg a célportot ki kell cserélnie. Ezt a technikát hívják kikötői továbbítás (kikötő szállítás).
A port-továbbítás Windows-ban a parancs segítségével megszervezhetőnetsh interfész portproxy
.Először engedélyezze a csomag továbbítását a külső interfészről (eth0) a belső (eth1) interfészre:
iptable -A FORWARD -i eth0 -o eth1 -j ELFOGADTA
Ez a szabály lehetővé teszi az IP csomagok átvitelét az interfészek között, a forrástól függetlenül. Lehetséges azonban külön szabályként megtiltani a NAT-on keresztüli kapcsolatot különálló IP-címek vagy alhálózatok esetében:
iptables - I FORWARD 1 -o eth1 -s 167.71.67.136 -j DROP
Most átirányítsa az összes kapcsolatot a külső hálózati interfész (eth0) 80-as portjára a belső hálózat webszerverének IP-címére. web-kiszolgáló01:
iptable-nat -A-ELŐKÉSZÍTÉS -p tcp --dport 80 -i eth0 -j DNAT - rendeltetési helyre 192.168.0.11
-to-cél - annak az IP-címnek kell lennie, amelyre a cél IP-címet ki kell cserélni.
Az ellenőrzéshez próbáljon csatlakozni az internetről telnet útján a gw-server szerver nyilvános IP-címéhez a 80-as porton:
telnet 84.201.168.122 80
Az eredmény a webszerver web-server01 válasza a belső hálózatunkból:
HTTP / 1.1 400 Rossz kérésű szerver: nginx / 1.14.2 Dátum: 2019. július 31., ked, péntek, 10:21:21 GMT Tartalomtípus: szöveg / html Tartalom-hossza: 173 Csatlakozás: bezár
Hasonlóképpen konfigurálhatja az RDP-n keresztül az internetről a munkaállomáshoz való hozzáférést. Mivel korlátozott számú embernek lesz szüksége RDP-hozzáférésre, biztonságosabb lesz egy nem szabványos portot (például 13389) használni a csatlakozáskor, és átirányítani a belső hálózati kiszolgálón lévő 3389-es portra (vagy megváltoztatni az RDP-portszámot egy Windows számítógépen). A megváltozott rendeltetési portot egy kettőspont jelzi az IP-cím után:
iptable-nat -A-ELŐMUTATÁS -p tcp --dport 13389 -i eth0 -j DNAT - to rendeltetési hely 192.168.0.12 ∗ 389
Az ellenőrzéshez próbáljon csatlakozni az internetről telnet (vagy a PowerShell Test-NetConnection parancsmag) segítségével a kiszolgáló nyilvános IP-címéhez gw-szerver az 13389-es porton:
telnet 84.201.168.122 13389
Válaszul egy üres képernyőt és egy kurzort kapunk, ez azt jelzi, hogy a kapcsolat működik.
A NAT hálózati csatlakozási naplók elemzése Linux rendszeren
A külső hálózatról a személyes kiszolgálóra történő portok továbbításának konfigurálása után a biztonság fokozásának egyik momentuma a külső kapcsolatok naplóinak összeállítása és elemzése. Valójában ránk támadó megpróbálhatja használni ezt a hozzáférést.
Először engedélyezze a bejegyzést a naplófájlban /var/ napló / üzenet, az összes kísérlet a nem szabványos RDP-porthoz való csatlakozásra, amelyet használunk:
iptables -I INPUT 1 -p tcp --dport 13389 -m állapot - state NEW -j LOG --log-prefix "NEW RDP SESSION"
Csatlakozzon a személyes szerverünkhöz, hogy napló jelenjen meg a naplóban. Most kiszűrjük a szükséges naplófájl összes bejegyzését:
macska / var / napló / üzenetek | grep "ÚJ RDP SESSION"
kernel: ÚJ RDP SESSION IN = OUT = eth1 SRC = 167.71.67.79 DST = 84.201.168.122 LEN = 60 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 16270 DF PROTO = TCP SPT = 60836 DPT = 13389 WINDOW = 29200 RES = 0x00 SYN URGP = 0
Ilyen napló olvasása nem túl kényelmes, főleg minden nap. Ezért a következő lépés a naplók elemzésének automatizálása a szűrőn alapuló jelentések rendszeres fogadása érdekében. Ehhez használja a segédprogramot Logwatch, telepítése a szokásos yum csomagkezelőn keresztül:
yum install napló
Először próbálja meg manuálisan létrehozni egy jelentést:
/ usr / sbin / logwatch - alacsony adatszolgáltatás - szolgáltatási iptables - sorszám ma
itt,
- -szolgáltatás - meghatározott szolgáltatást, üzeneteket állít fel, amelyekből - esetünkben - csak az iptable-ekből kell elemeznie;
- -tartomány - jelzi a mai mintavételi időszakot - a mai összes eseményét;
- -részlet - jelentési részlet szint (magas, közepes, alacsony).
Alapértelmezés szerint a napló megjeleníti a jelentést a képernyőn, ehhez hasonlót kapunk:
--------------------- iptables tűzfal Kezdő ------------------------ Forrásgazda szerint: 2 csomag naplózva az eth1 interfészen 167.71.45.65-től - 2 csomag a tcp-ig (13389) ---------------------- iptables tűzfal End -------------------------
A jelentés működik, továbbra is ütemezhetően, naponta egyszer kell futtatnia, és el kell küldenie az e-mailbe, ehhez frissítjük a parancsot, és beírjuk az /etc/cron.daily/00logwatch fájlba:
/ usr / sbin / logwatch - kimenő e-mail --mailto [email protected] - alacsony adatszolgáltatás - szolgáltatási iptables - tegnap
Itt adtuk a lehetőségeket:
-kibocsátás - jelzi a jelentés kiadásának módszerét, mail - post to mail;
-mailto - a jelentés címzettjének e-mail címe.
Az RDP továbbításakor a helyi hálózaton belül képesnek kell lennie az RDP kapcsolatok naplóinak elemzésére közvetlenül a Windows rendszerben.