Subversion Repositories ALCASAR

Rev

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

Rev Author Line No. Line
1 root 1
#!/bin/sh
2
# by rexy (version 1.8 du 12/2009)
3
# Changelog : rajout des modules iptables  ???
4
 
5
# a voir la relation avec nf_nat_ftp
6
# modprobe ip_conntrack_irc
7
# modprobe ip_conntrack_ftp
8
 
19 franck 9
 
10
################## FILTRAGE PARTICULIER ##################
11
# Administration à distance par exemple :
12
##  Autoriser SSH depuis l'extérieur sur le port 12222 ####
13
##  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 
14
# $IPTABLES -A PREROUTING -t nat -i $EXTIF -p tcp --dport 12222 -m state --state NEW -j ULOG --ulog-prefix "RULE Admin2 -- ACCEPT
15
# $IPTABLES -A PREROUTING -t nat -i $EXTIF -p tcp --dport 12222 -j REDIRECT --to-port 22
16
# $IPTABLES -A INPUT -i $EXTIF -p tcp --dport ssh -j ACCEPT
17
##########################################################
18
 
19
 
1 root 20
################# FILTRAGE APPLICATIF ####################
21
## Positionnez la variable "FILTERING" du fichier "alcasar-iptables.sh" à "yes" pour activer le filtrage
22
## Modifiez le fichier /usr/local/etc/alcasar-services pour l'adapter à vos besoins
23
if [ $FILTERING = "yes" ]
24
	then
25
	while read svc_line
26
	do
27
		svc_on=`echo $svc_line|cut -b1`
28
		if [ $svc_on != "#" ]
29
			then	
30
			svc_name=`echo $svc_line|cut -d" " -f1`
31
			svc_port=`echo $svc_line|cut -d" " -f2`
32
			nb_domains=`wc -w /usr/local/etc/alcasar-wl-$svc_name | cut -d" " -f1`
33
			# si le fichier "wl" est renseigné on le traite, sinon le protocole passe sans restriction (traité dans une prochaine version)
34
			if [ $nb_domains != "0" ]
35
				then
36
				while read wl_line
37
					do
38
					$ip_addr = `/usr/bin/host $wl_line | grep -Eo '(0-9{1-3}+\.){3}[0-9]{1-3}'`
39
					$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -d $ip_addr -m state --state NEW -j ULOG --ulog-prefix "RULE F_$svc_name -- ACCEPT "
40
					$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -d $ip_addr -m state --state NEW,ESTABLISHED -j ACCEPT
41
					done < /usr/local/etc/alcasar-wl-$svc_name
42
				else
43
				if [ $svc_name = "icmp" ]
44
					then
45
					$IPTABLES -A FORWARD -i $TUNIF -p icmp -j ACCEPT 
46
				else	
47
					$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW -j ULOG --ulog-prefix "RULE F_$svc_name -- ACCEPT "
48
					$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW,ESTABLISHED -j ACCEPT
49
#					if [ $svc_name = "ftp-passif" ]
50
#					then
51
#						/sbin/modprobe nf_nat_ftp
52
#						$IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ULOG --ulog-prefix "RULE F_ftp-passifE -- ACCEPT "
53
#						$IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state RELATED -j ULOG --ulog-prefix "RULE F_ftp-passifR -- ACCEPT "
54
#						$IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
55
#					fi
56
				fi
57
			fi
58
		fi
59
	done < /usr/local/etc/alcasar-services
60
#tout le reste est bloqué
61
$IPTABLES -A FORWARD -i $TUNIF -p tcp -j REJECT --reject-with tcp-reset
62
$IPTABLES -A FORWARD -i $TUNIF -p udp -j REJECT --reject-with icmp-port-unreachable
63
$IPTABLES -A FORWARD -i $TUNIF -p icmp -j REJECT 
64
fi
65