Subversion Repositories ALCASAR

Rev

Details | 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 
48 franck 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 )
19 franck 13
# $IPTABLES -A PREROUTING -t nat -i $EXTIF -p tcp --dport 12222 -j REDIRECT --to-port 22
48 franck 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
19 franck 17
##########################################################
18
 
1 root 19
################# FILTRAGE APPLICATIF ####################
20
## 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
22
if [ $FILTERING = "yes" ]
23
	then
26 richard 24
# si le fichier d'exception est renseigné on le traite 
30 richard 25
	nb_exceptions=`wc -w /usr/local/etc/alcasar-filter-exceptions | cut -d" " -f1`
26 richard 26
	if [ $nb_exceptions != "0" ]
27
		then
28
		while read ip_exception 
29
			do
30
			echo $ip_exception
31
			$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
30 richard 33
			done < /usr/local/etc/alcasar-filter-exceptions
26 richard 34
		fi
35
# On autorise les protoles non commentés
1 root 36
	while read svc_line
26 richard 37
		do
1 root 38
		svc_on=`echo $svc_line|cut -b1`
39
		if [ $svc_on != "#" ]
40
			then	
41
			svc_name=`echo $svc_line|cut -d" " -f1`
42
			svc_port=`echo $svc_line|cut -d" " -f2`
26 richard 43
			if [ $svc_name = "icmp" ]
1 root 44
				then
26 richard 45
				$IPTABLES -A FORWARD -i $TUNIF -p icmp -j ACCEPT 
46
#			else if [ $svc_name = "ftp-passif" ]
47
#				then
48
#					/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 "
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 "
51
#					$IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
52
#				fi
53
			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 "
55
				$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW,ESTABLISHED -j ACCEPT
1 root 56
			fi
57
		fi
58
	done < /usr/local/etc/alcasar-services
59
#tout le reste est bloqué
60
$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
62
$IPTABLES -A FORWARD -i $TUNIF -p icmp -j REJECT 
63
fi
64