Fichier SQUID
 
#####################################################
#port sur lequel le proxy écoute les clients Web
http_port 3128
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
 
#port sur lequel le proxy va dialoguer avec les autres proxy du réseau
icp_port 3130
 
#ne pas utiliser le cache pour ? et .cgi
hierarchy_stoplist cgi-bin ? .cgi
 
#mémoire RAM allouée au proxy
cache_mem 8 MB
 
#taille maximale des fichiers qui seront enregistrés dans le cache
maximum_object_size 4096 KB
 
#répertoire dans lequel seront stockés les fichiers enregistrés.
#dans cet exemple, la taille maximale de ce répertoire sera de 1Go - il y aura 16 sous divisions dans /var/spool/squid - et l y aura 256 divisions dans ces 16 sous divisions
cache_dir ufs /home/squid/spool/squid 1000 16 256
#cache_dir ufs /var2/spool/squid 1500 16 256
 
#fichiers de log nécessaires pour controler le fonctionnement du cache
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_swap_log /var/log/squid/swap.log
 
 
#localisation de la table MIME de squid
mime_table /etc/squid/mime.conf
 
#informations relatives au processus
pid_filename /var/run/squid.pid
debug_options ALL,1
 
#listes d'accès
acl allowed_hosts src 193.51.200.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl manager proto cache_object
acl all src 0.0.0.0/0.0.0.0
acl SSL_ports port 443 563
acl safe_ports port 80 21 443 563 70 210 1025-65535
acl CONNECT method CONNECT
acl porn url_regex "/etc/squid/porn.txt"
#acl notporn url_regex "/etc/squid/notporn.txt"
 
#autorisation/interdiction des listes définies
http_access allow manager localhost
http_access allow manager allowed_hosts
http_access deny  !safe_ports
http_access deny  CONNECT !SSL_ports
http_access deny  porn
 
#email du manager du cache
cache_mgr administrateur@test.fr
 
#nom (virtuel) du cache
#visible_hostname test.fr
 
#rotation des fichiers log
logfile_rotate 4
 
cache_effective_user squid
cache_effective_group squid
 
#pour exclure du cache l'intranet (local)
acl web-local dstdomain test.fr
always_direct allow web-local
no_cache deny web-local
 
 
 
#################################################################################
 
Script de firewall
###################
 
#!/bin/bash
 
#Activation du routage IP
echo 1 > /proc/sys/net/ipv4/ip_forward
 
# Protection contre le Spoofing
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
 for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
 do
   echo 1 > $filtre
 done
fi
 
# Protection contre le ICMP
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
 
# Chargement des modules
modprobe ip_tables
modprobe ip_nat_ftp
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
 
# Effacement des anciennes règles et chaines
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
 
# Politique par defaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
 
# Pour tout accepter sur la boucle locale
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
 
# Pour que le Proxy soit connecte
iptables -A OUTPUT -o eth0 -p tcp -m multiport --dport 80,443,21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m multiport --sport 80,443,21 -m state --state ESTABLISHED -j ACCEPT
 
# Pour accepter la Resolution DNS sur la passerelle
iptables -A OUTPUT -o eth0 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
 
# Pour que le Proxy soit tansparent
iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80 -j DNAT --to-destination 193.51.200.2:3128
iptables -A INPUT -i eth1 -s 193.51.200.0/24 -p tcp --dport 3128 -j ACCEPT
iptables -A OUTPUT -o eth1 -d 193.51.200.0/24 -p tcp --sport 3128 -j ACCEPT
 
# Pour Masquer le LAN en faisant du Masquerading
iptables -t nat -A POSTROUTING -s 193.51.200.0/24 -j MASQUERADE
 
# Pour donner l'acces a internet au Lan
iptables -A FORWARD -s 193.51.200.0/24 -i eth1 -o eth0 -p tcp -m multiport --dport 443,21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -d 193.51.200.0/24 -i eth0 -o eth1 -p tcp -m multiport --sport 443,21 -m state --state ESTABLISHED -j ACCEPT
 
# Pour accepter la resolution DNS sur le LAN
iptables -A FORWARD -s 193.51.200.0/24 -i eth1 -o eth0 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -d 193.51.200.0/24 -i eth0 -o eth1 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 193.51.200.0/24 -i eth1 -o eth0 -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -d 193.51.200.0/24 -i eth0 -o eth1 -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
 
# Pour accepter une connexion SSH
iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED -p tcp --sport 22 -j ACCEPT
 
# Emettre une Connexion SSH
iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
 
# Pour Autoriser les connexion FTP sur notre serveur
iptables -A FORWARD -p tcp --sport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp --dport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --sport 20 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
 
# Pour envoyer des Mails
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
 
# Pour recevoir des Mails
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT
 
# Pour accepter une connexion a Webmin
iptables -A INPUT -i eth0 -p tcp --dport 10000 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 10000 -m state --state ESTABLISHED -j ACCEPT
 
echo " [Firewall Active]"
 
 
####################################################################
configuration Réseau
 
eth0 : 81.51.XX.XX IP Publique
eth1 : 193.51.200.1 IP Privé connecté à mon LAN