Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[iptables] Squid et iptables
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
zerros
Apprentice
Apprentice


Joined: 02 Jun 2010
Posts: 179

PostPosted: Thu May 03, 2012 11:51 am    Post subject: [iptables] Squid et iptables Reply with quote

Bonjour,

Je suis en train de mettre en place un proxy squid, et je bloque sur le côté iptables.
Ajourd'hui tout focntionne bien, mais j'ai un énorme trou de sécurité côté lan squid.

Mon archi: 2 cartes réseaux, une dans le réseau de la free** et l'autre dans le réseau squid.

Le routage entre les deux cartes en passant par la redirection http/s vers le squid fonctionne bien.
Mais si un pc est connecté dans le réseau squid et qu'il tente une connexion ssh sur l'ip de sa passerelle (donc le serveur squid),
sa tentative est un succès même s'il n'a pas les identifiant de connexion.

Ce que je voudrai, c'est bloquer tous les ports en entrée de la carte réseau squid sauf le http/s et le dns.

Si je modifie la règle
Code:
iptables -A INPUT -i $RISKS_IFACE -j ACCEPT

par
Code:
iptables -A INPUT -i $RISKS_IFACE -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i $RISKS_IFACE -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i $RISKS_IFACE -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i $RISKS_IFACE -p tcp --dport 443 -j ACCEPT


Et bien plus de net sur les machines clientes.

Détails:
SECURE_IFACE => interface dans lan connecté à internet
RISKS_IFACE => interface dans le lan derrière le squid
SQUID_SECURE_SERVER => ip du squid dans le lan connecté à internet
SQUID_RISKS_SERVER => ip du squid dans le lan derrière le squid

Voilà mon iptables:
Code:
#!/bin/sh

# Variables
SQUID_SECURE_SERVER="192.168.2.43"      # serveur Squid connecté au réseau sécurisé
SQUID_RISKS_SERVER="192.168.1.2"        # serveur Squid au réseau à risques
SQUID_PORT="3128"                       # port du serveur squid
SECURE_LAN="192.168.2.0/24"             # LAN sécurisé
RISKS_LAN="192.168.1.0/24"              # LAN à risques
SECURE_IFACE="eth0"                     # interface connecté à internet
RISKS_IFACE="eth1"                      # interface connecté au réseau à risques

# Modules
/sbin/modprobe ip_conntrack

# Sysctl
echo 1 > /proc/sys/net/ipv4/ip_forward

#################################################
# Vider les tables actuelles
#################################################
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

#################################################
# default policy : DROP
#################################################
iptables -P INPUT DROP
iptables -P OUTPUT DROP
#iptables -N LOGDROP
#iptables -A LOGDROP -j LOG
#iptables -A LOGDROP -j DROP

#################################################
# accepte tout ce qui concerne l'interface loopback
#################################################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#################################################
# on accepte les paquets relatifs aux connexions deja ouvertes
#################################################
# eth0
iptables -A INPUT -i $SECURE_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $SECURE_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
# eth1
iptables -A INPUT -i $RISKS_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $RISKS_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

#################################################
# on accepte les requetes icmp
#################################################
# eth0
iptables -A INPUT -i $SECURE_IFACE -p icmp -s $SECURE_LAN -d $SQUID_SECURE_SERVER --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i $SECURE_IFACE -p icmp -s $SECURE_LAN -d $SQUID_SECURE_SERVER --icmp-type echo-request -j ACCEPT
# eth1
iptables -A INPUT -i $RISKS_IFACE -p icmp -s $RISKS_LAN -d $SQUID_RISKS_SERVER --icmp-type echo-request -j DROP

#################################################
# SSH
#################################################
# eth0
iptables -A INPUT -i $SECURE_IFACE -p tcp -s $SECURE_LAN -d $SQUID_SECURE_SERVER --dport 22 -j ACCEPT


#################################################
# DNS
#################################################
# iptables -A INPUT -i $RISKS_IFACE -p udp -s $RISKS_LAN --dport 53 -j ACCEPT

#################################################
# Routage
#################################################
iptables --table nat --append POSTROUTING -o $SECURE_IFACE -j MASQUERADE
#iptables -A FORWARD -i $RISKS_IFACE -j ACCEPT
iptables -A FORWARD --in-interface $RISKS_IFACE -j ACCEPT
iptables -A INPUT -i $RISKS_IFACE -j ACCEPT # <<<<<<<-------------------------------------- TOUT EST OUVERT !!!!!
iptables -t nat -A PREROUTING -i $RISKS_IFACE -p tcp --dport 80 -j DNAT --to $SQUID_SECURE_SERVER:$SQUID_PORT
iptables -t nat -A PREROUTING -i $SECURE_IFACE -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT

#################################################
# on accepte ce qui sort vers l'exterieur
#################################################
# eth0
iptables -A OUTPUT -o $SECURE_IFACE -j ACCEPT
# eth1
iptables -A OUTPUT -o $RISKS_IFACE -j ACCEPT

#################################################
# LOG et DROP tout le reste
#################################################
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP


Vous auriez une super idée ?
_________________
- zerros -
Back to top
View user's profile Send private message
d2_racing
Bodhisattva
Bodhisattva


Joined: 25 Apr 2005
Posts: 13047
Location: Ste-Foy,Canada

PostPosted: Fri May 04, 2012 3:46 am    Post subject: Reply with quote

Je suis pas expert, mais il me semble que tu devrais ajouter des clauses forward, car si mon souvenir est bon, la clause output sert seulement si c'est vraiment cette interface qui initie un paquet...donc dans ton cas, ça sert de passerelle, d'où la raison d'utiliser la clause forward.
Back to top
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Fri May 04, 2012 9:01 am    Post subject: Reply with quote

Visiblement non, si je comprends bien le but, c'est pas de forward (pas d'accès direct du lan vers l'extérieur, pas de nat, pas de masquerade, rien de tout ça), et sortie seulement par le proxy squid pour le web.
Du coup, les machines du LAN n'ont besoin que de se connecter au proxy et de faire du DNS.

La je vois pas dans les règles ce qui coince, mais lire les iptables de quelqu'un d'autre, c'est jamais évident. Ce qui serait bien, c'est de voir un petit tcpdump lors d'une requête web qui coince, voir quels paquets arrivent et partent. Et aussi, comment sont configurés les navigateurs ? proxy transparent uniquement ou configuration explicite ?

[EDIT]
D'ailleurs, si comme je l'ai compris la gateway et le proxy sont sur la même machine, la règle pour le redirect vers le squid transparent a un souci (pourquoi DNAT ici squid écoute bien sur les 2 interfaces non ?) :
Code:
iptables -t nat -A PREROUTING -i $RISKS_IFACE -p tcp --dport 80 -j DNAT --to $SQUID_SECURE_SERVER:$SQUID_PORT

devient :
Code:
iptables -t nat -A PREROUTING -i $RISKS_IFACE -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT

ou mieux (pour éviter de pourrir le port 80 de la gateway) :
Code:
iptables -t nat -A PREROUTING -i $RISKS_IFACE -p tcp --dport 80 ! -d {SQUID_RISKS_SERVER} -j REDIRECT --to-port $SQUID_PORT

ou :
Code:
iptables -t nat -A PREROUTING -i $RISKS_IFACE -p tcp --dport 80 ! -d {RISKS_LAN} -j REDIRECT --to-port $SQUID_PORT


[EDIT2]
Je viens de repenser à l'histoire du forward... Tu as bien un DNS sur la gateway ? les clients sont bien configurés pour l'utiliser ? Sinon si tu utilises des DNS externe, il manque effectivement une règle de forward !
_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum