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
|
|
|
12 |
# $IPTABLES -A PREROUTING -t nat -i $EXTIF -p tcp --dport 12222 -m state --state NEW -j ULOG --ulog-prefix "RULE Admin2 -- ACCEPT
|
|
|
13 |
# $IPTABLES -A PREROUTING -t nat -i $EXTIF -p tcp --dport 12222 -j REDIRECT --to-port 22
|
|
|
14 |
# $IPTABLES -A INPUT -i $EXTIF -p tcp --dport ssh -j ACCEPT
|
|
|
15 |
##########################################################
|
|
|
16 |
|
1 |
root |
17 |
################# FILTRAGE APPLICATIF ####################
|
|
|
18 |
## Positionnez la variable "FILTERING" du fichier "alcasar-iptables.sh" à "yes" pour activer le filtrage
|
|
|
19 |
## Modifiez le fichier /usr/local/etc/alcasar-services pour l'adapter à vos besoins
|
|
|
20 |
if [ $FILTERING = "yes" ]
|
|
|
21 |
then
|
26 |
richard |
22 |
# si le fichier d'exception est renseigné on le traite
|
30 |
richard |
23 |
nb_exceptions=`wc -w /usr/local/etc/alcasar-filter-exceptions | cut -d" " -f1`
|
26 |
richard |
24 |
if [ $nb_exceptions != "0" ]
|
|
|
25 |
then
|
|
|
26 |
while read ip_exception
|
|
|
27 |
do
|
|
|
28 |
echo $ip_exception
|
|
|
29 |
$IPTABLES -A FORWARD -i $TUNIF -s $ip_exception -m state --state NEW -j ULOG --ulog-prefix "RULE IP-exception -- ACCEPT "
|
|
|
30 |
$IPTABLES -A FORWARD -i $TUNIF -s $ip_exception -m state --state NEW,ESTABLISHED -j ACCEPT
|
30 |
richard |
31 |
done < /usr/local/etc/alcasar-filter-exceptions
|
26 |
richard |
32 |
fi
|
|
|
33 |
# On autorise les protoles non commentés
|
1 |
root |
34 |
while read svc_line
|
26 |
richard |
35 |
do
|
1 |
root |
36 |
svc_on=`echo $svc_line|cut -b1`
|
|
|
37 |
if [ $svc_on != "#" ]
|
|
|
38 |
then
|
|
|
39 |
svc_name=`echo $svc_line|cut -d" " -f1`
|
|
|
40 |
svc_port=`echo $svc_line|cut -d" " -f2`
|
26 |
richard |
41 |
if [ $svc_name = "icmp" ]
|
1 |
root |
42 |
then
|
26 |
richard |
43 |
$IPTABLES -A FORWARD -i $TUNIF -p icmp -j ACCEPT
|
|
|
44 |
# else if [ $svc_name = "ftp-passif" ]
|
|
|
45 |
# then
|
|
|
46 |
# /sbin/modprobe nf_nat_ftp
|
|
|
47 |
# $IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ULOG --ulog-prefix "RULE F_ftp-passifE -- ACCEPT "
|
|
|
48 |
# $IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state RELATED -j ULOG --ulog-prefix "RULE F_ftp-passifR -- ACCEPT "
|
|
|
49 |
# $IPTABLES -A FORWARD -i $TUNIF -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
|
|
|
50 |
# fi
|
|
|
51 |
else
|
|
|
52 |
$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW -j ULOG --ulog-prefix "RULE F_$svc_name -- ACCEPT "
|
|
|
53 |
$IPTABLES -A FORWARD -i $TUNIF -p tcp --dport $svc_port -m state --state NEW,ESTABLISHED -j ACCEPT
|
1 |
root |
54 |
fi
|
|
|
55 |
fi
|
|
|
56 |
done < /usr/local/etc/alcasar-services
|
|
|
57 |
#tout le reste est bloqué
|
|
|
58 |
$IPTABLES -A FORWARD -i $TUNIF -p tcp -j REJECT --reject-with tcp-reset
|
|
|
59 |
$IPTABLES -A FORWARD -i $TUNIF -p udp -j REJECT --reject-with icmp-port-unreachable
|
|
|
60 |
$IPTABLES -A FORWARD -i $TUNIF -p icmp -j REJECT
|
|
|
61 |
fi
|
|
|
62 |
|