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