Subversion Repositories ALCASAR

Rev

Rev 48 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

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