ripmaster Posté(e) le 8 septembre 2009 Partager Posté(e) le 8 septembre 2009 Bonjour, Je sollicite votre aide car j'ai installé un proxy squid sur un serveur qui marche parfaitement au vu des tests actuels. Mon problème vient maintenant du fait que je veuille l'intégrer dans mon réseau via iptables en redirigeant le port 80 vers celui de squid et en bloquant tous les ports par défaut mais en laissant en passer certains identifiés dans le forwarding. J'ai donc fait un petit script bash, mais je ne maîtrise pas vraiment iptables. J'aurais donc voulu si possible que ceux qui maîtrisent iptables me disent si ça leur semble bon avant que je le lance pour intégrer mon proxy au réseau. Je vous remercie beaucoup par avance, toute aide sera la bienvenue. Voici donc mon script : #! /bin/sh LAN="eth0" WAN="eth1" PORT_SQUID="3128" IP_PROXY="192.168.0.253" # Configuration reseau de la machine # Nous vidons toutes les chaines iptables -F # Nous supprimons les chaines non standard iptables -X # Par defaut tout est ferme iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Reinitialisation des tables NAT et MANGLE iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Chargement de modules pour le support de conntrack modprobe ip_conntrack modprobe ip_conntrack_ftp # Module pour le FTP (en plus de celui ci-dessus) modprobe ip_nat_ftp # Activation du forwarding echo 1 > /proc/sys/net/ipv4/ip_forward # On ouvre certaines chaines iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT # Translation d'adresse pour tout ce qui sort vers l'internet iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE # Acces total pour le loop back iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Resolution DNS pour les machines du LAN iptables -A FORWARD -i $LAN -o $WAN -p udp --sport 53 -j ACCEPT iptables -A FORWARD -i $LAN -o $WAN -p udp --dport 53 -j ACCEPT iptables -A FORWARD -i $LAN -o $WAN -p tcp --sport 53 -j ACCEPT iptables -A FORWARD -i $LAN -o $WAN -p tcp --dport 53 -j ACCEPT # On permet toutes les connexions sur le LAN depuis le firewall iptables -A INPUT -i $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $LAN -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # On permet toutes les connexions sur le firewall depuis le LAN iptables -A INPUT -i $LAN -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT # On accepte toutes les liaisons firewall-Internet iptables -A OUTPUT -o $WAN -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # On accepte les liaisons Internet-firewall deja etablies iptables -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT # On accepte toutes les liaisons LAN-Internet iptables -A FORWARD -i $LAN -o $WAN -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # On accepte les liaisons Internet-LAN deja etablies iptables -A FORWARD -i $WAN -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT ################# PROXY ################ ############################################################ ### REGLES ### # Acces total dans le LAN iptables -A INPUT -i $LAN -j ACCEPT iptables -A OUTPUT -o $LAN -j ACCEPT # Proxy transparent avec redirection du port 80 vers le port de Squid et l'IP du serveur proxy # (deux lignes car deux interfaces reseau) iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j DNAT --to-destination $IP_PROXY:$PORT_SQUID iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 80 -j REDIRECT --to-port $PORT_SQUID ############################################################ ### FORWARDING ### # Les connections suivantes destinees a etre forwardees sont toutes acceptees iptables -A FORWARD -i $LAN -o $WAN -p tcp --dport 110 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i $LAN -o $WAN -p tcp --dport 25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i $LAN -o $WAN -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i $LAN -o $WAN -p tcp --dport 38216 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT ############################################################ # Seules les connexions deja etablies ou en relation avec des connexions deja etablies sont acceptees venant du Net vers le LAN iptables -A FORWARD -i $WAN -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT # Ici on refuse les connexion entrantes et les paquets invalides iptables -A INPUT -i $WAN -m state --state NEW,INVALID -j LOG_DROP iptables -A OUTPUT -o $WAN -m state --state INVALID -j LOG_DROP # Toutes les regles qui n'ont pas passe les regles du firewall seront refusees et loguees... iptables -A FORWARD -j LOG_DROP iptables -A INPUT -j LOG_DROP iptables -A OUTPUT -j LOG_DROP Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 8 septembre 2009 Partager Posté(e) le 8 septembre 2009 Salut ! A mon avis, ce genre de scripts, il faut les tester sur une machine avant de les lancer en prod ... Personne ne connaît mieux le besoin que toi. 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.