Crea il tuo firewall con iptables usando questo semplice script parte 2

Firewall_ (rete)

Ciao a tutti, oggi vi porto una seconda parte di questa serie di tutorial sul firewall con iptables, molto semplice in modo da poterlo copiare e incollare, penso che alla fine sia quello che cercano tutti i principianti o anche i più esperti, perché dobbiamo reinventare la ruota 100 volte, giusto?

Questa volta dico loro di cercare di concentrarsi sul caso molto specifico se vogliamo che il nostro firewall sia molto più aggressivo con una politica OUTPUT DROP. Questo post è anche su richiesta di un lettore di questa pagina e del mio post. (Dentro la mia mente Wiiiiiiiiiiiiii)

Parliamo un po 'dei "pro e contro" di stabilire politiche di Output Drop, quello di cui posso parlarti è che rende il lavoro molto più noioso e laborioso, tuttavia il vantaggio è che a livello di rete avrai sicurezza che se ti sedessi Per pensare, progettare e pianificare bene le politiche avrai un server molto più sicuro.

Per non divagare o uscire dall'argomento, ti spiegherò rapidamente con un esempio come dovrebbero essere più o meno le tue regole

iptables -A OUTPUT -o eth0 -p tcp –sport 80 -m state –state ESTABLISHED -j ACCETTA
-A perché abbiamo aggiunto la regola
-o si riferisce al traffico in uscita, quindi l'interfaccia viene posizionata se non specificata perché corrisponde a tutti.
-sport porto di origine, gioca un ruolo importante perché nella maggior parte dei casi non sappiamo da quale porta faranno la richiesta, in tal caso potremmo usare dport
–Dport porta di destinazione, quando sappiamo specificatamente in anticipo che la connessione in uscita deve andare solo su una porta specifica. Deve essere per qualcosa di molto specifico come un server mysql remoto per esempio.
-m stato –state ESTABLISHED Questo è già un ornamento per mantenere le connessioni già stabilite, potremmo approfondirlo in un post futuro
-d per parlare di destinazione, se può essere specificata, ad esempio ssh a una macchina specifica dal suo ip

#!/bin/bash

# Puliamo le tabelle iptables -F iptables -X # Puliamo NAT iptables -t nat -F iptables -t nat -X # mangle table per cose come PPPoE, PPP e ATM iptables -t mangle -F iptables -t mangle -X # Politiche Penso che questo sia il modo migliore per i principianti e # ancora non male, spiegherò tutto l'output (output) perché sono connessioni in uscita #, input scartiamo tutto e nessun server dovrebbe inoltrare. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Mantieni lo stato. Tutto ciò che è già connesso (stabilito) lo lasciamo come questo iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
# Dispositivo loop. iptables -A INPUT -i lo -j ACCETTA
# Iptables loopback output -A OUTPUT -o lo -j ACCEPT

# http, https, non specifichiamo l'interfaccia perché # vogliamo che sia tutta iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# partenza
# http, https, non specifichiamo l'interfaccia perché
# vogliamo che sia per tutti ma se specifichiamo la porta di output
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

# ssh solo internamente e da questo intervallo di iptables di ip -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPT
# output # ssh solo internamente e da questo intervallo di ip
iptables -A OUTPUT -p tcp -d 192.168.xx / 24 -o $ intranet --sport 7659 -j ACCETTA
# monitoraggio per esempio se hanno zabbix o qualche altro servizio snmp iptables -A INPUT -p tcp -s 192.168.1.1 -i $ intranet --dport 10050 -j ACCEPT
# partenza
# monitoraggio, ad esempio, se hanno zabbix o qualche altro servizio snmp
iptables -A OUTPUT -p tcp -d 192.168.1.1 -o $ intranet --dport 10050 -j ACCETTA

# icmp, ping bene è una tua decisione iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranet -j ACCETTA
# partenza
# icmp, il ping è una tua decisione
iptables -A OUTPUT -p icmp -d 192.168.xx / 24 -o $ intranet -j ACCETTA

#mysql con postgres è la porta 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT
# output - domanda posta anche da un utente per creare un server di regole # molto specifico: 192.168.1.2 mysql: 192.168.1.3
#mysql con postgres è la porta 5432
iptables -A OUTPUT -p tcp -s 192.168.1.2 -d 192.168.1.3 --dport 3306 -o $ intranet -j ACCETTA

#sendmail bueeeh se vuoi inviare un po 'di posta #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # IP server - il vero IP wan del tuo server LAN_RANGE = "192.168.xx / 21" # Intervallo LAN della tua rete o degli IP vlan # che non dovrebbero mai entrare nell'extranet, è usare un po 'di logica # se abbiamo un'interfaccia puramente WAN, non dovrebbe mai entrare # traffico Tipo LAN tramite tale interfaccia 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" # Azione predefinita - da eseguire quando una regola corrisponde ad ACTION = " DROP "# Pacchetti con lo stesso ip del mio server tramite iptables wan -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ AZIONE

# Pacchetti con il range LAN per il wan, lo metto così nel caso tu abbia # una rete particolare, ma questo è ridondante con la seguente regola # all'interno del ciclo "for" iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ AZIONE
iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION

## Tutte le reti SPOOF non consentite da wan per ip in $ SPOOF_IPS do iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ ip -j $ AZIONE
fatto

Nella prossima revisione faremo gamma di porte e stabiliremo anche politiche organizzate per nome, tra le altre cose ... Attendo i vostri commenti e richieste.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.