Cos'e' un firewall ?
Un firewall in ambito informatico è un meccanismo che filtra in una rete le operazioni e comunicazioni ammesse o negate, in pratica cosa può passare o cosa deve fermarsi e non andare oltre.... le possibilità e le esigenze sono infinite, noi prenderemo un caso più che semplice come esempio, senza scendere in dettagli o configurazioni professionali.
Generalmente, o per uso domestico non ne abbiamo particolare bisogno, a meno che non abbiamo un pc collegato in rete con un indirizzo ip pubblico.
Cos'e' un indirizzo ip pubblico ?
vedete il discorso fatto in un post precedente : http://tecnocchio.blogspot.it/2012/03/il-mio-server-internet-personale-perte.html
Il nostro firewall che filtra per funzionare bene deve avere diverse interfacce di rete, una collegata ad una rete, tipo alla nostra rete dei pc e l'altra scheda che va verso internet. In lunux le interfacce di rete ethernet in genere si chiamano eth ed un numero, noi cominciamo ad immaginare che eth0 è la nostra rete interna ed eth1 e la scheda che guarda verso la rete esterna, e che vogliamo proteggerci da ogni eventuale accesso dall'esterno non autorizzato.
Per il nostro scopo suggerisco una distribuzione linux minimale in cui non installiamo l'interfaccia grafica tipo ubuntu-server.
Innanzi tutto andiamo a definire quelli che sono gli indirizzi che hanno le nostre reti:
sudo nano -w /etc/network/interfaces
dovrebbe avere una configurazione simile, ma ovviamente con gli indirizzi adatti alle vostre esigenze
auto lo
iface lo inet loopback
# rete INTERNA
auto eth0
iface eth0 inet static
address 192.168.0.254
netmask 255.255.255.0
# rete ESTERNA
auto eth1
iface eth1 inet static
# indirizzo ip casomai pubblico
address 200.153.19.59
netmask 255.255.255.248
gateway 200.153.19.57
# dopo aver configurato la rete lancia questo script :
post-up /etc/regole_firewall.sh
a questo punto dovremo solo configurare le regole di firewall
sudo nano -w /etc/regole_firewall.sh
#!/bin/bash
# PER INIZIARE CANCELLIAMO TUTTE LE REGOLE ESISTENTI
for table in nat mangle filter
do
/sbin/iptables -t $table -F
/sbin/iptables -t $table -X
/sbin/iptables -t $table -Z
done
#
# DOPO DI CHE CHIUDIAMO TUTTO
#
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
#
# ABILITIAMO QUINDI L' IP Forwarding PER PERMETTERE CHE I DATI ATTRAVERSINO LE RETI
#
echo 1 > /proc/sys/net/ipv4/ip_forward
#
# IGNORA I PING DI BROADCAST
#
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#
# ABILITA rp_filter PER EVITARE IP SPOOFING
#
for a in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $a
done
# ACCETTA LE COMUNICAZIONE CHE SONO DELLE RISPOSTE A CONNESSIONI STABILITE
#
/sbin/iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# QUESTA RIGA PERMETTE DI FARE IL NAT TRA LE DUE RETI, IL NAT È QUELLO CHE IN GENERE FA IL ROUTER, Nat sta per network addres translation
#
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# PERMESSI IN INGRESSO:
# ABILITIAMO L'ACCESSO SSH DALLA RETE INTERNA
/sbin/iptables -t filter -A INPUT -i eth0 -p tcp --dport ssh -j ACCEPT
# PERMESSI IN USCITA :
# QUESTA RIGA PERMETTE AI COMPUTER DELLA RETE INTERNA DI USCIRE PER AGGIORNARE L'ORA
/sbin/iptables -t filter -A OUTPUT -o eth0 -p udp --dport ntp -j ACCEPT
# QUESTA RIGA PERMETTE AI COMPUTER DELLA RETE INTERNA DI ANDARE SULLA RETE ESTERNA SUI DNS DI GOOGLE PER RISOLVCERE I NOMI
/sbin/iptables -t filter -A OUTPUT -o eth1 -d 8.8.8.8 -p udp --dport 53 -j ACCEPT
/sbin/iptables -t filter -A OUTPUT -o eth1 -d 8.8.4.4 -p udp --dport 53 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -d 8.8.8.8 -p udp --dport 53 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -d 8.8.4.4 -p udp --dport 53 -j ACCEPT
# QUESTE RIGHE PERMETTONO AI PC DELLA RETE INTERNA DI ANDARE SULLE PORTE PIÙ COMUNI DELLA RETE ESTERNA, COME IL WEB, LA POSTA...
/sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -p tcp --dport 21 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -p tcp --dport 22 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -p tcp --dport 465 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -p tcp --dport 993 -j ACCEPT /sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -p tcp --dport 995 -j ACCEPT
sudo chmod +x /etc/regole_firewall.sh
Ora è sufficente riavviare e collegare le reti.
Commenti
Posta un commento