niocs Posté(e) le 20 février 2005 Partager Posté(e) le 20 février 2005 Bonjour Alors voila je me suis enfin décider à me mettre à iptables pour faire mon firewall. J'ai donc crée un script pour les règles que voici #!/bin/sh ############################################### ################ Configuration ################ ############################################### IPTABLES=/sbin/iptables MODPROBE=/sbin/modprobe LAN_NET=10.0.0.0/24 LAN_IF=eth0 #DMZ_NET=192.168.1.0/24 #DMZ_IF=eth1 EXT_IF=ppp0 ############################################### ############# Configuration /proc ############# ############################################### # Activation du forwarding echo "1" > /proc/sys/net/ipv4/ip_forward # bloque icmp echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ############################################### ################ LES MODULES ################## ############################################### # Les modules indispensables $MODPROBE ip_tables $MODPROBE ip_conntrack $MODPROBE iptable_filter $MODPROBE iptable_nat $MODPROBE iptable_mangle $MODPROBE ipt_LOG $MODPROBE ipt_limit $MODPROBE ipt_state ############################################### ########### LES REGLES DE FILTRAGE ############ ############################################### #=================================================# # Suppression de toutes les règles des chaines prédéfinies # #=================================================# $IPTABLES -F $IPTABLES -t nat -F $IPTABLES -t mangle -F # effacez les chaines utilisateur $IPTABLES -X $IPTABLES -t nat -X $IPTABLES -t mangle -X #========================================================# # Mise en place des règles par défaut : # #========================================================# $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP #===========================================# # L'interface loopback accpete tout traffic # #===========================================# $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT #===========================================================# # Règles acceptant les paquets d'une connexion déjà établie # #===========================================================# $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED \ -j ACCEPT $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED \ -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED \ -j ACCEPT #================================# # Règles LAN vers EXT (Internet) # #================================# $IPTABLES -A FORWARD -i $LAN_IF -o $EXT_IF -j ACCEPT #=====================# # Règles EXT vers LAN # #=====================# $IPTABLES -A FORWARD -i $EXT_IF -o $LAN_IF --jump REJECT #====================# # Règles LAN vers fw # #====================# $IPTABLES -A INPUT -i $LAN_IF -p tcp --dport ssh -j ACCEPT #====================# # Règles EXT vers fw # #====================# $IPTABLES -A INPUT -i $EXT_IF -p tcp --dport ssh -j ACCEPT #============# # Règles nat # #============# $IPTABLES -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE $IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp \ -j DNAT --dport www --to-destination 10.0.0.1 $IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp \ -j DNAT --dport mail --to-destination 10.0.0.1 #======================================================# # Log des paquets refusés par toutes les autres règles # #======================================================# $IPTABLES -A INPUT -j LOG $IPTABLES -A OUTPUT -j LOG $IPTABLES -A FORWARD -j LOG Mais avec ceci je n'arrive plus à accéder à internet quelqu'un aurai t'il une idée??? Lien vers le commentaire Partager sur d’autres sites More sharing options...
neologix Posté(e) le 20 février 2005 Partager Posté(e) le 20 février 2005 $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED \ -j ACCEPT $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED \ -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED \ -j ACCEPT Où acceptes-tu les connexions sortantes? IPTABLES -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT Pour le reste, je n'ai pas regardé. La mise en page n'est pas claire, et je ne vois pas à quoi servent les $ (passer /sbin/iptables en variable ne sert pas à grand chose, remplace par iptables). Prends exemple sur le script d'Alexis de Lattre (google), si tu veux. [EDIT] # bloque icmp echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts Pourquoi bloquer le ping comme cela? De toute façon, l'icmp entrant va être droppé dans ta chaine INPUT. [/EDIT] neo Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 20 février 2005 Partager Posté(e) le 20 février 2005 IPTABLES -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT il ne reste que la state "INVALID", qui ne doit pas arriver souvent... limite autant pas mettre le --state ? EDIT : surtout qu'en OUTPUT, les paquets qui sortent sont sencés être niquels, puisqu'ils viennent de la machin à protéger... [EDIT] # bloque icmp echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts Pourquoi bloquer le ping comme cela? De toute façon, l'icmp entrant va être droppé dans ta chaine INPUT. [/EDIT] neo bloquer le ping c'est MAL (le ping c'est une norme... à la limite on peut faire du qos pour éviter les dos par ping... (ou bien dans certains cas plus spécifiques de serveurs...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
-rem- Posté(e) le 20 février 2005 Partager Posté(e) le 20 février 2005 Bloquer le ping, c'est bien. Lien vers le commentaire Partager sur d’autres sites More sharing options...
neologix Posté(e) le 20 février 2005 Partager Posté(e) le 20 février 2005 Bon, voilà ce que je te proposerais #!/bin/sh ############################################### ################ Configuration ################ ############################################### IPTABLES=/sbin/iptables MODPROBE=/sbin/modprobe LAN_NET=10.0.0.0/24 LAN_IF=eth0 #DMZ_NET=192.168.1.0/24 #DMZ_IF=eth1 EXT_IF=ppp0 ############################################### ############# Configuration /proc ############# ############################################### # Activation du forwarding echo "1" > /proc/sys/net/ipv4/ip_forward # bloque icmp #echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all #echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ############################################### ################ LES MODULES ################## ############################################### # Les modules indispensables $MODPROBE ip_tables $MODPROBE ip_conntrack $MODPROBE iptable_filter $MODPROBE iptable_nat $MODPROBE iptable_mangle $MODPROBE ipt_LOG $MODPROBE ipt_limit $MODPROBE ipt_state ############################################### ########### LES REGLES DE FILTRAGE ############ ############################################### #=================================================# # Suppression de toutes les règles des chaines prédéfinies # #=================================================# $IPTABLES -F $IPTABLES -t nat -F $IPTABLES -t mangle -F # effacez les chaines utilisateur $IPTABLES -X $IPTABLES -t nat -X $IPTABLES -t mangle -X #========================================================# # Mise en place des règles par défaut : # #========================================================# $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD DROP #===========================================# # L'interface loopback accpete tout traffic # #===========================================# $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT #===========================================================# # Règles acceptant les paquets d'une connexion déjà établie # #===========================================================# $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -i EXT_IF -j ACCEPT $IPTABLES -A FORWARD -o EXT_IF -j ACCEPT #====================# # Règles LAN vers fw # #====================# $IPTABLES -A INPUT -i $LAN_IF -p tcp --dport ssh -j ACCEPT #====================# # Règles EXT vers fw # #====================# $IPTABLES -A INPUT -i $EXT_IF -p tcp --dport ssh -j ACCEPT #============# # Règles nat # #============# $IPTABLES -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE $IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp \ -j DNAT --dport www --to-destination 10.0.0.1 $IPTABLES -t nat -A PREROUTING -i $EXT_IF -p tcp \ -j DNAT --dport mail --to-destination 10.0.0.1 #======================================================# # Log des paquets refusés par toutes les autres règles # #======================================================# $IPTABLES -A INPUT -j LOG $IPTABLES -A OUTPUT -j LOG $IPTABLES -A FORWARD -j LOG Pour le ping, je rejoins remy. Pour un particulier, c'est déjà une première mesure de sécurité. [EDIT] Je ne connais pas la version de ton noyau, mieux vaut décommenter les lignes correspondant au chargement des modules, ce que je viens de corriger. [/EDIT] neo Lien vers le commentaire Partager sur d’autres sites More sharing options...
niocs Posté(e) le 20 février 2005 Auteur Partager Posté(e) le 20 février 2005 Ca marche nickel avec ce script il faudra que je m'attarde sur les remarque qui ont été faite. Et en définitif bloquer le ping il faut ou il ne faut pas le faire?? Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 20 février 2005 Partager Posté(e) le 20 février 2005 bloquer le ping, ça te cache aux yeux d'internet (enfin cache... un bien grand mot...) , par contre, ça ne respecte pas la RFC 792 ( http://www.freesoft.org/CIE/RFC/792/ ) Faudrait mesurer le différence avec/sans voir si ça sert vraiment à quelque chose de bloquer... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.