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 |
|
|
|
9 |
################# FILTRAGE APPLICATIF ####################
|
|
|
10 |
## Positionnez la variable "FILTERING" du fichier "alcasar-iptables.sh" à "yes" pour activer le filtrage
|
|
|
11 |
## Modifiez le fichier /usr/local/etc/alcasar-services pour l'adapter à vos besoins
|
|
|
12 |
if [ $FILTERING = "yes" ]
|
|
|
13 |
then
|
|
|
14 |
while read svc_line
|
|
|
15 |
do
|
|
|
16 |
svc_on=`echo $svc_line|cut -b1`
|
|
|
17 |
if [ $svc_on != "#" ]
|
|
|
18 |
then
|
|
|
19 |
svc_name=`echo $svc_line|cut -d" " -f1`
|
|
|
20 |
svc_port=`echo $svc_line|cut -d" " -f2`
|
|
|
21 |
nb_domains=`wc -w /usr/local/etc/alcasar-wl-$svc_name | cut -d" " -f1`
|
|
|
22 |
# si le fichier "wl" est renseigné on le traite, sinon le protocole passe sans restriction (traité dans une prochaine version)
|
|
|
23 |
if [ $nb_domains != "0" ]
|
|
|
24 |
then
|
|
|
25 |
while read wl_line
|
|
|
26 |
do
|
|
|
27 |
$ip_addr = `/usr/bin/host $wl_line | grep -Eo '(0-9{1-3}+\.){3}[0-9]{1-3}'`
|
|
|
28 |
$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 "
|
|
|
29 |
$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -d $ip_addr -m state --state NEW,ESTABLISHED -j ACCEPT
|
|
|
30 |
done < /usr/local/etc/alcasar-wl-$svc_name
|
|
|
31 |
else
|
|
|
32 |
if [ $svc_name = "icmp" ]
|
|
|
33 |
then
|
|
|
34 |
$IPTABLES -A FORWARD -i $TUNIF -p icmp -j ACCEPT
|
|
|
35 |
else
|
|
|
36 |
$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW -j ULOG --ulog-prefix "RULE F_$svc_name -- ACCEPT "
|
|
|
37 |
$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW,ESTABLISHED -j ACCEPT
|
|
|
38 |
# if [ $svc_name = "ftp-passif" ]
|
|
|
39 |
# then
|
|
|
40 |
# /sbin/modprobe nf_nat_ftp
|
|
|
41 |
# $IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ULOG --ulog-prefix "RULE F_ftp-passifE -- ACCEPT "
|
|
|
42 |
# $IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state RELATED -j ULOG --ulog-prefix "RULE F_ftp-passifR -- ACCEPT "
|
|
|
43 |
# $IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
|
|
|
44 |
# fi
|
|
|
45 |
fi
|
|
|
46 |
fi
|
|
|
47 |
fi
|
|
|
48 |
done < /usr/local/etc/alcasar-services
|
|
|
49 |
#tout le reste est bloqué
|
|
|
50 |
$IPTABLES -A FORWARD -i $TUNIF -p tcp -j REJECT --reject-with tcp-reset
|
|
|
51 |
$IPTABLES -A FORWARD -i $TUNIF -p udp -j REJECT --reject-with icmp-port-unreachable
|
|
|
52 |
$IPTABLES -A FORWARD -i $TUNIF -p icmp -j REJECT
|
|
|
53 |
fi
|
|
|
54 |
|