Proxy squid pour gérer les visiteurs

Bonjour,

Je voudrai mettre en place un serveur proxy transparent pour gérer des locataires d’un appartement. En gros je veux empêcher le p2p et autres accès aux sites de téléchargements les plus connu sur ma connexion freebox.

J’ai donc penser à embarquer un squid sur un plugcomputer. J’ai lu beaucoup de tutos, et tous parlent d’intercepter les requêtes pour les relayer après traitement, mais personne dis comment se passe l’interception. Est ce qu’il suffit de mettre un serveur dhcp qui fourni le dns et la passerelle du serveur squid ? Dans ce cas la, le serveur squid doit faire du nat avec 2 nic pour gérer le routage ?

Mon but est d’obliger la personne à passer par squid. Du coup la vraie ip de la freebox n’est jamais relayée sur leur Pc.

Peut être suffit il effectivement de mettre squid sur le réseau pour qu’il intercepte le trafic ?

Pourriez-vous m’éclairer svp ?

Salut,
Squid n’interceptera que le trafic http, pas le reste.

Pour ce qui est du p2p c’est plus compliqué. Il va falloir tout bloquer (n’importe qui change de port pour faire du p2p - Même sous Windows… :mrgreen: ) et n’autoriser/filtrer que quelques ports. Le tout avec iptables.

Ok, mais concrètement comment ça fonctionne. Je Régule flux http et https avec squid. J’ajoute des règles iptables pour bloquer les ports sortants (squid ne sait pas gérer les ports ?) peut importe je peux le faire.

Mais imaginons que je mette un serveur dhcp qui fournisse l’iP, le dns et la gateway. Mais qu’est-ce qui empêche la personne de se mettre en ip fixe et mettre l’iP de la freebox directement ? Faut-il 2 cartes réseau pour sécuriser le tout et faire du nat pour ne pas que la personne soit sur le même lan que la freebox. À moins que squid sache intercepter sur le lan toutes les requêtes qui transitent ?

Re,
Squid ne gère pas les ports, c’est un proxy http.
Squid ne s’occupe que de http. Impossible pour le https, c’est son objectif: éviter le “man inside”

C’est iptables qui ouvrira et fermera les ports.
Effectivement rien n’empêche de se mettre en ip fixe et de passer directement par la freebox.
La seule façon (à moins de pouvoir bloquer toutes les ip’s sauf une sur la freebox - je ne sais pas si c’est possible), c’est d’interposer un pc avec deux cartes entre ton lan et la freebox.
Le pc sert alors de passerelle filtrante. Squid pour le trafic http, iptables pour le reste.

Tu peux faire comme moi, c’est à dire bloquer tout le trafique sur les ports non standard avec iptables. ci- dessous le scrip iptables que je me suis fait :

[code]
#!/bin/sh

Script de démarrage qui lance l’interface réseau internet,

met en place un firewall et un partage de connexion

#Déclaration des interfaces :
interface_WAN=eth0
interface_LAN=eth1

start() {

init du la périphérique internet (ici derriere une freebox)

/sbin/ifup $interface_WAN
echo “activation de l’interface WAN”

Dans cette partie, on met en place le firewall

#vidage des chaines
iptables -F
echo “vidage des chaines”
#destruction des chaines personnelles
iptables -X
echo “destruction des chaines personnelles”

#stratégies par défaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

echo “mise en place de la stratégie par défault (INPUT et FORWARD = DROP et OUTPUT = DROP)”

#init des tables NAT et MANGLE (pas forcément nécessaire)
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT

#redirection requète ver dansguardian
iptables -t nat -D PREROUTING 1
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080

#permet de rediriger les requètes vers 3128 (proxy squid)
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
echo “initialisation des tables NAT et MANGLE”

Acceptation de toutes les connexions en local (un process avec l’autre)

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
echo “Acceptation de toutes les connexions en local”

###################

INPUT

###################

=== anti scan ===

iptables -N SCANS
iptables -A SCANS -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A SCANS -p tcp --tcp-flags ALL ALL -j DROP
iptables -A SCANS -p tcp --tcp-flags ALL NONE -j DROP
iptables -A SCANS -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
####################
echo “mise en route de l’anti-scan”
#pas de spoofing
if [ -e /proc/sys/net/ipv4/conf/all/ip_filter ] ;
then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo > 1 $filtre
done
fi
echo “[mise en route de l’anti-spoofing]”
#pas de synflood
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ;
then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi
echo “[mise en route de l’anti-synflood]”

=== limite TCP, UDP, ICMP Flood ! ===

TCP Syn Flood

iptables -A INPUT -i $interface_WAN -p tcp --syn -m limit --limit 3/s -j ACCEPT

UDP Syn Flood

iptables -A INPUT -i $interface_WAN -p udp -m limit --limit 10/s -j ACCEPT

Ping Flood

iptables -A INPUT -i $interface_WAN -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i $interface_WAN -p icmp --icmp-type echo-reply -m limit --limit 1/s -j ACCEPT

echo “limite TCP, UDP, ICMP Flood !”
####################

=== Netoyage des Paquets particuliers ===

Make sure NEW incoming tcp connections are SYN packets

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

Packets with incoming fragments

iptables -A INPUT -f -j DROP

incoming malformed XMAS packets

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

Incoming malformed NULL packets

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
#limitation du nombre de connexion sur port SSH
iptables -A INPUT -p tcp --dport 5055 -m state --state NEW -m recent --name BLACKLIST --set
iptables -A INPUT -p tcp --dport 5055 -m state --state NEW -m recent --name BLACKLIST --update --seconds 10 --hitcount 10 --rttl -j DROP
echo “Netoyage des Paquets particuliers”
#Blocage de l’icmp sur le WAN du serveur
iptables -A INPUT -i $interface_WAN -p icmp -j DROP
echo “blocage du ping (ICMP) sur l’interface WAN”
#drop des broadcast
iptables -A INPUT -i $interface_WAN -m pkttype --pkt-type broadcast -j DROP

#####################

FORWARD

#####################

PORT FORWARDING:

attention : on ne peut malheureusement pas mettre un nom de machine en destination, il faut mettre l’adresse IP.

exemple : on veut qu’un serveur HTTP installé sur une machine du réseau local soit visible depuis l’extérieur.

#iptables -t nat -A PREROUTING -i $interface_WAN -p tcp --dport 554 -j DNAT --to-destination 192.168.168.103 ACCEPT
#iptables -A FORWARD -p tcp -i $interface_WAN --dport 554 -j ACCEPT
#iptables -t nat -A PREROUTING -p udp --dport 32768:32784 -J DNAT --to-destination 192.168.168.103 ACCEPT
#iptables -A FORWARD -s 192.168.168.103 -p udp --dport 32768:32784 -J ACCEPT

#Bloquage de plages IP indésirables

en gros elle sont sur le site du RIPE (organisme distribuent les IP ou plage IP au profesionnel)

site du RIPE https://apps.db.ripe.net/search/full-text.html (ADOPI et trident media guard (tmg) sont de mot a rechercher :wink:

###inetnum: 90.80.100.192 - 90.80.100.207 netname=FR-HADOPI
iptables -I INPUT -p all -s 90.80.100.192/28 -j DROP
iptables -I OUTPUT -p all -d 90.80.100.192/28 -j DROP
iptables -I FORWARD -p all -s 90.80.100.192/28 -j DROP

###inetnum: 195.6.180.141 - 195.6.180.141 netname=FR-LB_INTERNET-HADOPI
iptables -I INPUT -p all -s 195.6.180.141 -j DROP
iptables -I OUTPUT -p all -d 195.6.180.141 -j DROP
iptables -I FORWARD -p all -s 195.6.180.141 -j DROP

###inetnum: 90.80.155.208 - 90.80.155.223 netname=FR-HADOPI
iptables -I INPUT -p all -s 90.80.155.240/28 -j DROP
iptables -I OUTPUT -p all -d 90.80.155.240/28 -j DROP
iptables -I FORWARD -p all -s 90.80.155.208/28 -j DROP

###inetnum: 90.80.155.240 - 90.80.155.255 netname=FR-HADOPI
iptables -I INPUT -p all -s 90.80.155.240/28 -j DROP
iptables -I OUTPUT -p all -d 90.80.155.240/28 -j DROP
iptables -I FORWARD -p all -s 90.80.155.240/28 -j DROP

#inetnum: 80.12.48.0 - 80.12.48.255 netname=FT-HADOPI, descr=LNS Hadopi
iptables -I INPUT -p all -s 80.12.48.0/24 -j DROP
iptables -I OUTPUT -p all -d 80.12.48.0/24 -j DROP
iptables -I FORWARD -p all -s 80.12.48.0/24 -j DROP

###inetnum: 81.80.36.231 - 81.80.36.231 netname=FR-LB_INTERNET-HADOPI
iptables -I INPUT -p all -s 81.80.36.231 -j DROP
iptables -I OUTPUT -p all -d 81.80.36.231 -j DROP
iptables -I FORWARD -p all -s 81.80.36.231 -j DROP

###inetnum: 81.80.36.232 - 81.80.36.232 netname=FR-LB_INTERNET-HADOPI
iptables -I INPUT -p all -s 81.80.36.232 -j DROP
iptables -I OUTPUT -p all -d 81.80.36.232 -j DROP
iptables -I FORWARD -p all -s 81.80.36.232 -j DROP

###inetnum: 81.80.36.233 - 81.80.36.233 netname=FR-LB_INTERNET-HADOPI
iptables -I INPUT -p all -s 81.80.36.233 -j DROP
iptables -I OUTPUT -p all -d 81.80.36.233 -j DROP
iptables -I FORWARD -p all -s 81.80.36.233 -j DROP

###inetnum: 81.80.36.234 - 81.80.36.234 netname=FR-LB_INTERNET-HADOPI
iptables -I INPUT -p all -s 81.80.36.234 -j DROP
iptables -I OUTPUT -p all -d 81.80.36.234 -j DROP
iptables -I FORWARD -p all -s 81.80.36.234 -j DROP

###inetnum: 193.107.240.0 - 193.107.243.255 descr=TRIDENT MEDIA GUARD TMG
iptables -I INPUT -p all -s 193.107.240.0/22 -j DROP
iptables -I OUTPUT -p all -d 193.107.240.0/22 -j DROP
iptables -I FORWARD -p all -s 193.107.240.0/22 -j DROP

###inetnum: 195.191.244.0 - 195.191.245.255 descr=TRIDENT MEDIA GUARD TMG
iptables -I INPUT -p all -s 195.191.244.0/23 -j DROP
iptables -I OUTPUT -p all -d 195.191.244.0/23 -j DROP
iptables -I FORWARD -p all -s 195.191.244.0/23 -j DROP

###inetnum: 193.105.197.0 - 193.105.197.255 descr=TRIDENT MEDIA GUARD TMG
iptables -I INPUT -p all -s 193.105.197.0/24 -j DROP
iptables -I OUTPUT -p all -d 193.105.197.0/24 -j DROP
iptables -I FORWARD -p all -s 193.105.197.0/24 -j DROP

###route: 193.107.240.0/22 AS174 descr=Trident Media Guard (TMG)
iptables -I INPUT -p all -s 193.107.240.0/22 -j DROP
iptables -I OUTPUT -p all -d 193.107.240.0/22 -j DROP
iptables -I FORWARD -p all -s 193.107.240.0/22 -j DROP

###route: 195.191.244.0/23 AS174 descr=Trident Media Guard (TMG)
iptables -I INPUT -p all -s 195.191.244.0/23 -j DROP
iptables -I OUTPUT -p all -d 195.191.244.0/23 -j DROP
iptables -I FORWARD -p all -s 195.191.244.0/23 -j DROP

iptables -I INPUT -p all -s 85.159.236.252/30 -j DROP
iptables -I OUTPUT -p all -d 85.159.236.252/30 -j DROP
iptables -I FORWARD -p all -s 85.159.236.252/30 -j DROP

iptables -I INPUT -p all -s 85.159.232.80/30 -j DROP
iptables -I OUTPUT -p all -d 85.159.232.80/30 -j DROP
iptables -I FORWARD -p all -s 85.159.232.80/30 -j DROP

iptables -I INPUT -p all -s 82.138.81.211/32 -j DROP
iptables -I OUTPUT -p all -d 82.138.81.211/32 -j DROP
iptables -I FORWARD -p all -s 82.138.81.211/32 -j DROP

iptables -I INPUT -p all -s 193.105.197.0/24 -j DROP
iptables -I OUTPUT -p all -d 193.105.197.0/24 -j DROP
iptables -I FORWARD -p all -s 193.105.197.0/24 -j DROP

iptables -I INPUT -p all -s 90.80.155.240/28 -j DROP
iptables -I OUTPUT -p all -d 90.80.155.240/28 -j DROP
iptables -I FORWARD -p all -s 90.80.155.240/28 -j DROP

iptables -I INPUT -p all -s 195.6.180.141/32 -j DROP
iptables -I OUTPUT -p all -d 195.6.180.141/32 -j DROP
iptables -I FORWARD -p all -s 195.6.180.141/32 -j DROP

iptables -I INPUT -p all -s 85.116.217.200/29 -j DROP # ADOPI
iptables -I OUTPUT -p all -d 85.116.217.200/29 -j DROP # ADOPI
iptables -I FORWARD -p all -s 185.116.217.200/29 -j DROP # ADOPI

echo “Bloquage plages IP indésirables”

####################

OUTPUT

####################

=====================================================

=== TENTATIVE pour SORTIE (OUTPUT)Pour le SERVEUR ===

=====================================================

== On accepte la sortie de certains protocoles ==

iptables -A OUTPUT -o $interface_WAN -p UDP --dport 123 -j ACCEPT # Port 123 (Time ntp udp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 123 -j ACCEPT # Port 123 (Time ntp tcp)
iptables -A OUTPUT -o $interface_WAN -p UDP --dport domain -j ACCEPT # Port 53 (DNS)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport domain -j ACCEPT # Port 53 (DNS)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport http -j ACCEPT # Port 80 (Http)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport https -j ACCEPT # Port 443 (Https)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 143 -j ACCEPT # Port 143 (imap)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport pop3 -j ACCEPT # Port 110 (Pop3)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 993 -j ACCEPT # Port 993 (auth.SSL)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 995 -j ACCEPT # Port 995 (auth.SSL)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport smtp -j ACCEPT # Port 25 (Smtp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 587 -j ACCEPT # Port 587 (Smtp)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport ftp-data -j ACCEPT # Port 20 (Ftp Data)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport ftp -j ACCEPT # Port 21 (Ftp)
#iptables -A OUTPUT -o $interface_WAN -p TCP --dport 10000 -j ACCEPT # Port 10000 (webmin)
#iptables -A OUTPUT -o $interface_WAN -p TCP --dport 445 -j ACCEPT # Port 445 (Samba)
#iptables -A OUTPUT -o $interface_WAN -p TCP --dport 139 -j ACCEPT # Port 139 (Samba)
#iptables -A OUTPUT -o $interface_WAN -p UDP --dport 137:138 -j ACCEPT # Port 137 a 138 (Samba)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport nntp -j ACCEPT # Port 119 (News groups)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 1863 -j ACCEPT # Port 1863 (Msn messenger)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 5222 -j ACCEPT # Port 1863 (Msn Pidgin)
iptables -A OUTPUT -o $interface_WAN -p TCP --dport 554 -j ACCEPT #port vlc
iptables -t filter -A OUTPUT -o $interface_WAN -m state --state NEW -s $serveur -d $UPNP_Broadcast -p udp --sport 1024: --dport $SSDP_port -j ACCEPT # broadcast UPNP pour ushare

=== OUTPUT générique ? ===

On autorise les connexions deja etablies ou relatives à une autre connexion a sortir

iptables -A OUTPUT -o $interface_WAN --match state --state ESTABLISHED,RELATED -j ACCEPT
echo “Aceptation de certain protocole en sortie pour le serveur”
#Autoriser le ping sur des IP externes
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

==================================================

=== TENTATIVE pour SORTIE (OUTPUT) Pour le LAN ===

==================================================

== On accepte la sortie de certains protocoles ==

iptables -A OUTPUT -o $interface_LAN -p UDP --dport 123 -j ACCEPT # Port 123 (Time ntp udp)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 123 -j ACCEPT # Port 123 (Time ntp tcp)
iptables -A OUTPUT -o $interface_LAN -p UDP --dport domain -j ACCEPT # Port 53 (DNS)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport domain -j ACCEPT # Port 53 (DNS)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport http -j ACCEPT # Port 80 (Http)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport https -j ACCEPT # Port 443 (Https)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 143 -j ACCEPT # Port 143 (imap)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport pop3 -j ACCEPT # Port 110 (Pop3)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 993 -j ACCEPT # Port 993 (auth.SSL)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 995 -j ACCEPT # Port 995 (auth.SSL)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport smtp -j ACCEPT # Port 25 (Smtp)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport ftp-data -j ACCEPT # Port 20 (Ftp Data)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport ftp -j ACCEPT # Port 21 (Ftp)
#iptables -A OUTPUT -o $interface_LAN -p TCP --dport 10000 -j ACCEPT # Port 10000 (webmin)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 445 -j ACCEPT # Port 445 (Samba)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 139 -j ACCEPT # Port 139 (Samba)
iptables -A OUTPUT -o $interface_LAN -p UDP --dport 137:138 -j ACCEPT # Port 137 a 138 (Samba)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport nntp -j ACCEPT # Port 119 (News groups)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 1863 -j ACCEPT # Port 1863 (Msn messenger)
iptables -A OUTPUT -o $interface_LAN -p TCP --dport 5222 -j ACCEPT # Port 1863 (Msn Pidgin)

=== OUTPUT générique ? ===

On autorise les connexions deja etablies ou relatives à une autre connexion a sortir

iptables -A OUTPUT -o $interface_LAN --match state --state ESTABLISHED,RELATED -j ACCEPT

echo “Aceptation de certain protocole en sortie pour le LAN”

##############################################

Partage de la connexion internet

##############################################

#création d’une nouvelle règle
iptables -N MAregle
#définition de la règle : accepter les nouvelles connexions ne venant pas de l’interface internet

et accepter toutes les connexions établies et reliées (ex: une demande de page HTML provoque l’ouverture

d’une connexion reliée pour acheminer cette page vers l’ordinateur)

iptables -A MAregle -m state --state NEW -i $interface_LAN -j ACCEPT
iptables -A MAregle -m state --state NEW,ESTABLISHED,RELATED,UNTRACKED -j ACCEPT

#application de la règle au partage de connexion
iptables -A INPUT -j MAregle
iptables -A FORWARD -j MAregle

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o $interface_WAN -j MASQUERADE
echo “Mise en place du partage de connextion internet”

Ecriture de la politique de log

Ici on affiche [IPTABLES DROP] dans /var/log/message a chaque paquet rejette par iptables

#iptables -N LOG_DROP
#iptables -A LOG_DROP -j LOG --log-level 1 --log-prefix ‘[IPTABLES DROP]:’
#iptables -A LOG_DROP -j DROP

On met en place les logs en entree, sortie et routage selon la politique LOG_DROP ecrit avant

#iptables -A FORWARD -j LOG_DROP
#iptables -A INPUT -j LOG_DROP
#iptables -A OUTPUT -j LOG_DROP
#echo “Mise en place des log dans /var/log/messages avec préfixe [IPTABLES DROP]:”

LOG ### Log tous ce qui qui n’est pas accepter par une règles précédente

    # prés requit :       sudo apt-get install sysklogd
    #                     echo 'kern.warning             /var/log/iptables.log' > /etc/syslog.conf                     
iptables -A OUTPUT -j LOG --log-level 4 --log-prefix '[OUTPUT DROP]:'

iptables -A INPUT -j LOG --log-level 4 --log-prefix '[INPUT DROP]:'
iptables -A FORWARD -j LOG --log-level 4 --log-prefix '[FORWARD DROP]:'
echo "############ ##############"
iptables -L -n # commanter pour desactiver l’afichage des règles en cours
echo “############ ##############”
}

stop() {
echo 0 >/proc/sys/net/ipv4/ip_forward
ifdown $interface_WAN
}

case “$1” in

start)
start
echo “firewall IPv4 démarré”
;;

stop)
stop
echo “firewall IPv4 stopé”
;;
restart)
stop && start
echo “firewall IPv4 redémarré”
;;
status)
status
/sbin/iptables -L -n
/sbin/iptables -t nat -L -n
RETVAL=?
;;
*)
echo "Usage $0 {start|stop|restart|status}"
exit 1
esac

exit 0[/code]

J’ai mis en place un proxy squid transparent avec dansguardian et clamav.
Le script iptables bloquera le p2p et tout autre connections à destination des port non standard.

En espérant que cela pourra l’aider.

Bonjour,

comment est cablé ton réseau ?

est ce qu’ils utilisent un réseau cabléou tout simplement le wifi de la box ?

Merci pour ce script. Il me sera certainement utile quand je commencerai l’install.

Les locataires seront en wifi. Pas de câble. Voilà pourquoi je vais mettre un dhcp sur le pc ou tournera squid. De ce fait je pourrai donner les informations de connexion avec comme gateway et dns le serveur squid.

Si j’ai bien compris, le meilleur moyen de bien protéger le système est de mettre un PC avec 2 cartes réseau, et donc 2 lan différents.

Oui c’est ça.

ça donne : BOX----eth0 de ton serveur / eth1 de ton serveur----lanWIFI.

Avec une redirection transparente des requêtes http vers dansguardian ( filtrage des sites ) qui lui même renvoie vers squid.

Ps: dans la partie FORWARD du script je bloque certaine plage d’IP ( adopi et autre) mais ce n’est pas obligatoire. Après mon script fonctionne bien, mais il ne doit pas être parfait. A voir pour amélioration possible…

Bonjour,

Je reviens de loinnnnnnn … J’ai installé et fait une configuration simple de squid avec squidguard.
J’ai pris une partie du script iptables de leo-25, que j’ai remanié pour mes besoins. Sauf que je ne pige pas une chose. J’ai dû ajouter une ligne qui ouvre tout en INPUT pour le lan derrière le proxy sinon plus de navigation sur les PCs:

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

[code]#################################################

Routage

#################################################
iptables --table nat --append POSTROUTING -o $SECURE_IFACE -j MASQUERADE
iptables --append FORWARD --in-interface $RISKS_IFACE -j ACCEPT
iptables -A INPUT -i $RISKS_IFACE -j ACCEPT # <=========== !!!
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[/code]

Mon but est de bloquer TOUS LES PORTS, sauf le HTTP et HTTPS sur le réseau squid. Si je remplace:

par

iptables -A INPUT -i $RISKS_IFACE -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i $RISKS_IFACE -p tcp --dport 443 -j ACCEPT iptables -A INPUT -i $RISKS_IFACE -p tcp --dport 53 -j ACCEPT

Et bien ça ne fonctionne pas. Une idée ?

Pour le 53 tu peux également rajouter le UDP

Bon j’ai ajouter l’udp et idem …

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

Je ne pige pas … Il y a forcément un truc que je fais mal … mais quoi …

Désolé, niveau iptables je n’y connaîs pour le moment pas grand chose…
Tu n’as rien dans tes logs?
Après, si tu veux juste les empêcher de télécharger, tu peux créer une ACL avec une liste d’extension que tu interdits… (solution de contournement du problème, oui, j’assume ^^)

oui, l’acl avec la liste des extensions est prévue aussi. je n’ai pas vu encore comment faire ça, mais j’y viendrai :slightly_smiling:

Le souci de bloquer les ports et de bloquer les connexions sortantes ssh/ftp/p2p etc. me permets de gérer le traffic engendré par des petit malins qui voudraient utiliser la connexion internet pour télécharger sur du torrent, ou l’utiliser pour faire des performances de hack. Je le rapelle, la connexion sera dans un appart en location. Alors je me suis dit: Je bloque tout sauf http, https et DNS.

Je finirai bien par trouver le pourquoi du comment. Je suis persévérant …

Je vais peut-être poser une question qui est hors-sujet, mais qui rentre quand même dans le cadre de ton topic:
C’est toi qui loue l’appartement avec une connexion Internet et tu veux restreindre la connexion à tes futurs locataires?

Non, je le fais pour un copain qui part s’installer à l’étranger :slightly_smiling:
La nouvelle calédonnie. ca fait rêver non !!! Si je pouvais partir avec lui dans ses valises :d

En effet…

Je t’ai demandé ça car cela aurait pu poser des problèmes d’ordre légal.

Salut,

Quel genre de problèmes ?

Si tu n’autorises que les protocoles http/https, (DNS inclut bien évidemment), et bloque tout le reste, il subsiste un problème lié à la liberté, car l’accès à Internet est en France une liberté fondamentale.

Le locataire a parfaitement le droit d’utiliser des réseaux peer to peer s’il le souhaite (il existe des fichiers parfaitement légaux), ainsi que des fichiers sur FTP. Il peut également vouloir utiliser pour X raison un logiciel qui utilise un port non standard (jeux, messagerie).

Du coup, le priver de l’accès à ce genre de choses n’est, si mes dires sont correctes, pas légal.

Ce serait bien qu’une personne ayant des compétences en droit puisse affirmer ou infirmer mes dires. Je pense que c’est un sujet qui est intéressant.

Salut,
A mon avis, quand tu te connectes à un réseau, tu acceptes les règles du-dit réseau. Droit fondamental ou pas.
Le filtrage du réseau dépend de celui à qui appartient la connexion, il fait ce qu’il veut.
Si MacDo t’interdit de surfer sur des sites pornos, c’est son problème. Si t’es pas content tu va chez BurgerKing…

Nous de parlons pas de FAI ici… Là c’est différent.

Dans le cadre de la location, tu paies (loues) également la-dite connexion. Je ne parle pas des réseaux MacDO et consort, c’est encore différent.

PS: BurgerKing, ça fait loin quand même :mrgreen: