Creați propriul firewall cu iptables folosind acest script simplu partea 2

Firewall_ (rețea)

Bună ziua tuturor, astăzi vă aduc a doua parte a acestei serii de tutoriale pe firewall cu iptables, foarte simplă, astfel încât să puteți copia și lipi, cred că la sfârșitul zilei este ceea ce caută toți începătorii sau chiar cel mai cu experiență, de ce trebuie să reinventăm roata de 100 de ori, nu?

De data aceasta le spun să încerce să se concentreze asupra cazului specific dacă vrem ca paravanul nostru de protecție să fie mult mai agresiv cu o politică OUTPUT DROP. Această postare este, de asemenea, la cererea unui cititor al acestor pagini și a postărilor mele. (În mintea mea Wiiiiiiiiiiiiii)

Să vorbim puțin despre „avantajele și dezavantajele” stabilirii politicilor Output Drop, cel despre care vă pot spune este că face treaba mult mai plictisitoare și mai laborioasă, cu toate acestea, pro este că la nivelul rețelei veți avea securitate decât dacă te-ai așeza Pentru a gândi, proiecta și planifica bine politicile, vei avea un server mult mai sigur.

Pentru a nu fugi sau a ieși din subiect, am să-ți explic rapid cu un exemplu cum regulile tale ar trebui să fie mai mult sau mai puțin

iptables -A OUTPUT -o eth0 -p tcp –sport 80 -m state –stATE STABILIT -j ACCEPT
-A pentru că am adăugat regula
-o se referă la traficul de ieșire, atunci interfața este plasată dacă nu este specificată, deoarece se potrivește cu toate.
-sport portul de origine, joacă un rol important, deoarece în majoritatea cazurilor nu știm din ce port vor face cererea, dacă da, am putea folosi dport
–Dport port de destinație, atunci când știm în prealabil că conexiunea de ieșire trebuie să meargă doar la un anumit port. Trebuie să fie pentru ceva foarte punctual, cum ar fi un server mysql la distanță, de exemplu.
-m state-state STABILIT Aceasta este deja o podoabă a menținerii conexiunilor deja stabilite, am putea să ne adâncim într-un post viitor
-d să vorbim despre destinație, dacă ar putea fi specificată, de exemplu ssh la o anumită mașină prin IP-ul său

#!/bin/bash

# Curățăm tabelele iptables -F iptables -X # Curățăm NAT iptables -t nat -F iptables -t nat -X # tabla mangle pentru lucruri precum PPPoE, PPP și ATM iptables -t mangle -F iptables -t mangle -X # Politici Cred că acesta este cel mai bun mod pentru începători și # încă nu este rău, voi explica ieșirea (ieșirea) toate pentru că sunt conexiuni de ieșire #, intrarea aruncăm totul și niciun server nu ar trebui să redirecționeze. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Keep state. Tot ceea ce este deja conectat (stabilit) îl lăsăm așa iptables -A INPUT -m state --state STABILIT, RELATAT -j ACCEPT
iptables -A OUTPUT -m state --state STABILIT, RELATAT -j ACCEPT
# Dispozitiv buclă. iptables -A INPUT -i lo -j ACCEPT
# Iptables loopback output -A OUTPUT -o lo -j ACCEPT

# http, https, nu specificăm interfața deoarece # vrem să fie toate iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Ieșire
# http, https, nu specificăm interfața deoarece
# vrem să fie pentru toți, dar dacă specificăm portul de ieșire
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

# ssh doar intern și din această gamă de iptables ip -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPT
# output # ssh doar intern și din această gamă de IP-uri
iptables -A OUTPUT -p tcp -d 192.168.xx / 24 -o $ intranet --sport 7659 -j ACCEPT
# monitorizare de exemplu dacă au zabbix sau alt iptables de serviciu snmp -A INPUT -p tcp -s 192.168.1.1 -i $ intranet --dport 10050 -j ACCEPT
# Ieșire
# monitorizare, de exemplu, dacă au zabbix sau alt serviciu snmp
iptables -A OUTPUT -p tcp -d 192.168.1.1 -o $ intranet --dport 10050 -j ACCEPT

# icmp, ping bun este decizia ta iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranet -j ACCEPTĂ
# Ieșire
# icmp, ping bun este decizia ta
iptables -A OUTPUT -p icmp -d 192.168.xx / 24 -o $ intranet -j ACCEPT

#mysql cu postgres este portul 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT
# ieșire - întrebare adresată, de asemenea, de un utilizator pentru a crea un server de regulă foarte specific: 192.168.1.2 mysql: 192.168.1.3
#mysql cu postgres este portul 5432
iptables -A OUTPUT -p tcp -s 192.168.1.2 -d 192.168.1.3 --dport 3306 -o $ intranet -j ACCEPT

#sendmail bueeeh dacă doriți să trimiteți câteva e-mailuri #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # IP server - adevărata ip wan a serverului dvs. LAN_RANGE = "192.168.xx / 21" # Gama LAN a rețelei dvs. sau a # IP-urilor dvs. vlan care nu ar trebui să intre niciodată în extranet, este să folosiți un pic de # logică dacă avem o interfață pur WAN, nu ar trebui niciodată introduceți # tip LAN de trafic prin acea interfață SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16" # Acțiune implicită - care trebuie efectuată atunci când orice regulă se potrivește cu ACTION = "DROP" # Pachete cu același IP ca serverul meu prin iptables wan -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION

# Pachete cu gama LAN pentru wan, am pus-o așa în cazul în care aveți # o anumită rețea, dar aceasta este redundantă cu următoarea regulă # în interiorul buclei "pentru" iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION

## Toate rețelele SPOOF nu sunt permise de WAN pentru ip în $ SPOOF_IPS face iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION
făcut

În următoarea revizuire vom face gama de porturi și vom stabili, de asemenea, politici organizate pe nume, printre altele ... Aștept comentariile și solicitările dumneavoastră.


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.