Subversion Repositories ALCASAR

Rev

Rev 26 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
1 root 1
#!/bin/sh
26 richard 2
# by rexy (version 1.9 du 12/2009)
1 root 3
 
4
# a voir la relation avec nf_nat_ftp
5
# modprobe ip_conntrack_irc
6
# modprobe ip_conntrack_ftp
7
 
19 franck 8
################## FILTRAGE PARTICULIER ##################
9
# Administration à distance par exemple :
10
##  Autoriser SSH depuis l'extérieur sur le port 12222 ####
11
##  Ne pas oublier la règle de PAT sur le modem/routeur (box ADSL) ! ainsi que l'adresse IP de votre machine distante dans /etc/hosts.allow 
12
# $IPTABLES -A PREROUTING -t nat -i $EXTIF -p tcp --dport 12222 -m state --state NEW -j ULOG --ulog-prefix "RULE Admin2 -- ACCEPT
13
# $IPTABLES -A PREROUTING -t nat -i $EXTIF -p tcp --dport 12222 -j REDIRECT --to-port 22
14
# $IPTABLES -A INPUT -i $EXTIF -p tcp --dport ssh -j ACCEPT
15
##########################################################
16
 
1 root 17
################# FILTRAGE APPLICATIF ####################
18
## Positionnez la variable "FILTERING" du fichier "alcasar-iptables.sh" à "yes" pour activer le filtrage
19
## Modifiez le fichier /usr/local/etc/alcasar-services pour l'adapter à vos besoins
20
if [ $FILTERING = "yes" ]
21
	then
26 richard 22
# si le fichier d'exception est renseigné on le traite 
30 richard 23
	nb_exceptions=`wc -w /usr/local/etc/alcasar-filter-exceptions | cut -d" " -f1`
26 richard 24
	if [ $nb_exceptions != "0" ]
25
		then
26
		while read ip_exception 
27
			do
28
			echo $ip_exception
29
			$IPTABLES -A FORWARD -i $TUNIF -s $ip_exception -m state --state NEW -j ULOG --ulog-prefix "RULE IP-exception -- ACCEPT "
30
			$IPTABLES -A FORWARD -i $TUNIF -s $ip_exception -m state --state NEW,ESTABLISHED -j ACCEPT
30 richard 31
			done < /usr/local/etc/alcasar-filter-exceptions
26 richard 32
		fi
33
# On autorise les protoles non commentés
1 root 34
	while read svc_line
26 richard 35
		do
1 root 36
		svc_on=`echo $svc_line|cut -b1`
37
		if [ $svc_on != "#" ]
38
			then	
39
			svc_name=`echo $svc_line|cut -d" " -f1`
40
			svc_port=`echo $svc_line|cut -d" " -f2`
26 richard 41
			if [ $svc_name = "icmp" ]
1 root 42
				then
26 richard 43
				$IPTABLES -A FORWARD -i $TUNIF -p icmp -j ACCEPT 
44
#			else if [ $svc_name = "ftp-passif" ]
45
#				then
46
#					/sbin/modprobe nf_nat_ftp
47
#					$IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ULOG --ulog-prefix "RULE F_ftp-passifE -- ACCEPT "
48
#					$IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state RELATED -j ULOG --ulog-prefix "RULE F_ftp-passifR -- ACCEPT "
49
#					$IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
50
#				fi
51
			else
52
				$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW -j ULOG --ulog-prefix "RULE F_$svc_name -- ACCEPT "
53
				$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW,ESTABLISHED -j ACCEPT
1 root 54
			fi
55
		fi
56
	done < /usr/local/etc/alcasar-services
57
#tout le reste est bloqué
58
$IPTABLES -A FORWARD -i $TUNIF -p tcp -j REJECT --reject-with tcp-reset
59
$IPTABLES -A FORWARD -i $TUNIF -p udp -j REJECT --reject-with icmp-port-unreachable
60
$IPTABLES -A FORWARD -i $TUNIF -p icmp -j REJECT 
61
fi
62