_Jc_
15-12-2003, 12:32
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 :D
#!/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:"
#
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 :D
#!/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:"
#