Aller au contenu

Intégration de Squid avec iptables


Messages recommandés

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...