In the Előző hozzászólás Láttuk az IPTable konfigurációját, hogy tűzfalként működjenek. Most láthatjuk, hogyan hozhatjuk létre ezeket a szkripteket úgy, hogy a szabályok automatikusan elinduljanak, amikor a rendszer elindul, és azt is, hogyan lehet ezeket a szabályokat egy pillanatra megszüntetni vagy leállítani.
Mielőtt elkészítenénk a szkriptet és megmutatnánk, hogyan néz ki, beszéljünk egy kicsit a NAT-ról és arról, hogy mit akarunk kezdeni ezzel a berendezéssel.
NAT és a példa kontextusa.
Amikor a NAT-ról beszélünk, összekeverhetjük ezt az útválasztással, mivel mindkettő két különböző hálózat összekapcsolásáért felel. A különbség valójában az, hogy az útválasztást úgy alkalmazzák, hogy egyik helyi hálózatról a másikra lépjen, és ez a másik hálózat csatlakozhat egy útválasztóhoz és kimenhet az internetre.
Míg amikor a NAT-ról beszélünk, a csomagok helyi vagy magánhálózatról nyilvános hálózatra vagy Internetre történő átirányításáról beszélünk. Ezt úgy teszi, hogy eltakarja a csomagokat azáltal, hogy felteszi a nyilvános IP-címet, amellyel az internetre megy. Más szavakkal, nincs szükségünk routerre, mert a nyilvános IP közvetlenül a GNU / Linux számítógép tulajdonában van.
Ezt azzal a jelmondattal fogjuk dolgozni, hogy a Linux-ot routerként / tűzfalként használjuk, hogy helyi hálózatról internetezhessünk. De itt két forgatókönyv jelenhet meg.
- Hogy Linuxunk a szolgáltató útválasztója és a helyi hálózat között van.
Ebben az esetben az útválasztó és a Linuxunk között lenne egy hálózat, a Linux és a helyi hálózat között pedig egy másik másik hálózat. Ez azt jelenti, hogy az útválasztónknak nem kell a NAT-ot önmagában elvégeznie, egyszerű forgalmi útvonallal, amint azt a Előző hozzászólás Jó lenne.
- Hogy Linuxunknak van egy interfésze a helyi hálózathoz csatlakoztatva, és a másik felületen keresztül közvetlenül kap egy nyilvános IP-t, amellyel navigál.
Ez azt jelenti, hogy Linuxunknak NAT-t kell tennie, hogy a csomagok elérhessék az internetet.
E kis laboratórium céljaira akkor azt mondjuk, hogy Linuxunk közvetlenül kap nyilvános IP-t, és így képes lesz tesztelni a NAT hatásait.
A NAT elvégzéséhez használjuk a szintaxist
iptables -t nat -A POSTROUTING -O eth1 -j MASZKERÁD
Ahol az eth1 az a felület, ahol megkapjuk a nyilvános IP-címet, vagyis ahol az Internetet használjuk.
Iptables szkript létrehozása
Tegyük fel tehát, hogy: a 172.26.0.0 a helyi hálózatunk, a 81.2.3.4 pedig a nyilvános IP, amellyel az internetet használjuk. (ez egy statikus ip). Megvan az eth0 interfész (helyi hálózat)
eth1 (Nyilvános hálózat).
Alapvetően egy olyan szkript létrehozásából áll, amelyet például az /etc/init.d/firestop címen lehet meghívni. és ebből a szkriptből elindíthatjuk, leállíthatjuk vagy ellenőrizhetjük a konfigurációnk állapotát, akárcsak bármely rendszerdémon esetében.
Tegyük fel, hogy az IPTABLES szabályaim:
#! / bin / bash # Az otthonom tűzfala. # Fájlnév / etc / firewall_on # Írta: Jlcmux Twitter: @Jlcmux # # Alapvető irányelvek. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT az internet megosztásához eth0-tól eth1-ig iptables -t nat -A POSTROUTING -O eth1 -j SNAT --forráshoz 81.2.3.4 # # Az iptables által indított bejövő kapcsolatok engedélyezése -A FORWARD -m állapot - állam LÉTREHOZOTT, KAPCSOLÓDÓ -j ACCEPT # # Engedélyezett kimenő forgalom iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --port 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Magyarázat:
A szkript alapvetően a következőket teszi:
- Először korlátozza az összes navigációt, kapcsolatot és forgalmat. (Alapvető tűzfalszabályok)
- Ezután hozza létre a NAT-ot az eth1 célállomással. jelezve, hogy statikus nyilvános ip-vel rendelkezünk "81.2.3.4"
- Megnyitja azokat a portokat, amelyek szükségesek az általam kezdeményezett kapcsolati csomagok fogadásához.
- Elfogadja a kimenő HTTP, HTTPS és DNS forgalmat.
Ha a felszerelésünket navigáláshoz akarjuk használni, ismételjük meg a sorokat, és a FORWARD értéket állítsuk át INPUT vagy OUTPUT értékre.
Szkript törlése.
Most egy olyan szkriptet fogunk létrehozni, amely felülírja a fentieket, és tisztán hagyja a számítógépet mindettől. (Tesztelés céljából, vagy csak ki akarjuk kapcsolni a tűzfalat).
#! / bin / bash # Az otthonom tűzfala. # Fájlnév / etc / firewall_off # Írta: Jlcmux Twitter: @Jlcmux # # iptables szabályok törlése -F # # Alapértelmezett házirendek alkalmazása (az összes forgalom elfogadott) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
Automatizálás.
Most létre kell hoznunk a szkriptet belül /etc/init.d/ és a szolgáltatás automatikusan elindul, és kényelmesebb módon tudjuk kezelni.
#! / bin / bash # Az otthonom tűzfala. # Fájlnév /etc/init.d/ tűzfal # Jlcmux Twitter: @Jlcmux esetben $ 1 az elején) / etc / firewall_on ;; stop) / etc / firewall_off ;; állapot) iptables -L ;; *) echo "Rossz szintaxis. Érvényes = /etc/init.d/ tűzfal indítása | leállítás | állapot ;; esac
Magyarázat:
Ezt az utolsó forgatókönyvet adtuk be /etc/init.d/ a névvel tűzfal. Tehát, ha a tűzfalat szeretnénk kezelni, használhatjuk a parancsot /etc/init.d/ tűzfal indítása. Ugyanígy megállíthatjuk, vagy láthatjuk az állapotot.
Most szerkeszteni fogjuk a fájlt /etc/rc.local és valami ilyesmit tettünk: /etc/init.d/ tűzfal indítása kezdeni a rendszerrel.
Is. Ez a második rész. Remélem, ez mindannyiótoknak hoz valamit. A következőben látjuk a Proxy-t és az IDS-t.
Ha Debiant használ, a repóban van egy csomag (iptables-persistent), amely pontosan ezt teszi, az aktuális szabályokat az /etc/iptables/rules.v4 vagy v6 fájlokban tárolja, attól függően, hogy mit használ, majd rájuk alkalmazza amikor felemeli a rendszert.
A gyakorlatban a hagyományos iptables tűzfal konfigurációjának megtisztításához (és a NAT használata az én szempontomból nem lenne így), a legtöbb esetben elegendő egy szabály átmosása és az alapértelmezett házirendek visszaállítása ACCEPT-re.
De elméletileg, és ha jól tudom, ezen felül meg kell tisztítania a nem alapértelmezett karakterláncokat és vissza kell állítania a számlálókat. Végrehajtandó műveletek, szem előtt tartva, hogy a "szűrés" mellett vannak más táblák is (ehhez kötelező elolvasni a "/ proc / net / ip_tables_names" fájlt).
Egyébként az ortodoxia szerint a tűzfalnak már fent kell lennie, mielőtt a hálózat működik. Nem tudom, hogyan érhető el a többi Linux rendszerben, de a Debianban a parancsfájl adaptálható és beállítható az "/etc/network/if-pre-up.d/" könyvtárba.
Jó tűzfal mindenkinek. 😉
Helló, nagyon jó a bejegyzés. Elolvastam a teljes 2 kötetet.
Várakozás a következőre 🙂
Kérdés a tudatlanságomból, folytatjuk az iptables-et, de több kernelverziónál vannak nftable-k, már tesztelek, a kérdések az, hogy az nftable valami béta az iptable-ek vonatkozásában? Sokkal tovább fogják használni az iptable programokat?
Köszönöm.
Az nftables az iptable, ip6table, arptable és ebtable összes funkcióját magában foglalja, mindkettő új infrastruktúrát használ mind a kernels, mind a felhasználói térben, ami jobb teljesítményt és jobb funkcionalitást biztosít. Az nftables felváltja az iptable-t és az összes többi említett eszközt, de egyelőre nem, legalábbis mindaddig, amíg az nftable-k mint ilyenek szélesebb körű használatra nem kerülnek.
nagyon jó bejegyzés, szerettem volna többet olvasni, mivel nagyon jól meg van magyarázva .. üdvözlet köszönet nagy hozzájárulás
Helló! Nagyon jó mindkét poszt.
Hozzászólásként hozzáadhatja a végéhez ebben a részben:
"Most szerkeszteni fogjuk az /etc/rc.local fájlt, és valami ilyesmit teszünk: /etc/init.d/firestop start, hogy az a rendszerrel kezdődjön."
Adja hozzá ezt az rc.local fájlhoz.
if [-x /etc/init.d/ tűzfal]; akkor
/etc/init.d/ tűzfal indítása
fi
Ami azt jelenti, hogy ha a "tűzfal" rendelkezik végrehajtási engedéllyel, akkor hajtsa végre, ha nem.
Ha azt akarja, hogy a "tűzfal" ne induljon el, akkor csak el kell távolítania az engedélyeket.
Például: chmod + x /etc/init.d/ tűzfal
hogy minden indításkor fusson, vagy ...
chmod -x /etc/init.d/ tűzfal
hogy teljesen letiltja.
Üdvözlet!