Ako preposielať porty pomocou Iptables v systéme Linux?
Úvod
Preposielanie portov je technika, ktorá umožňuje sieťovému systému pristupovať k zdrojom mimo siete presmerovaním konkrétnych portov. Je to proces, ktorý zahŕňa sprostredkujúce zariadenie (napríklad smerovač), ktoré prijíma prichádzajúce pripojenia na špecifikovaných portoch, a potom presmeruje prenos na interné zariadenie v sieti. Konečným výsledkom je umožnenie vzdialeným zariadeniam pripojiť sa a komunikovať so službami bežiacimi na zariadeniach v rámci lokálnej siete.
V praxi to znamená, že ak chcete spustiť webový server z vášho domáceho počítača, každý, kto sa pokúša pripojiť mimo vašej domácej siete, bude musieť poznať vašu verejnú IP adresu a potom odosielať požiadavky cez port 80 (HTTP) alebo port 443. (HTTPS). Bez správne nakonfigurovaného presmerovania portov by sa však prichádzajúce požiadavky na pripojenie nedostali k vášmu domácemu počítaču, pretože by boli blokované ochranou brány firewall vášho smerovača.
Stručný prehľad Iptables
Iptables je jedným z niekoľkých firewallových riešení dostupných pre systémy Linux. Funguje na úrovni jadra a poskytuje robustné možnosti filtrovania paketov s pokročilými funkciami, ako je stavová kontrola paketov, NAT (preklad sieťových adries), sledovanie pripojenia a ďalšie.
Iptables sa primárne používa na riadenie prichádzajúcej a odchádzajúcej sieťovej prevádzky, vrátane blokovania alebo povolenia špecifických protokolov, portov alebo IP adries. Nástroj iptables používa množinu preddefinovaných reťazcov na vyhodnotenie prichádzajúcej premávky podľa množiny pravidiel, pričom každé pravidlo definuje špecifické podmienky, ktoré musia byť splnené, aby bola prevádzka povolená alebo odmietnutá.
Reťazce sú usporiadané hierarchicky s rôznymi tabuľkami, ktoré vykonávajú rôzne akcie – napríklad filtrovanie paketov alebo ich úpravu na preposielanie – na základe kritérií špecifikovaných v pravidlách. V ďalšej časti preskúmame, ako možno použiť iptables na konfiguráciu presmerovania portov v systémoch Linux.
Pochopenie Iptables
Čo je to iptables?
Iptables je výkonný nástroj brány firewall, ktorý je predinštalovaný vo väčšine distribúcií Linuxu. Funguje tak, že skúma pakety údajov, keď prechádzajú cez sieťové rozhranie, a robí rozhodnutia na základe pravidiel definovaných používateľom.
Tieto pravidlá sa používajú na rozhodnutie, či povoliť alebo zablokovať prenos, alebo presmerovať prichádzajúci prenos na konkrétny port alebo adresu. Jednoducho povedané, iptables funguje ako filter medzi vaším počítačom a zvyškom siete.
Dá sa nakonfigurovať tak, aby do vášho systému povolil iba určité typy prenosu a zároveň blokoval všetku ostatnú nechcenú prevádzku. Toto je obzvlášť dôležité pre servery, ktoré musia byť verejne prístupné, ale zároveň musia byť zabezpečené proti škodlivým útokom.
Ako to funguje?
Iptables funguje tak, že vytvára niekoľko reťazcov pravidiel, ktoré definujú, ako sa má zaobchádzať s prichádzajúcou a odchádzajúcou prevádzkou. Tieto reťazce sú v podstate sady pravidiel, ktoré určujú, ako by sa mali pakety spracovávať v závislosti od ich atribútov, ako je zdrojová IP adresa, cieľová IP adresa, typ protokolu a číslo portu.
Keď prichádzajúci paket dorazí na sieťové rozhranie, iptables postupne kontroluje jeho atribúty voči každému pravidlu v každom reťazci, kým nenájde zhodu. Ak sa nenájde žiadna zhoda, paket sa zahodí alebo odmietne v závislosti od toho, ako je nakonfigurované iptables.
Základné príkazy pre iptables
Ak chcete začať používať iptables, musíte poznať niektoré základné príkazy na konfiguráciu jeho pravidiel −
iptables -L − zoznam všetkých aktuálne definovaných reťazcov.
iptables -F − vymaže (vymaže) všetky pravidlá zo všetkých reťazcov.
iptables - Pravidlo reťazca − pridá (pridá) nové pravidlo na koniec existujúceho reťazca.
iptables -D chain rule – odstráni pravidlo z existujúceho reťazca.
-
iptables -P chain target – nastavuje predvolenú politiku (prijať, zrušiť alebo zamietnuť) pre daný reťazec.
Toto je len niekoľko z mnohých príkazov dostupných v iptables. Naučením sa týchto základov budete na dobrej ceste k zvládnutiu tohto výkonného nástroja brány firewall.
Presmerovanie portov pomocou Iptables
Výber portov na presmerovanie
Pred nastavením presmerovania portov v systéme Linux pomocou iptables je dôležité rozhodnúť, ktoré porty chcete presmerovať. Presmerovanie portov umožňuje presmerovanie prichádzajúcej prevádzky na konkrétnom porte na inú internú sieťovú adresu.
Je to užitočné, keď beží server alebo hosťuje službu vo vašej lokálnej sieti a chcete, aby k nej mali prístup externí používatelia. Bežne presmerované porty zahŕňajú 80 pre webovú prevádzku, 22 pre SSH a 3389 pre Remote Desktop Protocol (RDP).
Nastavenie pravidiel iptables pre presmerovanie portov
Keď sa rozhodnete pre porty, ktoré chcete presmerovať, môžete začať nastavovať pravidlá iptables pre presmerovanie portov. Aby sme to mohli urobiť, musíme vytvoriť nový reťazec v tabuľke NAT.
Vytvorenie nového reťazca pre presmerovanie portov
Ak chcete vytvoriť nový reťazec pre presmerovanie portov, použite nasledujúci príkaz −
sudo iptables -t nat -N
Tým sa vytvorí nový reťazec v tabuľke NAT so zadaným názvom.
Konfigurácia tabuľky NAT
Po vytvorení nového reťazca musíme nakonfigurovať tabuľku NAT pridaním nášho nového reťazca ako jedného z jeho reťazcov −
sudo iptables -t nat -A PREROUTING -j
Toto pridá náš novovytvorený reťazec ako jeden z reťazcov v pravidle PREROUTING tabuľky NAT.
Pridávanie pravidiel pre dopredné porty
Teraz, keď sme nastavili náš nový reťazec a podľa toho nakonfigurovali tabuľku NAT, môžeme pridať pravidlá, ktoré budú skutočne vykonávať presmerovanie portov. Existujú tri spôsoby, ako to urobiť -
a) Preposielanie jednotlivých portov:
Na presmerovanie prichádzajúcej prevádzky na jednom konkrétnom porte na internú IP adresu a port použite nasledujúci príkaz −
sudo iptables -t nat -A -p --dport -j DNAT --to-destination
b) Preposielané rozsahy portov:
Ak chcete preposlať rozsah prichádzajúcej prevádzky na konkrétnom rozsahu portov na internú adresu IP a port, použite nasledujúci príkaz −
sudo iptables -t nat -A -p --dport : -j DNAT --to-destination
c) Preposielanie viacerých portov naraz:
Na presmerovanie prichádzajúcej prevádzky na viacerých špecifických portoch na internú IP adresu a port použite nasledujúci príkaz pre každý port, ktorý chcete presmerovať −
sudo iptables -t nat -A -p --dport ,,...-j DNAT --to-destination
Nastavenie presmerovania portov pomocou iptables v systéme Linux je nevyhnutné pri spúšťaní serverov alebo hostingových služieb vo vašej lokálnej sieti.
Záver
V tomto článku sme sa zaoberali základmi presmerovania portov a tým, ako používať iptables v systéme Linux na presmerovanie portov. Poskytli sme prehľad iptables a jeho základných príkazov, po ktorom nasledoval podrobný návod, ako nastaviť presmerovanie portov pomocou iptables. Diskutovali sme o bežných problémoch, ktoré sa môžu vyskytnúť pri nastavovaní presmerovania portov pomocou iptables, a o niektorých tipoch na riešenie problémov, ktoré vám ich pomôžu vyriešiť.
Presmerovanie portov je základným aspektom siete, ktorý umožňuje prichádzajúcej prevádzke z internetu dosiahnuť konkrétne zariadenie alebo službu vo vašej sieti. Tento proces je kritický pre mnohé kritické aplikácie, ako je vzdialený prístup, hranie hier, zdieľanie súborov a webhosting. Pochopenie toho, ako preposielať porty pomocou iptables v systéme Linux, je nevyhnutné, ak chcete efektívne spravovať svoju sieť.
Iptables je výkonný nástroj brány firewall, ktorý vám umožňuje konfigurovať pokročilé nastavenia zabezpečenia vašej siete. Pochopením toho, ako funguje a jeho funkcionalitu, môžete zlepšiť stav zabezpečenia vašej siete a zároveň zabezpečiť, aby prenos medzi zariadeniami alebo službami v rámci vašej siete plynulo prúdil.
Okrem toho majte na pamäti, že konfigurácie presmerovania portov sa musia aktualizovať vždy, keď dôjde k zmenám vo vašej sieťovej infraštruktúre alebo požiadavkách aplikácie. Dodržiavaním pokynov načrtnutých v tomto článku a ich postupným zavádzaním do praxe môžu používatelia rozvíjať zručnosti potrebné na konfiguráciu iptables a zvýšiť bezpečnosť a spoľahlivosť svojich sietí.