Späť na blog

Presmerovanie portov pomocou Iptables v Linuxe: Návod ako na to

Presmerovanie portov pomocou Iptables v Linuxe: Návod ako na to

Presmerovanie portov, tiež označované ako mapovanie portov, je metóda umožňujúca vzdialeným zariadeniam pripojiť sa k špecifickej službe v rámci vašej súkromnej lokálnej siete (LAN). Ako napovedá samotný názov, tento proces zahŕňa presmerovanie požiadaviek na konkrétny port na iný port alebo sieť. Mení cieľ paketu počas prenosu a považuje sa za typ operácie prekladu sieťových adries (NAT) opätovne.

Povolenie presmerovania portov umožňuje zariadeniam alebo hostiteľom, ktorí nie sú pripojení k internej sieti, vzájomný prístup, čo je inak pri zakázaní obmedzené. Výhody presmerovania portov môžete využiť na blokovanie cieľových webových stránok, zvýšenie bezpečnosti a pridanie obchádzky okolo firewallu NAT podľa vašich potrieb.

V tomto návode vás prevedieme krokmi presmerovania portov pomocou iptables v Linuxe.

Požiadavky

Na sledovanie tohto návodu budete potrebovať:

Podrobnosti o hostiteľovi

Najprv musíme poznať podrobnosti o rozhraniach a adresách pracujúcich serverov. Skontrolujme sieťové rozhrania nášho systému:

Uvidíte výstup:

Tu zvýraznený výstup ukazuje dve rozhrania, prvé eth0 priradené k adrese 192.51.100.45 a druhé eth1 priradené k adrese 192.168.1.5. Z týchto dvoch rozhraní je jedno verejné a druhé súkromné. Spustíme príkaz na ich rozlíšenie a zistenie verejného rozhrania, ktoré je pripojené k vašej predvolenej bráne. Na rozlíšenie zadajte:

Uvidíte výstup:

Fiktívne údaje pre návod

V tomto návode budeme používať fiktívne adresy a priradenia rozhraní. Tieto údaje môžete ľubovoľne použiť alebo ich nahradiť podľa vlastného uváženia.

Sieťové podrobnosti webového servera:

  • Verejná IP adresa: 203.0.113.2

  • Súkromná IP adresa: 192.0.2.2

  • Verejné rozhranie: eth0

  • Súkromné rozhranie: eth1

Sieťové podrobnosti firewallu:

  • Verejná IP adresa: 203.0.113.15

  • Súkromná IP adresa: 192.0.2.15

  • Verejné rozhranie: eth0

  • Súkromné rozhranie: eth1

Nastavenie webového servera

Začnime s naším hostiteľom webového servera. Najprv sa prihláste pomocou svojho sudo používateľa.

Inštalácia Nginx

Najprv nainštalujeme Nginx na náš hostiteľský webový server a uzamkneme ho tak, aby počúval iba na svojom súkromnom rozhraní. To umožní, aby bol náš webový server dostupný iba vtedy, ak správne nastavíme presmerovanie portov.

Ďalej aktualizujte lokálnu vyrovnávaciu pamäť balíkov a pomocou apt stiahnite a nainštalujte Nginx:

Pridanie obmedzení

Po nainštalovaní Nginx na náš hostiteľský webový server ho uzamkneme, aby sme zabezpečili, že bude prijímať vstupy iba zo súkromných rozhraní a odnikiaľ inadiaľ. Taktiež to zabezpečí, že naše webové servery budú aktívne iba vtedy, ak bude nastavenie presmerovania portov správne.

Ak chcete pridať obmedzenia, otvorte predvolený konfiguračný súbor bloku servera /etc/nginx/sites-enabled/default v ľubovoľnom textovom editore podľa vášho výberu (tu používame textový editor nano) a zadajte:

Na výstupe uvidíte, že direktíva listen sa zobrazuje dvakrát:

Port Forwarding Nginx Default File

V tomto návode používame prvú direktívu na demonštráciu presmerovania IPv4. Druhú, ktorá je nakonfigurovaná pre IPv6, môžete odstrániť. Pridajte privátnu IP adresu vášho webového servera s dvojbodkou tesne pred 80, aby ste informovali Nginx, že má prijímať vstupy iba z privátneho rozhrania. Ďalej upravte direktívu:

Port Forwarding Nginx Edited Default File

Po dokončení súbor uložte a zatvorte. Predtým, ako budete pokračovať, sa uistite, že v ňom nie sú žiadne syntaktické chyby. Otestujme súbor:

Nginx T

Ak sa nezobrazí žiadna chyba, môžete reštartovať Nginx a povoliť novú konfiguráciu:

Overenie sieťového obmedzenia

Overme úroveň prístupu, ktorú máme k nášmu webovému serveru. Skúste pristúpiť k webovému serveru cez privátne rozhranie pomocou príkazu curl :

Uvidíte výstup:

Port Forwarding Nginx Output1

Ak sa pokúsime použiť verejné rozhranie, nebudeme sa môcť pripojiť:

To je presne to, čo sme očakávali.

Nakonfigurujte firewall na presmerovanie portu 80

Pokračujme v našej práci implementáciou presmerovania portov na našom firewall stroji.

Povolenie presmerovania v jadre

V predvolenom nastavení má väčšina systémov presmerovanie portov VYPNUTÉ. Vykonáme zmeny na ZAPNUTIE presmerovania portov pomocou niekoľkých úprav. Taktiež existuje možnosť zapnúť presmerovanie portov natrvalo pomocou oprávnení sudo , ako je znázornené v nasledujúcich krokoch.

Ak chcete ZAPNÚŤ presmerovanie prevádzky na úrovni jadra, zadajte:

Ak chcete zapnúť presmerovanie portov natrvalo, upravte súbor /etc/sysctl.conf . Otvorte súbor s oprávneniami sudo a zadajte:

Vo vnútri nájdite a odkomentujte riadok, ktorý vyzerá takto:

Po dokončení súbor uložte a zatvorte. Potom použite príkazy sysctl na uplatnenie zmien v nastaveniach, aby sa prejavili:

Základné nastavenie firewallu

Najprv si prejdite návod na ako nastaviť základný firewall na vašom stroji. Po dokončení budete mať:

  • Nainštalovaný iptables-persistent
  • Uloženú predvolenú sadu pravidiel do /etc/iptables/rules.v4
  • Komplexné znalosti o pridávaní a úprave pravidiel pomocou príkazu iptables command

Taktiež si môžete pozrieť ako zobraziť a vymazať pravidlá firewallu iptables.

Pridanie pravidiel presmerovania

Nakonfigurujeme náš firewall tak, aby zabezpečil, že prevádzka prichádzajúca do nášho verejného rozhrania ( eth0 ) na porte 80 bude presmerovaná na naše privátne rozhranie ( eth1). V predvolenom nastavení má náš základný firewall reťazec FORWARD nastavený na DROP prevádzky. Pridanie pravidiel firewallu umožní presmerovanie pripojení na náš webový server. Pre zvýšenie bezpečnosti uzamkneme pravidlá firewallu tak, aby povoľovali iba presmerované požiadavky.

V reťazci FORWARD budeme prijímať nové pripojenia určené pre port 80 prichádzajúce z nášho verejného rozhrania a smerujúce do nášho privátneho rozhrania. Nové pripojenia identifikujeme pomocou rozšírenia conntrack a budeme ich reprezentovať paketom TCP SYN :

Musíte povoliť akúkoľvek následnú prevádzku v oboch smeroch vyplývajúcu z prichádzajúceho pripojenia. Zadajte príkazy nižšie na povolenie prevádzky ESTABLISHED a RELATED medzi naším verejným a privátnym rozhraním:

Overme, či je naša politika pre FORWARD reťazec nastavená na DROP:

Doteraz sme pridali niekoľko pravidiel, ktoré umožňujú prechod prevádzky medzi naším verejným a súkromným rozhraním cez náš firewall. Avšak, iptables ešte nie je informovaný o smerovaní prevádzky, pretože konfigurácia pravidiel firewallu ešte nie je dokončená. V nasledujúcich krokoch pridáme pravidlá NAT a upravíme trvalú sadu pravidiel na smerovanie prevádzky.

Pridanie pravidiel NAT na smerovanie paketov

Vykonáme dve samostatné operácie, aby iptables správne upravoval pakety a zefektívnil komunikáciu s klientmi a webovým serverom.

DNAT je prvá operácia, ktorá spúšťa PREROUTING reťazec v tabuľke nat . Táto operácia mení cieľovú adresu paketu a umožňuje jeho správne smerovanie pri prechode medzi sieťami. Klienti vo verejnej sieti sa však budú pripájať k nášmu firewallovému serveru a nebudú mať žiadne informácie o topológii našej súkromnej siete. Ak chcete odovzdávať informácie do súkromnej siete, zmeňte cieľovú adresu každého paketu, aby sa správne dostal na náš cieľový webový server.

Je dôležité poznamenať, že sa zameriavame na konfiguráciu presmerovania portov. Vykonávanie NAT na každom pakete, ktorý narazí na firewall, nie je súčasťou nášho návodu. Budeme porovnávať pakety na porte 80 so súkromnou IP adresou nášho webového servera:

Paket bude správne nasmerovaný na náš webový server a bude obsahovať pôvodnú adresu klienta ako zdrojovú adresu. Napriek pokusom servera odoslať odpoveď priamo na túto adresu nebude možné nadviazať legitímne TCP spojenie.

Na konfiguráciu správneho smerovania upravíme zdrojovú adresu paketu. Zmeňme zdrojovú adresu na súkromnú IP adresu nášho firewallového servera. Po úprave bude odpoveď odoslaná späť na firewall, ktorý ju prepošle späť klientovi.

Ak chcete povoliť túto funkciu, pridajte pravidlo do POSTROUTING reťazca v tabuľke nat vyhodnocovanej tesne pred odoslaním paketov do siete. Potom porovnajte pakety určené pre náš webový server podľa IP adresy a portu:

Po zavedení tohto pravidla by mal byť náš webový server prístupný zadaním verejnej adresy nášho firewallu do webového prehliadača:

Uvidíte výstup:

Nginx Output2

Naše nastavenie presmerovania portov je dokončené.

Úprava trvalej sady pravidiel

Po dokončení nastavenia presmerovania portov ho uložíme do našej trvalej sady pravidiel. Ak chcete zachovať komentáre v aktuálnej sade pravidiel, použite službu iptables-persistent na uloženie vašich pravidiel:

Môžete ho tiež otvoriť a upraviť manuálne, aby ste zachovali komentáre vo vašom súbore:

Ďalej nakonfigurujte tabuľku filter a tabuľku nat na pridanie pravidiel pre reťazec FORWARD a ROUTING pravidiel. Úprava tabuľky nat nám umožní pridať pravidlá PREROUTING a POSTROUTING , ako je znázornené v príklade nižšie:

Po pridaní vyššie uvedených hodnôt súbor uložte a zatvorte. Potom zadajte nasledujúci príkaz na otestovanie syntaxe vašich pravidiel:

Ak nevidíte žiadne chyby, načítajte sadu pravidiel:

Overme si, či je náš webový server stále prístupný cez verejnú IP adresu vášho firewallu:

Záver

Na konci tohto návodu by ste mali bez problémov zvládať presmerovanie portov na Linuxovom serveri pomocou iptables. Môžete využiť možnosti presmerovania portov na maskovanie topológie vašej súkromnej siete a zároveň zefektívniť prevádzku služieb tak, aby voľne prechádzala cez váš bránový firewall.

Keďže tento proces závisí výlučne od bezpečnosti vašej siete a použitých portov, je bezpečný. Ak vo svojej sieti nemáte bezpečnostný firewall alebo zabezpečenie VPN, môže existovať riziko. Preto sa odporúča nakonfigurovať firewall tak, ako je popísané v tomto návode. Dúfame, že vám táto príručka pomôže zostať v bezpečí na internete pri používaní vašej súkromnej siete.

Ak chcete preskúmať ďalšie riešenia firewallu, ktoré môžete implementovať vo svojom systéme, pozrite si tieto zdroje z nášho blogu:

Príjemnú prácu s počítačom!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.