script iptables

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

Messagepar Sebastien65 » 06 Déc 2003 14:30

Salut, <BR> <BR>Donc vu que je n'arrive pas a faire marcher portsentry correctement et je n'arrive pas a faire un blocage du ping correcte je décide donc de me faire un script afin de l'installer et l'exécuter sur ma SME... <BR> <BR>Donc je récapitules les actions que doit accomplir le script et la je dois dire que j'aurais besoin des BOSS de l'IPTABLES... <BR> <BR>Alors je veux bloquer le PING, ensuite j'aimerais aussi que lorsque on me scanne, on ne voit pas les ports qui sont utilisé sur ma machine... En fait faudrait que je face le mort... Vous voyez ce que je veux dire j'espère ??? <BR> <BR>Donc ma SME me sert pour server WWW, FTP, WebMail, Server de fichier Windows, Partage de connexion/Firewall, Redirection DynDNS sur le WWW... <BR> <BR>Donc voici un peux mon espèce de script et que j'espère vous m'aiderez a constituer <IMG SRC="images/smiles/icon_help.gif"> <BR> <BR>------------ <BR> <BR>#!/bin/sh <BR>#Fichier Config Firewall SME Server <BR>#Dur dur Iptables <BR> <BR>#Début de la config : <BR> <BR>#REMISE à ZERO des regles de filtrage <BR>iptables -t nat -P PREROUTING ACCEPT <BR>iptables -t nat -P POSTROUTING ACCEPT <BR>iptables -t nat -P OUTPUT ACCEPT <BR>iptables -F <BR>iptables -t nat -F <BR>iptables -X <BR>iptables -t nat -X <BR> <BR>#Autorisation boucle locale <BR>#et reseau local <BR>iptables -A INPUT -i lo -j ACCEPT <BR>iptables -A OUTPUT -o lo -j ACCEPT <BR>iptables -A INPUT -i eth0 -j ACCEPT <BR>iptables -A OUTPUT -o eth0 -j ACCEPT <BR> <BR># Translation d'adresses pour tout ce qui traverse la passerelle <BR># en sortant par ppp0 <BR>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE <BR> <BR># Toutes les connexions qui sortent du LAN vers le Net <BR># sont acceptées <BR>iptables -A FORWARD -i eth0 -o ppp0 -m state --state <BR>NEW,ESTABLISHED,RELATED -j ACCEPT <BR> <BR># Seules les connexions déjà établies ou en relation avec <BR># des connexions établies sont acceptées venant du Net vers le LAN <BR>iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j <BR>ACCEPT <BR> <BR># Accès SSH depuis le Net <BR>#iptables -A INPUT -p tcp --dport ssh -i ppp0 -j ACCEPT <BR>#iptables -A OUTPUT -p tcp --sport ssh -o ppp0 -j ACCEPT <BR> <BR># Acces server web <BR>iptables -A INPUT -p tcp --dport http -i ppp0 -j ACCEPT <BR>iptables -A OUTPUT -p tcp --sport http -o ppp0 -j ACCEPT <BR> <BR># Acces FTP <BR>iptables -A INPUT -p tcp --dport 21 -i ppp0 -j ACCEPT <BR>iptables -A OUTPUT -p tcp --sport 21 -o ppp0 -j ACCEPT <BR>iptables -A INPUT -p tcp --dport 20 -i ppp0 -j ACCEPT <BR>iptables -A OUTPUT -p tcp --sport 20 -o ppp0 -j ACCEPT <BR>iptables -A INPUT -p tcp --dport 1024:65535 -i ppp0 -j ACCEPT <BR>iptables -A OUTPUT -p tcp --sport 1024:65535 -o ppp0 -j ACCEPT <BR> <BR># Acces pop3 <BR>iptables -A INPUT -p tcp --dport 25 -i ppp0 -j ACCEPT <BR>#iptables -A OUTPUT -p tcp --sport 25 -o ppp0 -j ACCEPT <BR> <BR># Bloquer Ping <BR>echo 1 > /proc/sys/net/ipv4/ip_forward <BR>iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT <BR>iptables -A FORWARD -o eth0 -i ppp0 -j ACCEPT <BR> <BR>if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] <BR>then <BR> for filtre in /proc/sys/net/ipv4/conf/*/rp_filter <BR> do <BR> echo 1 > $filtre <BR> done <BR>fi <BR> <BR>#Fin du fichier de Config. <BR> <BR>-------------------------------------------------------------------- <BR> <BR>Sinon j'ai vu que je pouvais utiliser sa pour le blocage du ping : <BR> <BR>#Not spoofing and traffic ICMP <BR>if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] <BR>then <BR>for filtre in /proc/sys/net/ipv4/conf/*/rp_filter <BR>do <BR>echo 1 > $filtre <BR>done <BR>fi <BR> <BR>echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all <BR>echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_brodcasts <BR>#End <BR> <BR>Alors quel est le meilleur script ??? <BR> <BR>Ensuite j'ai vu que je pouvais mettre quelque chose comme sa aussi mais je ne C pas trop quelle est sa fonction : <BR> <BR>#Chacher les machines forwardées par le firewall : <BR>$IPTABLES -A POSTROUTING -t nat -o ppp0 -j MASQUERADZ <BR> <BR>--------- <BR> <BR>Voila merci de votre aide sur IPtables afin de m'aider a constituer un fichier qui tien la route <IMG SRC="images/smiles/icon_smile.gif"> <BR> <BR> <IMG SRC="images/smiles/icon_help.gif"> <IMG SRC="images/smiles/icon_help.gif"> <IMG SRC="images/smiles/icon_help.gif">
Avatar de l’utilisateur
Sebastien65
Vice-Amiral
Vice-Amiral
 
Messages: 799
Inscrit le: 26 Avr 2003 00:00

Messagepar shadowman » 06 Déc 2003 15:38

tu devrais integrer aussi une protection contre l'ipspoofing, ca fait qq lignes en plus mais ca protege bien <IMG SRC="images/smiles/icon_wink.gif"> ( Le principe du spoofing est de faire croire au firewall qu'une adresse venant d'internet appartient au réseau local ... ) <BR>sous Ipcop, ca donne un script ressemblant a ca: <BR># Antispoofing <BR>/sbin/iptables -t nat -I PREROUTING -i $RED_DEV -s 10.0.0.0/8 -j DROP <BR>/sbin/iptables -t nat -I PREROUTING -i $RED_DEV -s 172.16.0.0/12 -j DROP <BR>/sbin/iptables -t nat -I PREROUTING -i $RED_DEV -s 192.168.0.0/16 -j DROP <BR>/sbin/iptables -t nat -I PREROUTING -i $RED_DEV -s 127.0.0.0/8 -j DROP <BR>/sbin/iptables -t nat -I PREROUTING -i $RED_DEV -s 169.254.0.0/16 -j DROP <BR> <BR> <BR>sinon pour le ping, moi j'utilise ce script: <BR> <BR># localhost and ethernet. <BR>/sbin/iptables -A INPUT -i lo -j ACCEPT <BR>/sbin/iptables -A INPUT -p icmp --icmp-type 0 -j DROP <BR>/sbin/iptables -A INPUT -p icmp --icmp-type 5 -j DROP <BR>/sbin/iptables -A INPUT -p icmp --icmp-type 8 -j DROP <BR>/sbin/iptables -A INPUT -p icmp -j ACCEPT <BR> <BR> <BR> <BR>a voir si faut pas adapter un peu a ta distro... <IMG SRC="images/smiles/icon_up.gif">
"Un homme prêt à sacrifier une once de liberté au profit de sa sécurité ne mérite pas cette liberté."
A. LINCOLN
Avatar de l’utilisateur
shadowman
Aspirant
Aspirant
 
Messages: 115
Inscrit le: 24 Avr 2003 00:00

Messagepar Sebastien65 » 06 Déc 2003 17:02

Merci <IMG SRC="images/smiles/icon_wink.gif"> <BR> <BR>Mais comment je peux savoir si ces lignes passe sur ma machine SME ????
Avatar de l’utilisateur
Sebastien65
Vice-Amiral
Vice-Amiral
 
Messages: 799
Inscrit le: 26 Avr 2003 00:00

Messagepar shadowman » 06 Déc 2003 17:53

aucune idée, je connais pas la syntaxe iptable sous SME ( a priori, ca devrait etre pareil, mais bon... ) <BR>au pire, fais un backup de ton FW, et puis... <IMG SRC="images/smiles/icon_biggrin.gif"> rentre les commandes que tu veux <IMG SRC="images/smiles/icon_biggrin.gif"> , testes koi : ca passe ou ca casse ! <IMG SRC="images/smiles/icon_lol.gif">
"Un homme prêt à sacrifier une once de liberté au profit de sa sécurité ne mérite pas cette liberté."
A. LINCOLN
Avatar de l’utilisateur
shadowman
Aspirant
Aspirant
 
Messages: 115
Inscrit le: 24 Avr 2003 00:00

Messagepar Sebastien65 » 06 Déc 2003 18:54

Oui bon vais voir sa alors... <BR> <BR>Donc je vais me refaire le script et voir si sa passe... <BR> <BR>Si des pros de l'iptables passe par la merci de me dire koi vous en pensez <IMG SRC="images/smiles/icon_smile.gif"> <BR> <BR>A oui ptite question !!!!!!!!! <BR> <BR>Donc j'ai essayé viteuf de modifier et de faire un fichier mais pour l'éxécuter je n'y arrive pas... <BR> <BR>Je procède comme cela : ./nom_du_fichier <BR> <BR>Mais la sa me retourne une erreur du style <BR> <BR>:bad interpreter: No such file or directory <BR> <BR>pourtant j'ai bien #!/bin/sh <BR> <BR>Alors <IMG SRC="images/smiles/icon_help.gif"> <IMG SRC="images/smiles/icon_confused.gif">
Avatar de l’utilisateur
Sebastien65
Vice-Amiral
Vice-Amiral
 
Messages: 799
Inscrit le: 26 Avr 2003 00:00

Messagepar Muzo » 06 Déc 2003 22:27

Ton script tu l'as fait sous wondows? Avec un éditeur? <BR>Vérifies que ton éditeur l'ai fait au format UNIX et non DOS (c'est le cas avec UltraEdit). <BR>Si il est fait au format DOS transforme le en forma UNIX
/Muzo
"La vie n'est pas un combat, mais une passion à défendre!" MASS HYSTERIA - Knowledge is power
Avatar de l’utilisateur
Muzo
Amiral
Amiral
 
Messages: 5236
Inscrit le: 07 Mai 2003 00:00
Localisation: BNF! Je me culturise.

Messagepar MasterSleepy » 06 Déc 2003 23:51

Salut, <BR> <BR>Voilà comment je ferai pour rajouter des régles dans l'iptable de la SME. <BR> <BR>Construire le répertoire de templates : <BR>mkdir -p /etc/e-smith/templates-custom/etc/rc.d/init.d/masq <BR> <BR>Créé un fichier pour rajouter tes commandes : <BR>pico 46Myrules <BR> <BR>Et dedans ça devrait ressembler à ça : <BR>/sbin/iptables -t nat -I PREROUTING -i $OUTERIF -s 10.0.0.0/8 -j DROP <BR>/sbin/iptables -t nat -I PREROUTING -i $OUTERIF -s 172.16.0.0/12 -j DROP <BR>/sbin/iptables -t nat -I PREROUTING -i $OUTERIF -s 192.168.0.0/16 -j DROP <BR>/sbin/iptables -t nat -I PREROUTING -i $OUTERIF -s 127.0.0.0/8 -j DROP <BR>/sbin/iptables -t nat -I PREROUTING -i $OUTERIF -s 169.254.0.0/16 -j DROP <BR> <BR># localhost and ethernet. <BR>/sbin/iptables -A INPUT -i lo -j ACCEPT <BR>/sbin/iptables -A INPUT -p icmp --icmp-type 0 -j DROP <BR>/sbin/iptables -A INPUT -p icmp --icmp-type 5 -j DROP <BR>/sbin/iptables -A INPUT -p icmp --icmp-type 8 -j DROP <BR>/sbin/iptables -A INPUT -p icmp -j ACCEPT <BR> <BR> <BR>Et pour finir : <BR>/sbin/e-smith/expand-templates /etc/rc.d/init.d/masq <BR>service masq restart <BR> <BR>Ca devrait ressembler à ça. <BR> <BR>A+ <BR> <BR>_________________ <BR>"Microsoft fera quelque chose qui ne plantera jamais quand ils commenceront à fabriquer des clous " <BR> <BR><!-- BBCode u2 Start --><A HREF="http://vanhees.homeip.net" TARGET="_blank">http://vanhees.homeip.net</A><!-- BBCode u2 End --><BR><BR><font size=-2></font>
"Microsoft fera quelque chose qui ne plantera jamais quand ils commenceront à fabriquer des clous "
http://www.vanhees.cc
Avatar de l’utilisateur
MasterSleepy
Amiral
Amiral
 
Messages: 2625
Inscrit le: 24 Juil 2002 00:00
Localisation: Belgique

Messagepar Sebastien65 » 07 Déc 2003 17:50

Salut les gars <IMG SRC="images/smiles/icon_smile.gif"> <BR> <BR>Oui je pense que sa vient tous simplement du fait que j'ai tapé le script sous Windows avec Not-pad <IMG SRC="images/smiles/icon_rolleyes.gif"> <BR> <BR>MasterSleepy : <BR> <BR>Je ne comprend pas trop ta manip... Il faut que je rajoute donc les lignes que j'ai donné plus haut pour faire non ??? <BR> <BR>Ensuite pas plus simple de faire un script et de l'exécuter avec la commande " ./nom_script " et si je ne dis pas de bêtise le mettre au démarrage de la machine non ???? Je débute au niveau des scripts donc j'ai besoin de vos lumières <IMG SRC="images/smiles/icon_find.gif"> <BR> <BR>???? <BR> <BR>En tous cas merci pour votre aide sur ce script <IMG SRC="images/smiles/icon_up.gif">
Avatar de l’utilisateur
Sebastien65
Vice-Amiral
Vice-Amiral
 
Messages: 799
Inscrit le: 26 Avr 2003 00:00

Messagepar MasterSleepy » 07 Déc 2003 20:01

Bien sure tu peux faire ça comme ça. Mais ce serait quand même mieux de l'intégrer aux templates de la SME. <BR>Comme ça pas de traquat, il seront toujours pris en compte. <BR>Selon ton type de connection internet /etc/init.d/masq sera relance lors des reconnexions, changement d'ip. <BR>A mon avis il serait préférable de les intégrer à ce script là.
"Microsoft fera quelque chose qui ne plantera jamais quand ils commenceront à fabriquer des clous "
http://www.vanhees.cc
Avatar de l’utilisateur
MasterSleepy
Amiral
Amiral
 
Messages: 2625
Inscrit le: 24 Juil 2002 00:00
Localisation: Belgique

Messagepar Sebastien65 » 07 Déc 2003 20:16

Oki MAsterSleepy !! <BR> <BR>Je vais faire des templates alors... <BR> <BR>Donc je fais un fichier avec toutes mes lignes du premier post du haut mais je dois mettre la ligne #!/bin/sh sur ce fichier ???? <BR> <BR>Et ensuite je fais comme cela : <BR> <BR>mkdir -p /etc/e-smith/templates-custom/Nom_du fichier /etc/rc.d/init.d/masq <BR> <BR>Non C pas comme sa ? <BR>
Avatar de l’utilisateur
Sebastien65
Vice-Amiral
Vice-Amiral
 
Messages: 799
Inscrit le: 26 Avr 2003 00:00

Messagepar MasterSleepy » 07 Déc 2003 20:24

Ben non c'est pas tout à fait ça. <BR> <BR>En faite je te conseille d'aller voir le fichier /etc/init.d/masq <BR>Tu verras que des régles par défaut sont déjà établie, de plus le système de template pour le masq est plutôt complexe vu que en activant ou désactivant certains services les régles changes. <BR> <BR> <BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE> <BR>Salut, <BR> <BR>Voilà comment je ferai pour rajouter des régles dans l'iptable de la SME. <BR> <BR>Construire le répertoire de templates : <BR>mkdir -p /etc/e-smith/templates-custom/etc/rc.d/init.d/masq <BR> <BR>Créé un fichier pour rajouter tes commandes : <BR>pico 46Myrules <BR> <BR>Et dedans ça devrait ressembler à ça : <BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR>Maintenant ici tu mets ce que tu veux dans le fichier <IMG SRC="images/smiles/icon_wink.gif"> <BR> <BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE> <BR> <BR>Et pour finir : <BR>/sbin/e-smith/expand-templates /etc/rc.d/init.d/masq <BR>service masq restart <BR> <BR>Ca devrait ressembler à ça. <BR> <BR>A+ <BR> <BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
"Microsoft fera quelque chose qui ne plantera jamais quand ils commenceront à fabriquer des clous "
http://www.vanhees.cc
Avatar de l’utilisateur
MasterSleepy
Amiral
Amiral
 
Messages: 2625
Inscrit le: 24 Juil 2002 00:00
Localisation: Belgique

Messagepar Sebastien65 » 07 Déc 2003 20:28

A oki !!! <BR> <BR>Donc je rentre mes lignes directement dans le fichier masq !! <BR> <BR>Par contre ya pas mal de lignes... J'espère que sa va pas faire n'importe quoi quand je vais rajouter les miennes !!!
Avatar de l’utilisateur
Sebastien65
Vice-Amiral
Vice-Amiral
 
Messages: 799
Inscrit le: 26 Avr 2003 00:00

Messagepar MasterSleepy » 07 Déc 2003 20:33

Heuuu ben non pas dans le fichier masq. <BR> <BR>Dans le fichier 46trucbazarre
"Microsoft fera quelque chose qui ne plantera jamais quand ils commenceront à fabriquer des clous "
http://www.vanhees.cc
Avatar de l’utilisateur
MasterSleepy
Amiral
Amiral
 
Messages: 2625
Inscrit le: 24 Juil 2002 00:00
Localisation: Belgique

Messagepar Muzo » 19 Déc 2003 00:04

10 ans plus tard je débarque <IMG SRC="images/smiles/icon_smile.gif"> <BR> <BR>Alors j'ai étudié et décortiqué les templates de SME pour faire le fichier masq. <BR> <BR>Vu qu'il y'a beaucoup de demandes à ce sujet ... peut-être vais-je mûrir un RPM. <IMG SRC="images/smiles/icon_wink.gif"> <BR> <BR>Bon ton template 46trucbazaare, c'est bien beau, mais c'est en redondance avec un autre : 40AllowICMPIn <BR> <BR>qui a cette tronche : <BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE> /sbin/iptables --new-chain icmpIn <BR> /sbin/iptables --append INPUT --protocol icmp --jump icmpIn <BR>{ <BR> use esmith::NetworksDB; <BR> <BR> # We want to be very selective on the ICMPs we accept to stop <BR> # route hijacking <BR> <BR> my @OKicmpTypes = ( <BR> qw( <BR> echo-request <BR> echo-reply <BR> destination-unreachable <BR> source-quench <BR> time-exceeded <BR> parameter-problem <BR> ) ); <BR> <BR> my $stealth = $masq{Stealth} || 'no'; <BR> if ($stealth eq 'yes') <BR> { <BR> $OUT .= <<HERE <BR> /sbin/iptables --append icmpIn --proto icmp --icmp-type echo-request --in-interface $OUTERIF --jump denylog <BR>HERE <BR> } <BR> <BR> foreach my $icmpType (@OKicmpTypes) <BR> { <BR> $OUT .= <<HERE; <BR> /sbin/iptables --append icmpIn --proto icmp --icmp-type $icmpType --jump ACCEPT <BR>HERE <BR> } <BR>} <BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR> <BR>je suggérerais momentanement de faire un template-custom comme suis : <BR><!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE> /sbin/iptables --new-chain icmpIn <BR> /sbin/iptables --append INPUT --protocol icmp --jump icmpIn <BR>{ <BR> use esmith::NetworksDB; <BR> <BR> # We want to be very selective on the ICMPs we accept to stop <BR> # route hijacking <BR> <BR> my @OKicmpTypes = ( <BR> qw( <BR> destination-unreachable <BR> source-quench <BR> time-exceeded <BR> parameter-problem <BR> ) ); <BR> <BR> my @KOicmpTypes = ( <BR> qw( <BR> echo-request <BR> echo-reply <BR> ) ); <BR> <BR> my $stealth = $masq{Stealth} || 'no'; <BR> if ($stealth eq 'yes') <BR> { <BR> $OUT .= <<HERE <BR> /sbin/iptables --append icmpIn --proto icmp --icmp-type echo-request --in-interface $OUTERIF --jump denylog <BR>HERE <BR> } <BR> <BR> foreach my $icmpType (@OKicmpTypes) <BR> { <BR> $OUT .= <<HERE; <BR> /sbin/iptables --append icmpIn --proto icmp --icmp-type $icmpType --jump ACCEPT <BR>HERE <BR> } <BR> <BR> foreach my $icmpType (@KOicmpTypes) <BR> { <BR> $OUT .= <<HERE; <BR> /sbin/iptables --append icmpIn --proto icmp --icmp-type $icmpType --jump DROP <BR>HERE <BR> } <BR>} </BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR> <BR>Voili (attention, je n'ai pas testé ce script !!!) <BR> <BR>De plus j'ai pu voir qu'il existait un fichier non utiliser sous SME de base non pro. Je vais voir ce que je peux en faire. <BR> <BR>Stay tuned.
/Muzo
"La vie n'est pas un combat, mais une passion à défendre!" MASS HYSTERIA - Knowledge is power
Avatar de l’utilisateur
Muzo
Amiral
Amiral
 
Messages: 5236
Inscrit le: 07 Mai 2003 00:00
Localisation: BNF! Je me culturise.

Messagepar arapaho » 19 Déc 2003 01:40

#!/bin/bash <BR> <BR>################################################### <BR>## ARCHITECTURE POUR UN FIREWALL A 4 INTERFACES ## <BR>## ## <BR>## INTERNET ## <BR>## | ## <BR>## DMZ--------FIREWALL--------ZONE SERVEURS ## <BR>## | ## <BR>## LAN ## <BR>## ## <BR>## <BR>## <BR>## <BR>################################################### <BR> <BR>################################################### <BR>## MODULES IPTABLES NECESSAIRES ## <BR>################################################### <BR>MODULES_IPTABLES="ip_tables <BR>ipt_string <BR>ip_conntrack <BR>ip_conntrack_ftp <BR>ip_nat_ftp" # Modules iptables charges au demarrage <BR>INTERNET="ppp0" # Device Internet (plusieurs devices possibles) <BR>INTERNET_NAT="ppp0" # Device Internet utilise pour le NAT (1 seul device possible) <BR>DMZ="" # Device DMZ (IP publiques, serveurs accessible depuis internet) <BR>ZONE_SERVEURS="eth2" # Device SMZ (IP privees, serveurs accessible en interne) <BR>LAN="eth1 eth3" # Device intranet (plusieurs devices possibles) <BR> <BR>PAQUETS_ICMP_AUTHORISES="0 3 4 5 8 11 12" # Paquets ICMP authorises a circuler entres les differents reseaux <BR>PING_FLOOD="1/s" # Nombre de PING authorises par seconde <BR>LOG_FLOOD="1/s" <BR> <BR>PROTOCOLES_AUTHORISES="47" # Protocoles authorises a circuler via le firewall <BR> <BR>MASQ_LAN="YES" # Masquerade le Lan <BR>MASQ_DMZ="NO" # Masquerade la DMZ <BR>MASQ_ZONE_SERVEURS="YES" # Masquerade la zone serveurs <BR> <BR>PORTS_TCP_INTERNET_AUTHORISES="53" # Ports TCP du firewall accessible de l'internet <BR>PORTS_UDP_INTERNET_AUTHORISES="53" # Ports UDP du firewall accessible de l'internet <BR>PORTS_TCP_DMZ_AUTHORISES="" # Ports TCP du firewall accessible de la DMZ <BR>PORTS_UDP_DMZ_AUTHORISES="" # Ports UDP du firewall accessible de la DMZ <BR>PORTS_TCP_ZONE_SERVEURS_AUTHORISES="53 113" # Ports TCP du firewall accessible de la zone serveurs <BR>PORTS_UDP_ZONE_SERVEURS_AUTHORISES="53 113" # Ports UDP du firewall accessible de la zone serveurs <BR>PORTS_TCP_LAN_AUTHORISES="53 113 22" # Ports TCP du firewall accessible du LAN <BR>PORTS_UDP_LAN_AUTHORISES="53 113 22" # Ports UDP du firewall accessible du LAN <BR> <BR>PORTS_TCP_SORTIE_REFUSES="6346 <BR>7777 <BR>8888 <BR>6699 <BR>6000" # Ports TCP interdit en sortie du firewall <BR>PORTS_UDP_SORTIE_REFUSES="6346 <BR>7777 <BR>8888 <BR>6699 <BR>6000" # Ports UDP interdit en sortie du firewall <BR> <BR>RESEAUX_LAN="192.168.10.0/24 <BR>192.168.30.0/24" # Reseaux composants le LAN <BR>RESEAUX_DMZ="" # Reseaux composants la DMZ <BR>RESEAUX_ZONE_SERVEURS="192.168.50.0/24" # Reseaux composants la zone serveurs <BR> <BR>NAT_TCP_NET=" 80.13.192.105:80>192.168.50.100:8080 " # NAT => IP_FIREWALL:PORT_FIREWALL>IP_INTERNE:PORT_INTERNE <BR>NAT_UDP_NET="" # NAT => IP_FIREWALL:PORT_FIREWALL>IP_INTERNE:PORT_INTERNE <BR> <BR>MOTS_CLES="root admin" # Mots cles a loguer <BR> <BR>MOTS_CLES_INTERDITS="mp3>192.168.10.117 <BR>MP3>192.168.10.117 <BR>ogg>192.168.10.117 <BR>OGG>192.168.10.117" # Mots cles interdit de passage <IMG SRC="images/smiles/icon_wink.gif"> MOT_CLE>IP_DESTINATAIRE <BR>IP_INTERDITES=" 66.28.48.0/24 <BR>66.28.49.0/24" # Adresses interdites d'entree <BR> <BR>################################################### <BR>## VARIABLES PROPRES AU SCRIPT (NE PAS EDITER) ## <BR>################################################### <BR> <BR>IPTABLES=`which iptables` <BR>MODPROBE=`which modprobe` <BR>VERT="033[32m" <BR>JAUNE="033[33m" <BR>GRAS="033[1m" <BR>NORMAL="033[m" <BR>ROUGE="033[31m" <BR> <BR> <BR>################################################### <BR>## VERIFICATION DE LA PRESENCE DE IPTABLES ## <BR>################################################### <BR> <BR>echo -en "${GRAS}Verification de la presence de IPTABLES :${NORMAL}" <BR>if [ -z ${IPTABLES} ] ;then <BR>echo -e "tt${ROUGE}FAILED${NORMAL}n" <BR>exit 1 <BR>else <BR>echo -e "tt${VERT}OK${NORMAL}" <BR>fi <BR> <BR> <BR>################################################### <BR>## VERIFICATION DE LA PRESENCE DE MODPROBE ## <BR>################################################### <BR> <BR>echo -en "${GRAS}Verification de la presence de MODPROBE :${NORMAL}" <BR>if [ -z ${MODPROBE} ] ;then <BR>echo -e "tt${ROUGE}FAILED${NORMAL}n" <BR>exit 1 <BR>else <BR>echo -e "tt${VERT}OK${NORMAL}n" <BR>fi <BR> <BR> <BR>################################################### <BR>## CHARGEMENT DES MODULES PROPRES A IPTABLES ## <BR>################################################### <BR> <BR>for module in ${MODULES_IPTABLES} ;do <BR>echo -e "${GRAS}Chargement du module ${module} :${NORMAL}ttt${VERT}OK${NORMAL}" <BR>${MODPROBE} ${module} <BR>done <BR>echo -e "n" <BR> <BR>################################################### <BR>## CONFIGURATION DE BASE DU FIREWALL GRACE AU ## <BR>## SYSTEME DE FICHIER /proc ## <BR>################################################### <BR> <BR>################################################### <BR>## ACTIVATION DE L'IP FORWARDING (routage) ## <BR>################################################### <BR> <BR>echo -en "${GRAS}${JAUNE}Activation de l'ip forwarding :${NORMAL}" <BR>if [ -e /proc/sys/net/ipv4/ip_forward ] ; then <BR>echo 1 > /proc/sys/net/ipv4/ip_forward <BR>echo -e "tttt${VERT}OK${NORMAL}" <BR>else <BR>echo -e "tttt${ROUGE}FAILED${NORMAL}n" <BR>exit 1 <BR>fi <BR> <BR>################################################### <BR>## Protection contre les SYN FLOOD ## <BR>################################################### <BR> <BR>echo -en "${GRAS}${JAUNE}Protection contre les SYN/FLOOD :${NORMAL}" <BR>if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then <BR>echo 1 > /proc/sys/net/ipv4/tcp_syncookies <BR>echo -e "ttt${VERT}OK${NORMAL}" <BR>else <BR>echo -e "ttt${ROUGE}FAILED${NORMAL}" <BR>fi <BR> <BR>################################################### <BR>## Defragmente les paquets avant des les reenvoyer# <BR>## Utile pour le masquerading ## <BR>################################################### <BR> <BR>echo -en "${GRAS}${JAUNE}Refragmentation des paquets :${NORMAL}" <BR>if [ -e /proc/sys/net/ipv4/ip_always_defrag ] ; then <BR>echo 1 > /proc/sys/net/ipv4/ip_always_defrag <BR>echo -e "tttt${VERT}OK${NORMAL}" <BR>else <BR>echo -e "tttt${ROUGE}FAILED${NORMAL}" <BR>fi <BR> <BR>################################################### <BR>## Permet de ne pas repondre aux paquets ICMP ## <BR>## emis sur le broadcast ## <BR>################################################### <BR> <BR>echo -en "${GRAS}${JAUNE}Insensibilite aux paquets ICMP emis sur le brodcast :${NORMAL}" <BR>if [ -e /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ] ; then <BR>echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts <BR>echo -e "t${VERT}OK${NORMAL}" <BR>else <BR>echo -e "t${ROUGE}FAILED${NORMAL}" <BR>fi <BR> <BR>################################################### <BR>## Permet d'ignorer les erreurs ICMP provenant ## <BR>## des hotes du reseau reagissant mal aux trames ## <BR>## envoyees vers ce qu'ils percoivent comme ## <BR>## l'addresse de diffusion ## <BR>################################################### <BR> <BR>if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ] ; then <BR>echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses <BR>fi <BR> <BR>################################################### <BR>## Reverse Path Filtering ## <BR>## Permet de ne router que les paquets appartenant# <BR>## a nos reseaux ## <BR>################################################### <BR> <BR>echo -e "${GRAS}${JAUNE}Activation du Reverse Path Filtering :${NORMAL}ttt${VERT}OK${NORMAL}n" <BR>for f in /proc/sys/net/ipv4/conf/*/rp_filter; do <BR>echo 1 > $f <BR>done <BR> <BR> <BR>################################################### <BR>## EFFACEMENT DES ANCIENNES REGLES ## <BR>################################################### <BR> <BR>echo -en "${GRAS}${JAUNE}Effacement des anciennes regles :${NORMAL}" <BR>${IPTABLES} -t filter -F INPUT <BR>${IPTABLES} -t filter -F OUTPUT <BR>${IPTABLES} -t filter -F FORWARD <BR>${IPTABLES} -t nat -F PREROUTING <BR>${IPTABLES} -t nat -F OUTPUT <BR>${IPTABLES} -t nat -F POSTROUTING <BR>${IPTABLES} -t mangle -F PREROUTING <BR>${IPTABLES} -t mangle -F OUTPUT <BR>echo -e "ttt${VERT}OK${NORMAL}" <BR> <BR>################################################### <BR>## REMISE A ZERO DES CHAINES ## <BR>################################################### <BR> <BR>echo -en "${GRAS}${JAUNE}Remise a zero des chaines :${NORMAL}" <BR>${IPTABLES} -t filter -Z <BR>${IPTABLES} -t nat -Z <BR>${IPTABLES} -t mangle -Z <BR>echo -e "tttt${VERT}OK${NORMAL}" <BR> <BR>################################################### <BR>## MISE EN PLACE DE LA POLITIQUE PAR DEFAUT ## <BR>################################################### <BR> <BR>echo -en "${GRAS}${JAUNE}Mise en place de la polique par defaut :${NORMAL}" <BR>${IPTABLES} -t filter -P INPUT DROP <BR>${IPTABLES} -t filter -P OUTPUT ACCEPT <BR>${IPTABLES} -t filter -P FORWARD DROP <BR>echo -e "tt${VERT}OK${NORMAL}n" <BR> <BR>################################################### <BR>## MOTS CLES A LOGUER ## <BR>################################################### <BR> <BR>if [ "${MOTS_CLES}" != "" ] ;then <BR>echo -ne "${GRAS}${JAUNE}Activation du systeme de logs par mots cles :${NORMAL}" <BR>for mot in ${MOTS_CLES} ;do <BR>${IPTABLES} -A INPUT -m string --string "${mot}" -j LOG --log-level info --log-prefix "${mot} : " <BR>${IPTABLES} -A FORWARD -m string --string "${mot}" -j LOG --log-level info --log-prefix "${mot} : " <BR>done <BR>echo -e "tt${VERT}OK${NORMAL}" <BR>fi <BR> <BR>################################################### <BR>## Interdiction d'entree de certaines adresses ## <BR>## via le firewall en tcp et en udp ## <BR>################################################### <BR> <BR>if [ "${IP_INTERDITES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Interdiction d'entree de certaines adresses :${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for adr in ${IP_INTERDITES} ;do <BR>${IPTABLES} -t filter -A FORWARD -p tcp -s ${adr} -j DROP <BR>${IPTABLES} -t filter -A FORWARD -p udp -s ${adr} -j DROP <BR>done <BR>fi <BR> <BR>################################################### <BR>## Interdiction de sortie de certains ports via ## <BR>## le firewall en tcp ## <BR>################################################### <BR> <BR>if [ "${PORTS_TCP_SORTIE_REFUSES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Interdiction de sortie de certains ports TCP :${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for port_no in ${PORTS_TCP_SORTIE_REFUSES} ;do <BR>${IPTABLES} -t filter -A FORWARD -p tcp --dport ${port_no} -j DROP <BR>${IPTABLES} -t filter -A OUTPUT -p tcp -o ${INTERNET} --dport ${port_no} -j DROP <BR>done <BR>fi <BR> <BR>################################################### <BR>## Interdiction de sortie de certains ports via ## <BR>## le firewall en udp ## <BR>################################################### <BR> <BR>if [ "${PORTS_TCP_SORTIE_REFUSES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Interdiction de sortie de certains ports UDP :${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for port_no in ${PORTS_TCP_SORTIE_REFUSES} ;do <BR>${IPTABLES} -t filter -A FORWARD -p udp --dport ${port_no} -j DROP <BR>${IPTABLES} -t filter -A OUTPUT -p udp -o ${INTERNET} --dport ${port_no} -j DROP <BR>done <BR>fi <BR>################################################### <BR>## Interdiction de passage de certains mots cles ## <BR>################################################### <BR> <BR>if [ "${MOTS_CLES_INTERDITS}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Interdiction de passage de certains mots cles :${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for mot_cles in ${MOTS_CLES_INTERDITS} ;do <BR>mot=`echo ${mot_cles} | sed 's/>.*//g'` <BR>ip=`echo ${mot_cles} | sed 's/.*>//g'` <BR> <BR>${IPTABLES} -A INPUT -m string --string "${mot}" -d ${ip} -j DROP <BR>${IPTABLES} -A FORWARD -m string --string "${mot}" -d ${ip} -j DROP <BR>done <BR>fi <BR> <BR>################################################### <BR>## Autorisation des paquets ICMP ## <BR>################################################### <BR> <BR>if [ "${PAQUETS_ICMP_AUTHORISES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Authorisation de certains paquets ICMP :${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for icmp_no in ${PAQUETS_ICMP_AUTHORISES} ;do <BR>${IPTABLES} -t filter -A INPUT -p icmp --icmp-type ${icmp_no} -m limit --limit ${PING_FLOOD} -j ACCEPT <BR>${IPTABLES} -t filter -A FORWARD -p icmp --icmp-type ${icmp_no} -m limit --limit ${PING_FLOOD} -j ACCEPT <BR>${IPTABLES} -t filter -A OUTPUT -p icmp --icmp-type ${icmp_no} -m limit --limit ${PING_FLOOD} -j ACCEPT <BR>done <BR>fi <BR> <BR> <BR>################################################### <BR>## Autorise certains protocoles a circuler ## <BR>################################################### <BR> <BR>if [ "${PROTOCOLES_AUTHORISES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Authorisation de certains protocoles :${NORMAL}ttt${VERT}OK${NORMAL}" <BR> <BR>for protocole_no in ${PROTOCOLES_AUTHORISES} ;do <BR>${IPTABLES} -t filter -A INPUT -p ${protocole_no} -j ACCEPT <BR>${IPTABLES} -t filter -A FORWARD -p ${protocole_no} -j ACCEPT <BR>done <BR>fi <BR> <BR> <BR>################################################### <BR>## Autorise les connections deja etablie avant le## <BR>## lancement de ce script ## <BR>################################################### <BR> <BR>echo -e "${GRAS}${JAUNE}Autorisation des connections deja etablies :${NORMAL}tt${VERT}OK${NORMAL}" <BR>${IPTABLES} -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT <BR>${IPTABLES} -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT <BR>${IPTABLES} -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT <BR> <BR> <BR>################################################### <BR>## Autorise les connections LocalHost ## <BR>################################################### <BR> <BR>echo -e "${GRAS}${JAUNE}Autorisation des connections propres au localhost :${NORMAL}t${VERT}OK${NORMAL}" <BR>${IPTABLES} -t filter -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT <BR>${IPTABLES} -t filter -A FORWARD -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT <BR>${IPTABLES} -t filter -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT <BR> <BR>################################################### <BR>## Autorisation des connections TCP sur le ## <BR>## device internet ## <BR>################################################### <BR> <BR>if [ "${INTERNET}" != "" ] ;then <BR>for internet_device in ${INTERNET} ;do <BR>if [ "${PORTS_TCP_INTERNET_AUTHORISES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Connections TCP sur l'interface internet ${internet_device}:${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for port_no in ${PORTS_TCP_INTERNET_AUTHORISES} ;do <BR>${IPTABLES} -t filter -A INPUT -p tcp -i ${internet_device} --dport ${port_no} -j ACCEPT <BR> <BR>if [ "0${port_no}" == "021" ] ;then <BR>${IPTABLES} -t filter -A INPUT -p tcp -i ${internet_device} --sport 20 --dport 1024:65535 ! --syn -j ACCEPT <BR>fi <BR>done <BR>fi <BR>done <BR>fi <BR> <BR> <BR>################################################### <BR>## Autorisation des connections UDP sur le ## <BR>## device internet ## <BR>################################################### <BR> <BR>if [ "${INTERNET}" != "" ] ;then <BR>for internet_device in ${INTERNET} ;do <BR>if [ "${PORTS_UDP_INTERNET_AUTHORISES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Connections UDP sur l'interface internet ${internet_device}:${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for port_no in ${PORTS_UDP_INTERNET_AUTHORISES} ;do <BR>${IPTABLES} -t filter -A INPUT -p udp -i ${internet_device} --dport ${port_no} -j ACCEPT <BR>done <BR>fi <BR>done <BR>fi <BR> <BR> <BR>################################################### <BR>## Autorisation des connections TCP sur le ## <BR>## device DMZ ## <BR>################################################### <BR> <BR>if [ "${DMZ}" != "" ] ;then <BR>for dmz_device in ${DMZ} ;do <BR>if [ "${PORTS_TCP_DMZ_AUTHORISES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Connections TCP sur l'interface DMZ ${dmz_device}:${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for port_no in ${PORTS_TCP_DMZ_AUTHORISES} ;do <BR>${IPTABLES} -t filter -A INPUT -p tcp -i ${dmz_device} --dport ${port_no} -j ACCEPT <BR> <BR>if [ "0${port_no}" == "021" ] ;then <BR>${IPTABLES} -t filter -A INPUT -p tcp -i ${dmz_device} --sport 20 --dport 1024:65535 ! --syn -j ACCEPT <BR>fi <BR>done <BR>fi <BR>done <BR>fi <BR> <BR>################################################### <BR>## Autorisation des connections UDP sur le ## <BR>## device DMZ ## <BR>################################################### <BR> <BR>if [ "${DMZ}" != "" ] ;then <BR>for dmz_device in ${DMZ} ;do <BR>if [ "${PORTS_UDP_DMZ_AUTHORISES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Connections UDP sur l'interface DMZ ${dmz_device}:${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for port_no in ${PORTS_UDP_DMZ_AUTHORISES} ;do <BR>${IPTABLES} -t filter -A INPUT -p udp -i ${dmz_device} --dport ${port_no} -j ACCEPT <BR>done <BR>fi <BR>done <BR>fi <BR> <BR> <BR>################################################### <BR>## Autorisation des connections TCP sur le ## <BR>## device de la zone serveurs ## <BR>################################################### <BR> <BR>if [ "${ZONE_SERVEURS}" != "" ] ;then <BR>for zone_serveurs_device in ${ZONE_SERVEURS} ;do <BR>if [ "${PORTS_TCP_ZONE_SERVEURS_AUTHORISES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Connections TCP sur l'interface zone serveurs ${zone_serveurs_device}:${NORMAL}t${VERT}OK${NORMAL}" <BR> <BR>for port_no in ${PORTS_TCP_ZONE_SERVEURS_AUTHORISES} ;do <BR>${IPTABLES} -t filter -A INPUT -p tcp -i ${zone_serveurs_device} --dport ${port_no} -j ACCEPT <BR> <BR>if [ "0${port_no}" == "021" ] ;then <BR>${IPTABLES} -t filter -A INPUT -p tcp -i ${zone_serveurs_device} --sport 20 --dport 1024:65535 ! --syn -j ACCEPT <BR>fi <BR>done <BR>fi <BR>done <BR>fi <BR> <BR>################################################### <BR>## Autorisation des connections UDP sur le ## <BR>## device de la zone serveurs ## <BR>################################################### <BR> <BR>if [ "${ZONE_SERVEURS}" != "" ] ;then <BR>for zone_serveurs_device in ${ZONE_SERVEURS} ;do <BR>if [ "${PORTS_UDP_ZONE_SERVEURS_AUTHORISES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Connections UDP sur l'interface zone serveurs ${zone_serveurs_device}:${NORMAL}t${VERT}OK${NORMAL}" <BR> <BR>for port_no in ${PORTS_UDP_ZONE_SERVEURS_AUTHORISES} ;do <BR>${IPTABLES} -t filter -A INPUT -p udp -i ${zone_serveurs_device} --dport ${port_no} -j ACCEPT <BR>done <BR>fi <BR>done <BR>fi <BR> <BR>################################################### <BR>## Autorisation des connections TCP sur le ## <BR>## device du LAN ## <BR>################################################### <BR> <BR>if [ "${LAN}" != "" ] ;then <BR>for lan_device in ${LAN} ;do <BR>if [ "${PORTS_TCP_LAN_AUTHORISES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Connections TCP sur l'interface LAN ${lan_device}:${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for port_no in ${PORTS_TCP_LAN_AUTHORISES} ;do <BR>${IPTABLES} -t filter -A INPUT -p tcp -i ${lan_device} --dport ${port_no} -j ACCEPT <BR> <BR>if [ "0${port_no}" == "021" ] ;then <BR>${IPTABLES} -t filter -A INPUT -p tcp -i ${lan_device} --sport 20 --dport 1024:65535 ! --syn -j ACCEPT <BR>fi <BR>done <BR>fi <BR>done <BR>fi <BR> <BR> <BR>################################################### <BR>## Autorisation des connections UDP sur le ## <BR>## device du LAN ## <BR>################################################### <BR> <BR>if [ "${LAN}" != "" ] ;then <BR>for lan_device in ${LAN} ;do <BR>if [ "${PORTS_UDP_LAN_AUTHORISES}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Connections UDP sur l'interface LAN ${lan_device}:${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for port_no in ${PORTS_UDP_LAN_AUTHORISES} ;do <BR>${IPTABLES} -t filter -A INPUT -p udp -i ${lan_device} --dport ${port_no} -j ACCEPT <BR>done <BR>fi <BR>done <BR>fi <BR>echo -e "" <BR> <BR> <BR>################################################### <BR>## Masquerade le LAN ## <BR>################################################### <BR> <BR>if [ "${MASQ_LAN}" = "YES" -o "${MASQ_LAN}" = "yes" ] ;then <BR>echo -e "${GRAS}${JAUNE}Activation du Masquerading pour le LAN :${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for reseau in ${RESEAUX_LAN} ;do <BR>${IPTABLES} -t nat -A POSTROUTING -s ${reseau} -o ${INTERNET} -j MASQUERADE <BR>${IPTABLES} -t filter -A FORWARD -s ${reseau} -j ACCEPT <BR>done <BR>fi <BR> <BR> <BR>################################################### <BR>## Masquerade la DMZ ## <BR>################################################### <BR> <BR>if [ "${MASQ_DMZ}" = "YES" -o "${MASQ_DMZ}" = "yes" ] ;then <BR>echo -e "${GRAS}${JAUNE}Activation du Masquerading pour la DMZ :${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for reseau in ${RESEAUX_DMZ} ;do <BR>${IPTABLES} -t nat -A POSTROUTING -s ${reseau} -o ${INTERNET} -j MASQUERADE <BR>${IPTABLES} -t filter -A FORWARD -s ${reseau} -j ACCEPT <BR>done <BR>fi <BR> <BR>################################################### <BR>## Masquerade la zone serveurs ## <BR>################################################### <BR> <BR>if [ "${MASQ_ZONE_SERVEURS}" = "YES" -o "${MASQ_ZONE_SERVEURS}" = "yes" ] ;then <BR>echo -e "${GRAS}${JAUNE}Activation du Masquerading pour la zone serveurs :${NORMAL}t${VERT}OK${NORMAL}" <BR> <BR>for reseau in ${RESEAUX_ZONE_SERVEURS} ;do <BR>${IPTABLES} -t nat -A POSTROUTING -s ${reseau} -o ${INTERNET} -j MASQUERADE <BR>${IPTABLES} -t filter -A FORWARD -s ${reseau} -j ACCEPT <BR>done <BR>fi <BR> <BR> <BR>################################################### <BR>## Activation du NAT en TCP ## <BR>################################################### <BR> <BR>if [ "${NAT_TCP_NET}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Activation du TCP network address translation :${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for translation in ${NAT_TCP_NET} ;do <BR>srcport=`echo ${translation} | sed 's/>.*//g'|cut -d : -f 2` <BR>srchost=`echo ${translation} | sed 's/:.*//g'` <BR>desthost=`echo ${translation} | sed 's/.*>//g'| cut -d : -f 1` <BR>destport=`echo ${translation} | sed 's/.*://g'` <BR> <BR>${IPTABLES} -t nat -A PREROUTING -p tcp -i ${INTERNET_NAT} -d ${srchost} --dport ${srcport} -j DNAT --to ${desthost}:${destport} <BR>${IPTABLES} -A FORWARD -p tcp -i ${INTERNET_NAT} -d ${desthost} --dport ${destport} -j ACCEPT <BR>done <BR>fi <BR> <BR> <BR>################################################### <BR>## Activation du NAT en UDP ## <BR>################################################### <BR> <BR>if [ "${NAT_UDP_NET}" != "" ] ;then <BR>echo -e "${GRAS}${JAUNE}Activation du UDP network address translation :${NORMAL}tt${VERT}OK${NORMAL}" <BR> <BR>for translation in ${NAT_UDP_NET} ;do <BR>srcport=`echo ${translation} | sed 's/>.*//g'|cut -d : -f 2` <BR>srchost=`echo ${translation} | sed 's/:.*//g'` <BR>desthost=`echo ${translation} | sed 's/.*>//g'| cut -d : -f 1` <BR>destport=`echo ${translation} | sed 's/.*://g'` <BR> <BR>${IPTABLES} -t nat -A PREROUTING -p udp -i ${INTERNET_NAT} -d ${srchost} --dport ${srcport} -j DNAT --to ${desthost}:${destport} <BR>${IPTABLES} -A FORWARD -p udp -i ${INTERNET_NAT} -d ${desthost} --dport ${destport} -j ACCEPT <BR>done <BR>fi <BR> <BR>################################################### <BR>## $%#&! nimda and codered <IMG SRC="images/smiles/icon_smile.gif"> ## <BR>################################################### <BR> <BR>echo -e "${GRAS}${JAUNE}Protection contre Nimda et codered :${NORMAL}ttt${VERT}OK${NORMAL}" <BR>${IPTABLES} -I INPUT -j DROP -m string -p tcp -s 0.0.0.0/0 --string "c+dir" <BR>${IPTABLES} -I INPUT -j DROP -m string -p tcp -s 0.0.0.0/0 --string "c+tftp" <BR>${IPTABLES} -I INPUT -j DROP -m string -p tcp -s 0.0.0.0/0 --string "cmd.exe" <BR>${IPTABLES} -I INPUT -j DROP -m string -p tcp -s 0.0.0.0/0 --string "default.ida" <BR>${IPTABLES} -I FORWARD -j DROP -m string -p tcp -s 0.0.0.0/0 --string "c+dir" <BR>${IPTABLES} -I FORWARD -j DROP -m string -p tcp -s 0.0.0.0/0 --string "c+tftp" <BR>${IPTABLES} -I FORWARD -j DROP -m string -p tcp -s 0.0.0.0/0 --string "cmd.exe" <BR>${IPTABLES} -I FORWARD -j DROP -m string -p tcp -s 0.0.0.0/0 --string "default.ida" <BR> <BR> <BR>################################################### <BR>## Activation des logs ## <BR>################################################### <BR> <BR>echo -ne "${GRAS}${JAUNE}Activation du systeme de logs :${NORMAL}" <BR>${IPTABLES} -t filter -A INPUT -p tcp -m limit --limit ${LOG_FLOOD} -j LOG --log-level info --log-prefix "INPUT TCP DROPPED : " <BR>${IPTABLES} -t filter -A INPUT -p udp -m limit --limit ${LOG_FLOOD} -j LOG --log-level info --log-prefix "INPUT UDP DROPPED : " <BR>${IPTABLES} -t filter -A INPUT -p icmp -m limit --limit ${LOG_FLOOD} -j LOG --log-level info --log-prefix "INPUT ICMP DROPPED : " <BR>${IPTABLES} -t filter -A INPUT -f -m limit --limit ${LOG_FLOOD} -j LOG --log-level info --log-prefix "INPUT FRAGMENT DROPPED : " <BR>${IPTABLES} -t filter -A INPUT -p all -m limit --limit ${LOG_FLOOD} -j LOG --log-level info --log-prefix "INPUT PROTOCOL DROPPED : " <BR> <BR>${IPTABLES} -t filter -A FORWARD -p tcp -m limit --limit ${LOG_FLOOD} -j LOG --log-level info --log-prefix "FORWARD TCP DROPPED : " <BR>${IPTABLES} -t filter -A FORWARD -p udp -m limit --limit ${LOG_FLOOD} -j LOG --log-level info --log-prefix "FORWARD UDP DROPPED : " <BR>${IPTABLES} -t filter -A FORWARD -p icmp -m limit --limit ${LOG_FLOOD} -j LOG --log-level info --log-prefix "FORWARD ICMP DROPPED : " <BR>${IPTABLES} -t filter -A FORWARD -f -m limit --limit ${LOG_FLOOD} -j LOG --log-level info --log-prefix "FORWARD FRAGMENT DROPPED : " <BR>${IPTABLES} -t filter -A FORWARD -p all -m limit --limit ${LOG_FLOOD} -j LOG --log-level info --log-prefix "FORWARD PROTOCOL DROPPED : " <BR>echo -e "tttt${VERT}OK${NORMAL}" <BR> <BR>_________________ <BR>No One Will Ever Need More Than 640K Ram - Bill Gates, 1981<BR><BR><font size=-2></font>
No One Will Ever Need More Than 640K Ram - Bill Gates, 1981
Avatar de l’utilisateur
arapaho
Amiral
Amiral
 
Messages: 1119
Inscrit le: 18 Avr 2002 00:00
Localisation: Genève

Suivant

Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invité(s)