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 |
|