Neophyte Posté(e) le 19 août 2004 Partager Posté(e) le 19 août 2004 Bonjour à tous , Je suis comme mon pseudo l'indique une néophyte et nouvellement inscrite sur ce forum. Je n'ai connu linux qu'à travers les différents forums et pour tout vous dire je ne savais pas ce que c'était le shell, le bash etc il y a de celà 1 mois. Avant de me décider à migrer je me suis pas mal documentée. J'ai même acheté linux initiation et utilisation cours et exercices en plus du cours shell Unix comandes & progammation de Sébastien Rohaut pour m'aider. Avec tout cela j'ai réussi à installer le speedtouch usb (la raie), configurer le réseau et rendre tout cela fonctionnel. Une petite remarque cepandant : on a l'impression d'être un peu largué quand on décide de passer à linux car sur certains forums lorsque vous demandez de l'aide on vous renvoie vers de la doc ou on vous balance un lien où là encore vous être confronté à de la théorie. Il faut vraiment être persévérant, tenace, curieux avoir un niveau qui permette de déchiffrer les hiérogliphes des docs en ligne, pour ne pas tout balancer par la fenètre. Ce n'est qu'une constatation au parcours de différents forums et j'insiste sur le fait que ce n'est pas à but de polémiques. Cela étant, je voudrais vous exposer mon problème et je remercie d'avance tous ceux qui voudront bien m'aider de leurs pertinentes remarques. J'ai deux pc en réseau : PC A sous Power Pack de mandrakelinux 10.0 , kernel 2.6.3 modem speedtouch usb adsl PC B sous XP avec pare-feux ZA pro et McAfee J'ai rédigé un petit script iptables que je joins ci-après mais je ne sais pas s'il est en mesure de fonctionner, ni quels sont les erreurs ou autres aberrations que j'ai pu commettre aussi soyez indulgents # ! /bin/sh IPTABLES=/sbin/iptables iptables_start () { echo "[démarrage de iptables] EXTERNAL_IF="ppp0" INTERNAL_IF="eth0" #########################################################REGLES PAR DEFAUT######################################################## #echo "[initialisation de la table filter]" iptables -t filter -F iptables -t filter -X iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT DROP iptables -t filter -P FORWARD DROP #echo "[initialisation des tables nat et mangle]" iptables -t nat -F iptables -t nat -X iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -F iptables -t mangle -X iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P POSTROUTING ACCEPT #echo "[politique par défaut]" # Accepter les connections sortantes par défaut iptables -A OUTPUT ACCEPT # Autoriser la loopback iptables -t filter -A OUTPUT -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT iptables -t filter -A INPUT -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT iptables -t filter -A FORWARD -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT iptables -t filter -A FORWARD -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT #echo "[autoriser la connection entre le firewall et le reseau sans limites]" iptables -t filter -A OUTPUT -o eth0 -s 192.168.00/255.255.255.0 -d 192.168.0.0/255.255.255.0 -j ACCEPT iptables -f filter -A INPUT -i eth0 -s 192.168.0.0/255.255.255.0 -d 192.168.0.0/255.255.255.0 -j ACCEPT #Loguer les packets DROPés iptables -A LOG_DROP -j LOG --log-prefix "[iPT]" iptables -A LOG-DROP -j DROP #echo "[autorisation des machines du réseau à accéder a internet]" iptables -A OUTPUT -o $EXTERNAL_IF -p tcp --dport WWW -m state --state NEW ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i $EXTERNAL_IF -p tcp --sport -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $EXTERNAL_IF -p tcp -m multiport --sports www,https -m state --state ESTABLISHED,RELATED -j ACCEPT/td> iptables -A INPUT -i $EXTERNAL_IF -p tcp -m multiport --dports www,https -m state --state ESTABLISHED,RELATED -j ACCEPT #echo "[activation de la passrelle]" echo 1 > /proc/sys/net/ipv4/ip_forward #echo "[mise en place du masquerading]" iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.0.2 -o ppp0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.0.1 -o ppp0 -j MASQUERADE #echo "[autoriser les connexions santantes du réseau-net]" iptables -A FORWARD -i eth0 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #echo "[autorisation du serveur ftp (21 et 20) ...]" Modprobe ip_conntrack_ftp iptables -A INPUT -i $EXTERNAL_IF -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o $EXTERNAL_IF -p tcp --dport 21 -m stater --state NEW ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i $EXTERNAL_IF -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUPTUT -o $ESTERNAL_IF -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o $EXTERNAL_IF -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $EXTERNAL_IF -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state NEW -j ACCEPT #echo "[autorisation du serveur DNS (53) ...]" iptables -A OUTPUT -o $EXTERNAL_IF --protocol udp --dport 53 -j ACCEPT iptables -A INPUT -i $EXTERNAL_IF --protocol udp --sport 53 -j ACCEPT iptables -A OUTPUT -o $EXTERNAL_IF --protocol tcp --dport 53 -j ACCEPT iptables -A INPUT -i $EXTERNAL_IF--protocol tcp --sport 53 -j ACCEPT #echo "[autorisation du serveur smtp (25) ...]" iptables -A INPUT -o ppp0-p tcp --dport 25 -j ACCEPT iptables -A OUTPUT -o ppp0 -p tcp --sport 25 -j ACCEPT #echo "[autorisation du serveur pop (110) ...]" iptables -A output -p tcp --dport 110 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -J ACCEPT iptables -A INPUT -p tcp --sport 110 -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT #Autoriser les pings iptables -A OUTPUT -p icmp -m state --state NEWN RELATED,ESTABLISHED -j ACCEPT #Eviter le flood iptables -A INPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p icmp -m state --state NEW -m limit --limit 2/min -j ACCEPT Merci à tous Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dark26 Posté(e) le 19 août 2004 Partager Posté(e) le 19 août 2004 #echo "[autoriser la connection entre le firewall et le reseau sans limites]"iptables -t filter -A OUTPUT -o eth0 -s 192.168.00/255.255.255.0 -d 192.168.0.0/255.255.255.0 -j ACCEPT une erreur de frappe savoir si ça marche, aucune idée Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sandeman Posté(e) le 19 août 2004 Partager Posté(e) le 19 août 2004 Hey, globablement c'est pas mal pour un début ! bravo miss :) quelques petites corrections sur la forme, en supposant que sur le fond (ce qui doit rentrer et sortir) tu es en cohérence avec tes besoins. préliminairement, tu pourrais utiliser $IPTABLES que tu définis au début, à la place de juste "iptables" # Accepter les connections sortantes par défautiptables -A OUTPUT ACCEPT => # Accepter les connections sortantes par défaut iptables -P OUTPUT ACCEPT après quoi tes règles en -A OUTPUT ... -j ACCEPT sont implicites iptables -t filter -A OUTPUT -o eth0 -s 192.168.00/255.255.255.0 -d 192.168.0.0/255.255.255.0 -j ACCEPT iptables -f filter -A INPUT -i eth0 -s 192.168.0.0/255.255.255.0 -d 192.168.0.0/255.255.255.0 -j ACCEPT ici tu as un peu de redondance, dans la logique de ces règles et si tu précise l'interface, tu n'as pas besoin de sépcifier les IP : Puis suite à ma remarque ci-dessus, tu peux juste écrire iptables -f filter -A INPUT -i eth0 -j ACCEPT oups :oups: réunion à 14h je reviens je continue, promis ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Duke98 Posté(e) le 19 août 2004 Partager Posté(e) le 19 août 2004 euh, hmmm je t'aiderais pas .... je crois que je suis encore plus neophyte que toi mais en tout cas bienvenu à toi sur le forum :8 PS : PC INpact n'est pas un forum comme les autres Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sandeman Posté(e) le 19 août 2004 Partager Posté(e) le 19 août 2004 #Loguer les packets DROPésiptables -A LOG_DROP -j LOG --log-prefix "[iPT]" iptables -A LOG-DROP -j DROP Ici, il doit y avoir un petit problème d'autant que tu n'initialise jamais tes tables LOG?DROP et que tu ne les lies pas (via un -j) aux tables de base quand tu écris #echo "[autoriser les connexions santantes du réseau-net]"iptables -A FORWARD -i eth0 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT ça permet toutes les sorties vers l'extérieur, donc tu peux supprimer les règles avant ([autorisation des machines du réseau à accéder a internet]) qui sont d'ailleurs un peu confuses pour la masquerading, pareil, tu simplifie en enlevant les 2 dernières lignes, puisque celle du dessus correspond ... pour DNS, SMTP et POP tes règles en OUTPUT sont inutiles (toujours à cause du -P ACCEPT de mon premier post) pour le FTP (ta machien sera bien serveur FTP ?), ça ne va pas marcher, car tu autorise à entrer les ports 20 et 21 (OK) mais seulement pour des connexions déjà établies (RELATED, ESTABLISHED) alors que tu dois permettre l'initialisation de connexions, donc il faut virer le -state et ce qui suit En parlant de choses à virer, quand tout sera OK pour tu pourras virer tes firewalls sur XP, sauf qi tu t'en sers pour contrôler ce que tentent de faire tes applis en sortant ... Pour finir, tes 3 lignes de ping : la 2 est redondante avec la 1, et la 3 devrait être placée en premier ... Voilà ça devrait te faire un script un peu plus clair en plus. Si tu as le temps il y a une discussion assez longue avec des exemples de scripts ... (Note pour Remy et Sandeman pour la rédaction du topic iptables : expliciter : "je veux faire ça" "il faut que je fasse ça" "ce qui se traduit comme ça" -> "je veux rendre mon serveur Web interne accessible" "je dois donc autoriser le port 80 à entrer sur le firewall, et les requêtes doivent être redirigées vers la destination web interne" "iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT iptables -t nat -A POSTROUTING ..." ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
-rem- Posté(e) le 19 août 2004 Partager Posté(e) le 19 août 2004 chinois: sandeman.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sandeman Posté(e) le 19 août 2004 Partager Posté(e) le 19 août 2004 chinois: sandeman.... nan, nan, Breton seulement j'ai bien compris qu'il te manquait un : Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dark26 Posté(e) le 19 août 2004 Partager Posté(e) le 19 août 2004 oui en fait ce qui serait bien c'est vrai, c'est un exemple rapide et concret pour chaque truc , et ensuite il suffit de faire son marché sachant que 90 % des gens on jsute un accès au net ( ppp0 ?) et une care réseaux locale ( eth0) sinon l'exemple de sandeman était super interessant Lien vers le commentaire Partager sur d’autres sites More sharing options...
Neophyte Posté(e) le 19 août 2004 Auteur Partager Posté(e) le 19 août 2004 Re, Je te remercie Sandeman, d'avoir pris la peine de te pencher sur mon script. Je vais de ce pas revoir tous les points relevés et tâcher de les corriger. Par ailleurs, merci de l'info ce topic m'aidera certainement à mieux assimiler les scripts. Rien ne vaut une bonne explication même virtuelle Encore une fois merci Neophite Lien vers le commentaire Partager sur d’autres sites More sharing options...
-rem- Posté(e) le 19 août 2004 Partager Posté(e) le 19 août 2004 on va ecrire un truc beton sur le sujet avec mon ami chinois.... Le topic est deja cree, il se remplira au fur et a mesure... Lien vers le commentaire Partager sur d’autres sites More sharing options...
ssc37 Posté(e) le 19 août 2004 Partager Posté(e) le 19 août 2004 Quand je lis ca j'ai rien à voir ........ On peut en effet me définir de: 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.