Natrag na blog

Preusmjeravanje portova pomoću Iptables u Linuxu: Vodič

Preusmjeravanje portova pomoću Iptables u Linuxu: Vodič

Prosljeđivanje portova, također poznato kao mapiranje portova, metoda je koja omogućuje udaljenim uređajima povezivanje s određenom uslugom unutar vaše privatne lokalne mreže (LAN). Kao što sam naziv sugerira, postupak uključuje prosljeđivanje zahtjeva za određeni port na drugi port ili mrežu. On mijenja odredište paketa u letu i smatra se vrstom operacije prevođenja mrežnih adresa (NAT) operacije.

Omogućivanje prosljeđivanja portova omogućuje onim uređajima ili poslužiteljima koji nisu povezani s internom mrežom da pristupe jedni drugima, što je inače ograničeno kada je onemogućeno. Možete iskoristiti prednosti prosljeđivanja portova za blokiranje ciljanih web stranica, nadogradnju sigurnosti i dodavanje zaobilaznice oko NAT vatrozida prema vlastitom nahođenju.

U ovom vodiču, provest ćemo vas kroz korake prosljeđivanja portova pomoću iptables u Linuxu.

Preduvjeti

Kako biste pratili ovaj vodič, trebat će vam:

Pojedinosti o poslužitelju

Prvo moramo znati pojedinosti o sučeljima i adresama radnih poslužitelja. Provjerimo mrežna sučelja našeg sustava:

Vidjet ćete izlaz:

Ovdje istaknuti izlaz prikazuje dva sučelja, prvo eth0 dodijeljeno adresi 192.51.100.45, a drugo eth1 dodijeljeno adresi 192.168.1.5. Od ova dva sučelja, jedno je javno, a drugo privatno. Pokrenut ćemo naredbu kako bismo ih razlikovali i otkrili javno sučelje, ono povezano s vašim zadanim mrežnim prolazom. Za razlikovanje upišite:

Vidjet ćete izlaz:

Lažni podaci za vodič

Tijekom ovog vodiča koristit ćemo lažne adrese i dodjele sučelja. Slobodni ste koristiti ove podatke ili ih zamijeniti, prema vlastitom nahođenju.

Mrežni detalji web poslužitelja:

  • Javna IP adresa: 203.0.113.2

  • Privatna IP adresa: 192.0.2.2

  • Javno sučelje: eth0

  • Privatno sučelje: eth1

Mrežni detalji vatrozida:

  • Javna IP adresa: 203.0.113.15

  • Privatna IP adresa: 192.0.2.15

  • Javno sučelje: eth0

  • Privatno sučelje: eth1

Postavljanje web poslužitelja

Započnimo s našim web poslužiteljem. Prvo se prijavite sa svojim sudo korisnikom.

Instalacija Nginxa

Prvo ćemo instalirati Nginx na našem web poslužitelju i zaključati ga tako da sluša samo svoje privatno sučelje. To će omogućiti da naš web poslužitelj bude dostupan samo ako smo ispravno postavili prosljeđivanje portova.

Zatim ažurirajte lokalnu predmemoriju paketa i upotrijebite apt za preuzimanje i instalaciju Nginxa:

Dodavanje ograničenja

Nakon što instaliramo Nginx na naš web poslužitelj, zaključat ćemo ga kako bismo osigurali da prihvaća unose samo s privatnih sučelja i nigdje drugdje. Također, to će osigurati da naši web poslužitelji budu aktivni samo ako je postavka prosljeđivanja portova ispravna.

Za dodavanje ograničenja, otvorite zadanu konfiguracijsku datoteku bloka poslužitelja /etc/nginx/sites-enabled/default u bilo kojem uređivaču teksta po vašem izboru (ovdje koristimo uređivač teksta nano) i upišite:

U izlazu ćete vidjeti da se direktiva listen pojavljuje dvaput:

Port Forwarding Nginx Default File

U ovom vodiču koristimo prvu direktivu za prikaz prosljeđivanja IPv4. Druga, koja je konfigurirana za IPv6, može se ukloniti. Dodajte privatnu IP adresu svog web poslužitelja s dvotočkom ispred 80 kako biste obavijestili Nginx da prima unose samo s privatnog sučelja. Zatim uredite direktivu:

Port Forwarding Nginx Edited Default File

Kada završite, spremite i zatvorite datoteku. Prije nego što nastavite, provjerite ima li sintaktičkih pogrešaka. Testirajmo datoteku:

Nginx T

Ako se ne prikaže nikakva pogreška, možete ponovno pokrenuti Nginx i omogućiti novu konfiguraciju:

Provjera mrežnog ograničenja

Provjerimo razinu pristupa koju imamo našem web poslužitelju. Pokušajte pristupiti web poslužitelju putem privatnog sučelja pomoću naredbe curl naredbe:

Vidjet ćete izlaz:

Port Forwarding Nginx Output1

Ako pokušamo koristiti javno sučelje, nećemo se moći povezati:

To je upravo ono što smo očekivali.

Konfigurirajte vatrozid za prosljeđivanje porta 80

Nastavimo s radom na implementaciji prosljeđivanja portova na našem vatrozidu.

Omogućite prosljeđivanje u jezgri

Prema zadanim postavkama, većina sustava ima isključeno prosljeđivanje portova. Unijet ćemo izmjene kako bismo uključili prosljeđivanje portova s nekoliko uređivanja. Također, postoji opcija trajnog uključivanja prosljeđivanja portova pomoću sudo privilegija kao što je prikazano u sljedećim koracima.

Za uključivanje prosljeđivanja prometa na razini jezgre, upišite:

Za trajno uključivanje prosljeđivanja portova, uredite datoteku /etc/sysctl.conf datoteku. Otvorite datoteku s sudo privilegijama i upišite:

Unutra pronađite i odkomentirajte redak koji izgleda ovako:

Kada završite, spremite i zatvorite datoteku. Zatim upotrijebite naredbe sysctl kako biste primijenili promjene u postavkama kako bi stupile na snagu:

Osnovno postavljanje vatrozida

Prvo prođite kroz vodič o tome kako postaviti osnovni vatrozid na svom računalu. Po završetku ćete imati:

  • Instaliran iptables-persistent
  • Spremljen zadani skup pravila u /etc/iptables/rules.v4
  • Sveobuhvatno znanje o dodavanju i izmjeni pravila pomoću naredbe iptables naredbe

Također, možete pogledati kako izlistati i izbrisati pravila vatrozida iptables.

Dodavanje pravila prosljeđivanja

Konfigurirat ćemo naš vatrozid kako bismo osigurali da se promet koji ulazi u naše javno sučelje ( eth0 ) na portu 80 prosljeđuje na naše privatno sučelje ( eth1). Prema zadanim postavkama, naš osnovni vatrozid ima lanac FORWARD postavljen na DROP promet. Dodavanje pravila vatrozida omogućit će prosljeđivanje veza na naš web poslužitelj. Radi dodatne sigurnosti, zaključat ćemo pravila vatrozida kako bismo dopustili samo prosljeđivanje zahtjeva.

U lancu FORWARD prihvatit ćemo nove veze namijenjene portu 80 koje dolaze s našeg javnog sučelja i idu prema našem privatnom sučelju. Identificirat ćemo nove veze uz pomoć proširenja conntrack i predstaviti ih TCP SYN paketom:

Morate dopustiti sav naknadni promet u oba smjera koji proizlazi iz dolazne veze. Upišite naredbe u nastavku kako biste dopustili promet ESTABLISHED i RELATED između naših javnih i privatnih sučelja:

Provjerimo je li naša politika na lancu FORWARD postavljena na DROP:

Do sada smo dodali nekoliko pravila koja omogućuju prolazak prometa između naših javnih i privatnih sučelja kroz naš vatrozid. Međutim, iptables još nije obaviješten da usmjerava promet jer konfiguracija pravila vatrozida još nije dovršena. U sljedećim koracima dodati ćemo NAT pravila i prilagoditi trajni skup pravila za usmjeravanje prometa.

Dodavanje NAT pravila za usmjeravanje paketa

Izvršit ćemo dvije odvojene operacije kako bi iptables ispravno izmijenio pakete i pojednostavio komunikaciju s klijentima i web poslužiteljem.

DNAT je prva operacija koja započinje PREROUTING lanac tablice nat . Ova operacija mijenja odredišnu adresu paketa i omogućuje njegovo ispravno usmjeravanje pri prolasku između mreža. Međutim, klijenti na javnoj mreži spajat će se na naš poslužitelj vatrozida i neće imati informacije o topologiji naše privatne mreže. Za prijenos informacija s privatnom mrežom, promijenite odredišnu adresu svakog paketa kako biste mu omogućili da ispravno stigne do našeg odredišnog web poslužitelja.

Ključno je napomenuti da se fokusiramo na konfiguraciju prosljeđivanja portova. Izvođenje NAT-a na svakom paketu koji pogodi vatrozid nije dio našeg vodiča. Podudarat ćemo pakete na portu 80 s privatnom IP adresom našeg web poslužitelja:

Paket će biti ispravno usmjeren na naš web poslužitelj koji sadrži izvornu adresu klijenta kao izvornu adresu. Unatoč pokušajima poslužitelja da pošalje odgovor izravno na tu adresu, neće biti moguće uspostaviti legitimnu TCP vezu.

Za konfiguraciju ispravnog usmjeravanja, modificirat ćemo izvornu adresu paketa. Uredimo izvornu adresu na privatnu IP adresu našeg poslužitelja vatrozida. Nakon izmjene, odgovor će biti poslan natrag vatrozidu, koji će ga proslijediti natrag klijentu.

Kako biste omogućili ovu funkcionalnost, dodajte pravilo u POSTROUTING lanac tablice nat koja se procjenjuje neposredno prije slanja paketa na mrežu. Zatim podudarite pakete namijenjene našem web poslužitelju prema IP adresi i portu:

Nakon što se ovo pravilo uspostavi, naš bi web poslužitelj trebao biti dostupan usmjeravanjem našeg web preglednika na javnu adresu našeg vatrozida:

Vidjet ćete izlaz:

Nginx Output2

Naša konfiguracija prosljeđivanja portova je dovršena.

Prilagodite trajni skup pravila

Nakon dovršetka konfiguracije prosljeđivanja portova, spremit ćemo ovo u naš trajni skup pravila. Ako želite zadržati komentare u trenutnom skupu pravila, upotrijebite uslugu iptables-persistent za spremanje vaših pravila:

Također ga možete otvoriti i ručno urediti kako biste zadržali komentare u svojoj datoteci:

Zatim konfigurirajte tablicu filter i tablicu nat kako biste dodali pravila lanca FORWARD odnosno pravila ROUTING . Prilagodba tablice nat omogućit će nam dodavanje pravila PREROUTING i POSTROUTING kao što je prikazano u primjeru u nastavku:

Nakon dodavanja gornjih vrijednosti, spremite i zatvorite datoteku. Zatim upišite naredbu u nastavku kako biste testirali sintaksu svojih pravila:

Ako ne vidite pogreške, učitajte skup pravila:

Provjerimo je li naš web poslužitelj i dalje dostupan putem javne IP adrese vašeg vatrozida:

Zaključak

Do kraja ovog vodiča trebali biste se osjećati ugodno s prosljeđivanjem portova na Linux poslužitelju pomoću iptables. Možete iskoristiti mogućnosti prosljeđivanja portova kako biste prikrili topologiju svoje privatne mreže dok istovremeno usmjeravate promet usluga da slobodno teče kroz vaš mrežni prolaz vatrozida.

Budući da se proces izričito oslanja na sigurnost vaše mreže i korištene portove, siguran je. Može postojati mogućnost rizika ako nemate sigurnosni vatrozid ili VPN sigurnost na svojoj mreži. Stoga je preporučljivo konfigurirati vatrozid kako je opisano u ovom vodiču. Nadamo se da će vam ovaj vodič pomoći da ostanete sigurni na internetu kada koristite svoju privatnu mrežu.

Kako biste dodatno istražili više rješenja za vatrozid koja možete implementirati na svom sustavu, pogledajte ove resurse s našeg bloga:

Ugodan rad na računalu!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.