Subversion Repositories ALCASAR

Compare Revisions

Ignore whitespace Rev 603 → Rev 604

/scripts/alcasar-iptables-bypass.sh
3,22 → 3,19
 
# script d'initialisation des regles du parefeu en mode ByPass
# Rexy - 3abtux
# version 2.0 - 12/2010
# changelog :
# + Prise en compte de regles locales
# + prise en compte optionnelle d'un fichier iptables 'personnel' permettant de bloquer certains flux/services
# + suppression du broadcast et du multicast sur les interfaces
# + adaptation dnsmasq
 
private_ip_mask=`grep PRIVATE_IP /usr/local/etc/alcasar-network|cut -d"=" -f2`
private_network=`/bin/ipcalc -n $private_ip_mask|cut -d"=" -f2` # LAN IP address (ie.: 192.168.182.0)
private_prefix=`/bin/ipcalc -p $private_ip_mask|cut -d"=" -f2` # LAN prefix (ie. 24)
 
IPTABLES="/sbin/iptables"
 
EXTIF="eth0"
INTIF="eth1"
PRIVATE_NETWORK_MASK="192.168.182.0/24"
PRIVATE_IP="192.168.182.1"
PRIVATE_NETWORK_MASK=$private_network/$private_prefix # Lan IP address + prefix (192.168.182.0/24)
PRIVATE_IP=`echo $private_ip_mask | cut -d"/" -f1` # ALCASAR LAN IP address
 
# On vide (flush) toutes les règles existantes
# Flush all existing rules
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -F INPUT
26,6 → 23,7
$IPTABLES -F OUTPUT
 
# On indique les politiques par défaut
# Default policies
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
34,25 → 32,24
$IPTABLES -t nat -P OUTPUT ACCEPT
 
# On efface toutes les chaînes qui ne sont pas par défaut dans les tables filter et nat
# Flush non default rules on filter and nat tables
$IPTABLES -X
$IPTABLES -t nat -X
 
# On autorise tout sur loopback
# accept all on loopback
$IPTABLES -A INPUT -i lo -j ACCEPT
 
# on autorise les requêtes dhcp
# accept dhcp
$IPTABLES -A INPUT -i $INTIF -p udp -m udp --sport bootpc --dport bootps -j ACCEPT
 
# Règles d'antispoofing
$IPTABLES -A INPUT -i $INTIF ! -s $PRIVATE_NETWORK_MASK -j ULOG --ulog-prefix "RULE Antispoof1 -- DENY "
$IPTABLES -A INPUT -i $INTIF ! -s $PRIVATE_NETWORK_MASK -j DROP
$IPTABLES -A INPUT -i $EXTIF -s $PRIVATE_NETWORK_MASK -j ULOG --ulog-prefix "RULE Antispoof2 -- DENY "
$IPTABLES -A INPUT -i $EXTIF -s $PRIVATE_NETWORK_MASK -j DROP
 
# On drop le broadcast et le multicasat sur les interfaces (sans Log)
# On drop le broadcast et le multicast sur les interfaces (sans Log)
# Drop broadcast & multicast
$IPTABLES -A INPUT -m addrtype --dst-type BROADCAST,MULTICAST -j DROP
 
# On autorise le ping dans les deux sens (icmp N°0 & 8) en provenance du LAN
# On laisse passer les ICMP echo-request et echo-reply en provenance du LAN
# Allow ping (icmp N°0 & 8) from LAN
$IPTABLES -A INPUT -i $INTIF -s $PRIVATE_NETWORK_MASK -p icmp --icmp-type 0 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF -s $PRIVATE_NETWORK_MASK -p icmp --icmp-type 8 -j ACCEPT
 
61,7 → 58,8
. /usr/local/etc/alcasar-iptables-local.sh
fi
 
# On autorise en FORWARD les connexions déjà établies
# On autorise les retours de connexions légitimes par FORWARD
# Conntrack on forward
$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
 
# On autorise les demandes de connexions sortantes