|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2000
Città: Trana (Torino)
Messaggi: 141
|
Script Generico per Firewall per LAN
Dopo varie difficolta (almeno per me ed il mio amico) siamo riusciti a produrre questo script per firewall da usare in piccole lan su una macchina a se stante.
Lo pubblico in modo che tutti volendo lo possano utilizzare ma sopratutto anche per cercare una conferma da quegli utenti che ne capiscono più di me Sopratutto non mi piace molto come abbiamo creato le regoler per l'ftp mi sembra di aprire troppe porte ma se non faccio così (almeno per quello che ne so io...) l'ftp mi da grossi problemi Ciao e grazie a tutti P.S. Linux Rulez x sempre ![]() #!/bin/sh # ## ========== IMPOSTAZIONE VARIABILI ========== ## # ipt="/usr/sbin/iptables" echo="/bin/echo" lan=10.10.5.0/24 red=eth0 green=eth1 # # =========== CARICAMENTO MODULI FTP ======== ## modprobe ip_conntrack modprobe ip_nat_ftp ## ========== PULIZIA DELLE CATENE ========== ## # # RESET DELLE REGOLE INPUT, OUTPUT, FORWARD $ipt -F # # DELETE DELLE CATENE CREATE DALL'UTENTE $ipt -X # # RESET DEI CONTATORI $ipt -Z # # RESET DELLE TABELLE DI MANGLE E DI NAT $ipt -t mangle -F $ipt -t nat -F # ## ========== SETTAGGI DELLE REGOLE DI DEFAULT ========== ## # $ipt -P INPUT DROP $ipt -P OUTPUT DROP $ipt -P FORWARD DROP # ## ========== SETTAGGI DI IP FORWARDING ========== ## # # DISABILITA L'IP FORWARDING $echo "0" > /proc/sys/net/ipv4/ip_forward # # DISABILITA TUTTI GLI ECHO ICMP $echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all # # DISABILITA GLI ECHO BROADCAST ICMP $echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # # IMPOSTA LA PROTEZIONE CONTRO ATTACCHI SPOOFING $echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses $echo "1" > /proc/sys/net/ipv4/tcp_syncookies $echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter # # ABILITA IL LOG IN /var/log/messages DEI PACCHETTI MALFORMATI E LI SCARTA AUTOMATICAMENTE $echo "1" > /proc/sys/net/ipv4/conf/all/log_martians $echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route $echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects # ## ========== SETTAGGI NAT ========== ## # # ABILITA IL MASCHERAMENTO DEGLI INDIRIZZI LAN $ipt -t nat -A POSTROUTING -s $lan -j MASQUERADE # ## ========== SETTAGGI PERSONALIZZAZIONE FIREWALL ========== ## # #PROTESIONE DAGLI ATTACCHI DoS $ipt -N syn-flood $ipt -A INPUT -i $red -p tcp --syn -j syn-flood $ipt -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN $ipt -A syn-flood -j DROP # # SCARTO DEI PACCHETTI MALFORMATI $ipt -A INPUT -m unclean -j DROP # # ABILITA LA CONNESSIONE SSH LATO LAN $ipt -A INPUT -s $lan -i $green -p tcp --dport 22 -j ACCEPT $ipt -A OUTPUT -d $lan -o $green -p tcp --sport 22 -j ACCEPT # # SCARTA I PACCHETTI DESTINATI AL FIREWALL PROVENIENTI DALLA WAN $ipt -A INPUT -i $red -j DROP # # BLOCCA I PACCHETTI IN USCITA DAL FIREWALL LATO WAN $ipt -A OUTPUT -o $red -j DROP # # $ipt -A FORWARD -j LOG --log-prefix="FORWARD:" # # # ACCETTA IN FORWARD SOLO PACCHETTI PROVENIENTI DA CONNESSIONI GIA' STABILITE $ipt -A FORWARD -d $lan -m state --state ESTABLISH,RELATED -j ACCEPT # # ABILITA DNS (53) $ipt -A FORWARD -s $lan -p tcp --dport 53 -j ACCEPT $ipt -A FORWARD -s $lan -p udp --dport 53 -j ACCEPT # # ABILITA HTTP (80), HTTPS (443), PROXY (8080), FTP (20,21) $ipt -A FORWARD -s $lan -p tcp --dport 80 -j ACCEPT $ipt -A FORWARD -s $lan -p tcp --dport 8080 -j ACCEPT $ipt -A FORWARD -s $lan -p tcp --dport 443 -j ACCEPT #$ipt -A FORWARD -p tcp --dport 20 -i $red -j ACCEPT $ipt -A FORWARD -s $lan -p tcp --dport 21 -j ACCEPT $ipt -A FORWARD -s $lan -p tcp --dport 20 -j ACCEPT #$ipt -A FORWARD -s $red -p tcp ! --syn --sport ftp -j ACCEPT $ipt -A FORWARD -s $lan -p tcp --sport 1024: --dport ftp -j ACCEPT $ipt -A FORWARD -s $lan -p tcp --sport 1024: --dport ftp-data -j ACCEPT $ipt -A FORWARD -s $lan -p tcp --sport 1024: -j ACCEPT # ABILITA SMTP (25) $ipt -A FORWARD -s $lan -p tcp --dport 25 -j ACCEPT # # ABILITA POP3 (110) $ipt -A FORWARD -s $lan -p tcp --dport 110 -j ACCEPT # # # LOG $ipt -A FORWARD -p tcp -m state --state NEW -j LOG --log-prefix "{Nuove connessioni}--> " # $ipt -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "{Nuove senza syn}--> " # # BLOCCA TUTTI I PACCHETTI IN TRANSITO CHE NON SODDISFANO LE REGOLE $ipt -A FORWARD -j DROP # # ABILITA L'IP FORWARD $echo "1" > /proc/sys/net/ipv4/ip_forward # # ## ========== SETTAGGI LOG FIREWALL ========== ## # #$ipt -A FORWARD -j LOG --log-prefix="FORWARD:" # |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 1999
Messaggi: 3780
|
io mettererei
# DISABILITA L'IP FORWARDING $echo "0" > /proc/sys/net/ipv4/ip_forward come default di boot non ha senso che un firewall si avvi con IP forward abilitato , quando non ha ancora configurato le catene. Se vuoi tenere questa istruzione nello script mettila come prima istruzione. Attulmente il tuo script ha un buco in quanto in avvio hai una situazione indefinita , poi fai il flush delle policy e DOPO blocchi l' ip-forward. In pratica tra l'inizio dello script e l'istruzione che disattiva l' IP-forward puo' succedere di tutto |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Apr 2001
Città: Perugia
Messaggi: 246
|
Quote:
Come mai metti un: # BLOCCA TUTTI I PACCHETTI IN TRANSITO CHE NON SODDISFANO LE REGOLE $ipt -A FORWARD -j DROP se hai gia` cambiato la policy di FORWARD in DROP? Non e` superfluo? Poi le catene create dall'utente, se ci fossero, andrebbero prima svuotate e poi cancellate altrimenti non le cancella! Cia`
__________________
-> http://zod.oziosi.org -> KeyID: DC9F030F at pgp.mit.edu "E` impossibile godere a fondo l'ozio se non si ha una quantita` di lavoro da fare..." Ultima modifica di ZoD : 17-12-2003 alle 08:50. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:00.