1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
#!/bin/bash
echo -e "--=[ \033[40m\033[1;31m Initialisation des variables \033[0m ]=--"
IfaceDmz="eth2"
IfaceLan="eth1"
IfaceNet="eth0"
ILanIp="10.0.1.254"
IDmzIp="10.0.2.254"
INetIp="192.168.1.10"
IpLan="10.0.1.0/24"
IpDmz="10.0.2.0/24"
IpNet="192.168.1.0/24"
IpServWeb="10.0.1.3"
IpServFichier="10.0.1.2"
IpDns="192.168.1.1"
echo -e "--=[ \033[40m\033[1;31m Supression de toutes les regles existantes \033[0m ]=--"
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -Z
iptables -t nat -X
iptables -t mangle -Z
iptables -t mangle -F
iptables -t mangle -X
echo -e "--=[ \033[40m\033[1;31m Initialisation de la police par defaut \033[0m ]=-"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo -e "--=[ \033[40m\033[1;31m déactivation du FORWARD \033[0m ]=-"
echo 0 > /proc/sys/net/ipv4/ip_forward
echo -e "--=[ \033[40m\033[1;31m AntiSpoofing \033[0m ]=-"
#if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] ; then
# for filtre in /proc/sys/net/ipv4/conf/*/rp_filter ;
# do
# echo 1 > $filtre ;
# done
#if
echo -e "--=[ \033[40m\033[1;31m AntiSynFlood \033[0m ]=-"
#if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then
# echo > /proc/sys/net/ipv4/tcp_syncookies
#if
echo -e "--=[ \033[40m\033[1;31m Autorisation de l'ICMP sur eth1 et lo \033[0m ]=-"
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i $IfaceLan -p icmp -j ACCEPT
iptables -A OUTPUT -o $IfaceLan -p icmp -j ACCEPT
##################################################################################
echo -e "--=[ \033[40m\033[1;31m FORWARD \033[0m ]=-"
##################################################################################
echo -e "--=[ \033[40m\033[1;32m Net <== Lan \033[0m ]=-"
echo -e "--=[ \033[40m\033[1;32m Net <== Dmz \033[0m ]=-"
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Autorisation des flux dns
iptables -A FORWARD -m state --state NEW -s $IpLan -p udp -d $IpDns --dport 53 -i $IfaceLan -o $IfaceNet -j ACCEPT
iptables -A FORWARD -m state --state NEW -s $IpLan -p tcp -d $IpDns --dport 53 -i $IfaceLan -o $IfaceNet -j ACCEPT
# Autorisation des flux dns pour la Dmz
iptables -A FORWARD -m state --state NEW -s $IpDmz -p udp -d $IpDns --dport 53 -i $IfaceDmz -o $IfaceNet -j ACCEPT
iptables -A FORWARD -m state --state NEW -s $IpDmz -p tcp -d $IpDns --dport 53 -i $IfaceDmz -o $IfaceNet -j ACCEPT
# Autorisation des flux http et https
iptables -A FORWARD -m state --state NEW -s $IpLan -p tcp --dport 80 -i $IfaceLan -o $IfaceNet -j ACCEPT
iptables -A FORWARD -m state --state NEW -s $IpLan -p tcp --dport 443 -i $IfaceLan -o $IfaceNet -j ACCEPT
# Autorisation des flux http pour la Dmz
iptables -A FORWARD -m state --state NEW -s $IpDmz -p tcp --dport 80 -i $IfaceDmz -o $IfaceNet -j ACCEPT
# Autorisation du ping
#iptables -A FORWARD -m state --state NEW -s $IpLan -p icmp -i $IfaceLan -o $IfaceNet -j ACCEPT
# Autorisation des flux de messagerie
iptables -A FORWARD -m state --state NEW -s $IpLan -p tcp --dport 25 -i $IfaceLan -o $IfaceNet -j ACCEPT
iptables -A FORWARD -m state --state NEW -s $IpLan -p tcp --dport 110 -i $IfaceLan -o $IfaceNet -j ACCEPT
# Autorisation des flux FTP passifs
iptables -A FORWARD -m state --state NEW -s $IpLan -p tcp --dport 20 -i $IfaceLan -o $IfaceNet -j ACCEPT
iptables -A FORWARD -m state --state NEW -s $IpLan -p tcp --dport 21 -i $IfaceLan -o $IfaceNet -j ACCEPT
# Autorisation de flux de messagerie instantanées
iptables -A FORWARD -m state --state NEW -s $IpLan -p tcp --dport 1863 -i $IfaceLan -o $IfaceNet -j ACCEPT
echo -e "--=[ \033[40m\033[1;32m Net ==> Lan \033[0m ]=-"
# Correspondance, si besoin d'un acces vers un serveur particulier
#du reseau lan (vnc par exemple).
#iptables -A FORWARD -i $IfaceNet -o $IfaceLan -d $IpServFichier -j ACCEPT
echo -e "--=[ \033[40m\033[1;32m Net ==> Dmz \033[0m ]=-"
# Correpondance ServeurWeb
iptables -A FORWARD -i $IfaceNet -o $IfaceDmz -d $IpServWeb -j ACCEPT
#########################################################################
echo -e "--=[ \033[40m\033[1;31m NAT \033[0m ]=-"
#########################################################################
echo -e "--=[ \033[40m\033[1;32m Net ==> Lan \033[0m ]=-"
# Traduction des adresses du reseau Net pour le serveur vnc du reseau Lan. (Redirection)
#iptables -t nat -A PREROUTING -i $IfaceNet -p tcp --dport vnc -j DNAT --to-destination $IpServFichier
#iptables -t nat -A PREROUTING -i $IfaceNet -p udp --dport vnc -j DNAT --to-destination $IpServFichier
echo -e "--=[ \033[40m\033[1;32m Net ==> Dmz \033[0m ]=-"
# Traduction des adresses du reseau Net pour le serveur web du reseau Dmz. (Redirection)
iptables -t nat -A PREROUTING -i $IfaceNet -p tcp --dport 80 -j DNAT --to-destination $IpServWeb
echo -e "--=[ \033[40m\033[1;32m Net <== Lan \033[0m ]=-"
# Traduction des adresses du reseau Lan pour le Net.
iptables -t nat -A POSTROUTING -s $IpLan -o $IfaceNet -j SNAT --to $INetIp
echo -e "--=[ \033[40m\033[1;32m Net <== Dmz \033[0m ]=-"
iptables -t nat -A POSTROUTING -s $IpDmz -o $IfaceNet -j SNAT --to $INetIp
#iptables -t nat -A PREROUTING -d $IpNet -o $IfaceDmz -j DNAT --to $IDmzIp
echo -e "--=[ \033[40m\033[1;31m Activation du FORWARD \033[0m ]=-"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo -e "--=[ \033[40m\033[1;35m Verif Generale \033[0m ]=--"
iptables -L
echo -e "--=[ \033[40m\033[1;35m Verif Nat \033[0m ]=--"
iptables -t nat -L
echo -e "--=[ \033[40m\033[1;35m Verif Mangle \033[0m ]=--"
iptables -t mangle -L |
Partager