Securizarea rețelei dvs. cu Iptables - Proxy - NAT - IDS: PARTEA 2

În posta anterioară Am văzut configurația IPTables pentru a funcționa ca un firewall. Acum putem vedea cum să creăm aceste scripturi, astfel încât regulile să fie executate automat la pornirea sistemului și, de asemenea, cum putem elimina sau opri aceste reguli pentru o clipă.

Înainte de a face scenariul și de a vă arăta cum arată, să vorbim puțin despre NAT și despre conceptul a ceea ce vrem să facem cu acest echipament.

NAT și contextul exemplului.

Când vorbim despre NAT, putem confunda acest lucru cu rutare, deoarece ambele sunt responsabile de conectarea a două rețele diferite între ele. Adevărata diferență este că rutare se aplică pentru a trece de la o rețea locală la alta, iar această altă rețea se poate conecta la un router și poate ieși la Internet.

În timp ce, atunci când vorbim despre NAT, vorbim despre rutarea pachetelor dintr-o rețea locală sau privată către o rețea publică sau Internet. Face acest lucru mascând pachetele prin plasarea IP-ului public cu care merge pe Internet. Cu alte cuvinte, nu avem nevoie de un router, deoarece IP-ul public este deținut direct de computerul GNU / Linux.

nat

Vom lucra cu sloganul că folosim Linux-ul nostru ca router / firewall pentru a ieși pe internet dintr-o rețea locală. Dar aici pot apărea două scenarii.

  • Că Linux-ul nostru se află între routerul furnizorului de servicii și rețeaua locală.

În acest caz, între router și Linux-ul nostru ar exista o rețea, iar între Linux și rețeaua locală ar exista o altă rețea diferită. Aceasta înseamnă că routerul nostru nu ar trebui să facă NAT ca atare, cu o rutare simplă a traficului, așa cum este explicat în posta anterioară Ar fi bine.

  • Că Linux-ul nostru are o interfață conectată la rețeaua locală și prin cealaltă interfață primește direct un IP public cu care navighează.

Aceasta înseamnă că Linux-ul nostru trebuie să facă NAT, astfel încât pachetele să poată ajunge pe Internet.

Atunci, în scopul acestui mic laborator, vom spune că Linux-ul nostru primește direct un IP public și astfel vom putea testa efectele NAT.

Pentru a face NAT folosim apoi sintaxa

 iptables -t nat -A POSTROUTING -O eth1 -j MASCHERADE

Unde eth1 este interfața unde primim IP-ul public, adică unde mergem la Internet.

MASQUERADE este utilizat atunci când IP-ul este public, dar poate varia în timp (dinamic). În caz contrar, putem folosi ip-ul SNAT-to-source

Crearea scriptului iptables

Să presupunem că: 172.26.0.0 este rețeaua noastră locală și 81.2.3.4 este IP-ul public cu care mergem pe internet. (este un ip static). Am interfețele eth0 (rețea locală)

eth1 (Rețea publică).

Practic, constă în crearea unui script care poate fi apelat din /etc/init.d/firestop (de exemplu). și din acest script putem începe, opri sau verifica starea configurației noastre, la fel cum facem cu orice daemon de sistem.

Să presupunem că regulile mele IPTABLES SUNT:

#! / bin / bash # Paravan de protecție al casei mele. # Numele fișierului / etc / firewall_on # De Jlcmux Twitter: @Jlcmux # # Politica de bază. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT pentru a partaja Internetul de la eth0 la eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT - la sursă 81.2.3.4
# # Permiteți conexiunile de intrare inițiate de iptables -O state FORWARD -m state --stable STABILIT, RELATAT -j ACCEPT # # Autorizat iptables de trafic de ieșire-A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Să nu uităm să acordăm permisiuni de execuție

Explicaţie:

Scenariul face practic următoarele:

  1. Mai întâi restricționați toate navigația, conexiunile și traficul. (Politici de bază pentru firewall)
  2. Apoi creați NAT cu eth1 de destinație. indicând faptul că avem un IP public static "81.2.3.4"
  3. Deschide porturile necesare pentru a primi pachetele de conexiuni inițiate de mine.
  4. Acceptă trafic HTTP, HTTPS și DNS de ieșire.
Regulile sunt destinate traficului FORWARD deoarece ne folosim Linux-ul ca router, deci politicile sunt folosite pentru traficul care TRECE PRIN Linux, adică acționează ca intermediar. Acest lucru înseamnă că Linux-ul nostru nu poate naviga cu adevărat sau nu poate primi niciun fel de date direct. Se aplică numai computerelor conectate la acesta, dar nu și la sine

Dacă am dori să ne folosim echipamentul pentru a naviga, ar trebui să repetăm ​​liniile și să schimbăm FORWARD la INPUT sau OUTPUT, după caz.

Anulați scriptul.

Acum vom crea un script care suprascrie toate cele de mai sus și lasă computerul curat de toate acestea. (În scopuri de testare sau vrem doar să oprim firewall-ul).

#! / bin / bash # Paravan de protecție al casei mele. # Numele fișierului / etc / firewall_off # De Jlcmux Twitter: @Jlcmux # # Ștergerea regulilor iptables -F # # Aplicarea politicilor implicite (tot traficul acceptat) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automatizare.

Acum trebuie să creăm scriptul în interior /etc/init.d/ iar serviciul pornește automat și îl putem gestiona într-un mod mai confortabil.

#! / bin / bash # Paravan de protecție al casei mele. # Numele fișierului /etc/init.d/ firewall # De Jlcmux Twitter: @Jlcmux case $ 1 în start) / etc / firewall_on ;; stop) / etc / firewall_off ;; status) iptables -L ;; *) echo "Sintaxă greșită. Valid = /etc/init.d/ firewall start | stop | status ;; esac

Explicaţie:

Acest ultim scenariu l-am introdus /etc/init.d/ cu denumirea firewall. Deci, dacă vrem să gestionăm firewall-ul, putem folosi comanda /etc/init.d/ firewall start. În același mod îl putem opri sau vedea starea.

Acum vom edita fișierul /etc/rc.local și punem ceva de genul: /etc/init.d/ firewall start pentru a începe cu sistemul.

De asemenea. Aceasta este a doua parte. Sper că vă aduce ceva pentru voi toți. În următoarea vedem Proxy și IDS.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   dhunter el a spus

    Dacă folosiți Debian, există un pachet în repo (iptables-persistent) care face exact acest lucru, eliberează regulile curente în /etc/iptables/rules.v4 sau v6 în funcție de ceea ce utilizați și apoi vi le aplică pentru dvs. când ridicați sistemul.

  2.   OCZ el a spus

    În practică, pentru a curăța configurația unui firewall convențional iptables (și utilizarea NAT nu ar fi așa din punctul meu de vedere), în majoritatea cazurilor ar fi suficientă o reglare și resetarea politicilor implicite la ACCEPT.
    Dar, în teorie, și din câte știu, pe lângă aceasta trebuie să ștergeți șirurile care nu sunt implicite și să resetați contoare. Acțiuni care trebuie luate în considerare că, pe lângă „filtrare”, există și alte tabele (pentru aceasta este obligatoriu să citiți fișierul „/ proc / net / ip_tables_names”).

    Apropo, ortodoxia spune că un firewall trebuie să fie deja activat înainte ca rețeaua să fie activă. Nu știu cum se realizează în celelalte sisteme Linux, dar în tipul Debian scriptul ar putea fi adaptat și setat în directorul „/etc/network/if-pre-up.d/”.

    Firewall bun pentru toată lumea. 😉

  3.   Nautilus el a spus

    Buna ziua, postarea este foarte buna. Am citit cele 2 volume întregi.

    Se așteaptă următorul 🙂

  4.   anonim el a spus

    O întrebare din ignoranța mea, continuăm cu iptables, dar pentru mai multe versiuni de kernel avem nftables, deja testez, întrebările sunt, nftables este ceva beta în ceea ce privește iptables? Vor fi utilizate iptables în continuare mult mai mult timp?

    Mulţumesc.

    1.    yukiteru el a spus

      nftables include toate funcționalitățile iptables, ip6tables, arptables și ebtables, toate folosind o nouă infrastructură atât în ​​kernelspace cât și în spațiul utilizatorilor, care asigură performanțe mai bune și funcționalități îmbunătățite. nftables va înlocui iptables și toate celelalte instrumente menționate, dar nu deocamdată, cel puțin până când nu se utilizează mai mult nftables ca atare.

  5.   Alexander el a spus

    post foarte bun, am vrut să citesc mai multe, deoarece este foarte bine explicat .. salutări mulțumesc contribuție excelentă

  6.   Avrah el a spus

    Salut! Foarte bine ambele post.
    Ca contribuție, ați putea adăuga la final în această parte:

    "Acum vom edita fișierul /etc/rc.local și vom pune ceva de genul: /etc/init.d/firestop start, astfel încât să înceapă cu sistemul."

    Adăugați acest lucru la rc.local.

    dacă [-x /etc/init.d/ firewall]; atunci
    /etc/init.d/ firewall start
    fi

    Ceea ce înseamnă că dacă „firewall” are permisiuni de execuție, executați-l, dacă nu.
    Dacă doriți ca „firewall-ul” să nu pornească, trebuie doar să eliminați permisiunile.

    De exemplu: chmod + x /etc/init.d/ firewall
    să-l facă să ruleze la fiecare pornire sau ...
    chmod -x /etc/init.d/ firewall
    pentru a o dezactiva complet.

    Salutări!