Internetes átjáró konfigurálása a NAT és a Port Forwarding használatával a CentOS 7 rendszeren

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.

megjegyzés: belső hálózati szerverekhez web-kiszolgáló01 és myserver01 az alapértelmezett útvonalat a kiszolgáló eth1 (10.2.0.1) felületére állítja gw-kiszolgáló01.

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.
Fontos: a MASQUERADE és a SNAT műveletek csak a POSTROUTING láncra vannak beállítva, a DNAT műveletek csak a PREROUTING vagy OUTPUT.

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

  1. 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.
  2. 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
  3. 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

Vigyázat: itt a parancs az -I kapcsolót használja -A helyett. Az -I kapcsoló segítségével megadhat egy adott szám alapján egy szabályt a láncszabályok sorrendjében egy index meghatározásával. Például a fenti parancsban az index egy a FORWARD láncban, azaz a szabály hozzáadódik a lánc elejéhez. Ha ezt a szabályt hozzáadjuk a végéhez, akkor nem fog működni, mivel az IP-csomagot az előző szabály fogja feldolgozni, lehetővé téve az interakció bármely forrását, és ezen a téren a FORWARD láncon átjutása befejeződik..

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.