_Jc_
04-04-2003, 11:24
Io e miei amici abbiamo cercato di creare uno script per farci un piccolo firewall casalingo con una macchina dedicata ad esso, e prendendo spunto da varie guide abbiamo realizzato questo piccolo script che pubblichiamo qui per farlo correggere e sperando che possa servire anche ad altri. :)
ilsensine che dici mi correggi il compitino :D ?
#!/bin/sh
#
## ========== IMPOSTAZIONE VARIABILI ========== ##
#
ipt="/sbin/iptables"
echo="/bin/echo"
lan=192.168.0.0/24
red=eth1
green=eth0
#
## ========== 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 IPFORWARDING ========== ##
#
# 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 ========== ##
#
# 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
#
# 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
$ipt -A FORWARD -d $lan -p tcp --sport 53 -j ACCEPT
$ipt -A FORWARD -d $lan -p udp --sport 53 -j ACCEPT
#
# ABILITA HTTP (80), HTTPS (443), PROXY (8080)
$ipt -A FORWARD -s $lan -p tcp --dport 80 -j ACCEPT
$ipt -A FORWARD -d $lan -p tcp --sport 80 -j ACCEPT
$ipt -A FORWARD -s $lan -p tcp --dport 8080 -j ACCEPT
$ipt -A FORWARD -d $lan -p tcp --sport 8080 -j ACCEPT
$ipt -A FORWARD -s $lan -p tcp --sport 443 -j ACCEPT
$ipt -A FORWARD -d $lan -p tcp --sport 443 -j ACCEPT
#
# ABILITA SMTP (25)
$ipt -A FORWARD -s $lan -p tcp --dport 25 -j ACCEPT
$ipt -A FORWARD -d $lan -p tcp --sport 25 -j ACCEPT
#
# ABILITA POP3 (110)
$ipt -A FORWARD -s $lan -p tcp --dport 110 -j ACCEPT
$ipt -A FORWARD -d $lan -p tcp --sport 110 -j ACCEPT
#
# BLOCCA TUTTI I PACCHETTI IN TRANSITO CHE NON SODDISFANO LE REGOLE
$ipt -A FORWARD -j DROP
#
# ABILITO L'IP FORWARD
$echo "1" > /proc/sys/net/ipv4/ip_forward
#
#
#
## ========== REGOLE DA VERIFICARE ========== ##
#
# $ipt -A FORWARD -d $lan -p icmp ! --icmp-type echo-request -j ACCEPT
# $ipt -A FORWARD -d $lan -p icmp ! --icmp-type time-exceeded -j ACCEPT
#iptables -N syn-flood
#iptables -A INPUT -i $red -p tcp syn -j syn-flood
#iptables -A syn-flood -m limit limit 1/s limit-burst 4 -j RETURN
#iptables -A syn-flood -j DROP
#iptables -A FORWARD -d $lan -p icmp -j ACCEPT
ilsensine che dici mi correggi il compitino :D ?
#!/bin/sh
#
## ========== IMPOSTAZIONE VARIABILI ========== ##
#
ipt="/sbin/iptables"
echo="/bin/echo"
lan=192.168.0.0/24
red=eth1
green=eth0
#
## ========== 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 IPFORWARDING ========== ##
#
# 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 ========== ##
#
# 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
#
# 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
$ipt -A FORWARD -d $lan -p tcp --sport 53 -j ACCEPT
$ipt -A FORWARD -d $lan -p udp --sport 53 -j ACCEPT
#
# ABILITA HTTP (80), HTTPS (443), PROXY (8080)
$ipt -A FORWARD -s $lan -p tcp --dport 80 -j ACCEPT
$ipt -A FORWARD -d $lan -p tcp --sport 80 -j ACCEPT
$ipt -A FORWARD -s $lan -p tcp --dport 8080 -j ACCEPT
$ipt -A FORWARD -d $lan -p tcp --sport 8080 -j ACCEPT
$ipt -A FORWARD -s $lan -p tcp --sport 443 -j ACCEPT
$ipt -A FORWARD -d $lan -p tcp --sport 443 -j ACCEPT
#
# ABILITA SMTP (25)
$ipt -A FORWARD -s $lan -p tcp --dport 25 -j ACCEPT
$ipt -A FORWARD -d $lan -p tcp --sport 25 -j ACCEPT
#
# ABILITA POP3 (110)
$ipt -A FORWARD -s $lan -p tcp --dport 110 -j ACCEPT
$ipt -A FORWARD -d $lan -p tcp --sport 110 -j ACCEPT
#
# BLOCCA TUTTI I PACCHETTI IN TRANSITO CHE NON SODDISFANO LE REGOLE
$ipt -A FORWARD -j DROP
#
# ABILITO L'IP FORWARD
$echo "1" > /proc/sys/net/ipv4/ip_forward
#
#
#
## ========== REGOLE DA VERIFICARE ========== ##
#
# $ipt -A FORWARD -d $lan -p icmp ! --icmp-type echo-request -j ACCEPT
# $ipt -A FORWARD -d $lan -p icmp ! --icmp-type time-exceeded -j ACCEPT
#iptables -N syn-flood
#iptables -A INPUT -i $red -p tcp syn -j syn-flood
#iptables -A syn-flood -m limit limit 1/s limit-burst 4 -j RETURN
#iptables -A syn-flood -j DROP
#iptables -A FORWARD -d $lan -p icmp -j ACCEPT