tra tux | Bonjour à tous, je suis désolé de remettre ce sujet sur le tapis mais je n'arrive pas à trouver mon erreur dans le fichier que j'utilise pour configurer iptables et plus de squid pour un serveur sous ubuntu. En effet ce fichier fonctionnait très bien jusqu'à une mise à jour d'ubuntu lors de la sortie de la 9.04, et maintenant.... plus rien, quelle que soit la version d'ubuntu.
Le problème est au niveau des forwards pour pop3 et smtp: rien ne passe...???? Je viens aussi de découvrir un problème au niveau de squid: la restriction horaire ne fonctionne pas tout le temps...?
Et tant que j'y suis je n'arrive pas à faire passer le ftp, que ce soit avec squid ou avec iptables.
Merci d'avance à ceux qui auront le courage de se pencher sur mes problèmes: j'y ai passé une après midi sans avancer du tout.
Je mets le fichier de config d'iptables (que j'ai d'ailleurs vu plusieurs fois sur le forum), ainsi que le fichier conf de squid.
Iptables:
Code :
- #!/bin/bash
- # /8 /255.0.0.0
- # /16 /255.255.0.0
- # /24 /255.255.255.0
- #
- #
- ###################
- LOCAL="eth0"
- INTERNET="eth1"
- PRIVATE="192.168.0.0/24"
- SERVEUR="192.168.0.1"
- # Fonction pour arrêter le firewall (on flush)
- stop() {
- #/etc/init.d/squid stop
- echo -n "Flush des règles Iptables: "
- # On remet la police par défaut à ACCEPT
- #
- iptables -P INPUT ACCEPT
- iptables -P FORWARD ACCEPT
- iptables -P OUTPUT ACCEPT
- #
- # On remet les polices par défaut pour la table NAT
- #
- iptables -t nat -P PREROUTING ACCEPT
- iptables -t nat -P POSTROUTING ACCEPT
- iptables -t nat -P OUTPUT ACCEPT
- #
- # On vide (flush) toutes les règles existantes
- #
- iptables -F
- iptables -t nat -F
- #
- # Et enfin, on efface toutes les chaînes qui ne
- # sont pas à defaut dans la table filter et nat
- iptables -X
- iptables -t nat -X
- # Message de fin ok
- echo -e "[ \E[$40;32m OK \E[$40;0m ]"
- #echo -e "[\E[$40;33mfailed\E[$40;0m]"#failed
- }
- start(){
- #/etc/init.d/squid stop
- #/etc/init.d/squid start
- echo -n "Chargement des règles Iptables: "
- # Pour activer le forwarding
- echo 1 > /proc/sys/net/ipv4/ip_forward
- ###################
- # Pas de 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
- ###################
-
- ###################
- # Pas de synflood
- if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then
- echo 1 > /proc/sys/net/ipv4/tcp_syncookies
- fi
- ###################
- modprobe ip_conntrack
- modprobe iptable_nat
- #modprobe iptable_filter
- # Pour autoriser les connexions ftp :
- modprobe ip_conntrack_ftp
- modprobe ip_nat_ftp
- # Activation du partage de connexion
- echo "1" > /proc/sys/net/ipv4/ip_forward
- # Remise à zero d'iptables:
- iptables -F
- iptables -t nat -F
- iptables -t mangle -F
- iptables -X
- iptables -t nat -X
- iptables -t mangle -X
- ###################
- # La on logue et on refuse le paquet
- iptables -N LOG_DROP
- iptables -A LOG_DROP -j ULOG --ulog-nlgroup 1 --ulog-prefix 'RULE 1 -- DROP '
- iptables -A LOG_DROP -j DROP
- # ici, on logue et on accepte le paquet
- iptables -N LOG_ACCEPT
- iptables -A LOG_ACCEPT -j ULOG --ulog-nlgroup 1 --ulog-prefix 'RULE 2 -- ACCEPT '
- iptables -A LOG_ACCEPT -j ACCEPT
- ######################################
-
- ###################
- # Regles par defaut:
- # on refuse les connexions entrantes
- iptables -P INPUT DROP
- # on refuse les connexions destinées à être forwardées
- iptables -P FORWARD DROP
- # les connexions sortantes sont refusées par défaut
- iptables -P OUTPUT DROP
- ###################
- # Translation d'adresse pour tout ce qui sort vers l'internet
- iptables -A POSTROUTING -t nat -o $INTERNET -j MASQUERADE
- #####################################################################
- # Regles générale sur les differente interfaces
- # On accepte tout ce qui entre et sort de l'interface de loopback
- iptables -A INPUT -i lo -j ACCEPT
- iptables -A OUTPUT -o lo -j ACCEPT
- # On accepte les packets entrants relatifs à des connexions déjà établies sur l'interface connectée au net
- iptables -A INPUT -i $INTERNET -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -A OUTPUT -o $INTERNET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-
- # On accepte les packets entrants relatifs à des connexions déjà établies sur l'interface connectée au lan
- iptables -A INPUT -i $LOCAL -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -A OUTPUT -o $LOCAL -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- ####################################################################
- # Regles
- # Partage de fichiers uniquement en local
- iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 139 -j ACCEPT
- iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 445 -j ACCEPT
- # on accepte l'envoie de mail sur le serveur a partir du reseau local
- #iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 25 -j ACCEPT
- #on laisse passer les requetes dns
- iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 53 -j ACCEPT
- iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 53 -j ACCEPT
- #on laisse passer le proxy
- #iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 8080 -j ACCEPT
- # on autorise le trafique web de partout
- iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- iptables -A INPUT -p tcp --dport 443 -j ACCEPT
- # ssh
- iptables -A INPUT -p tcp --dport ssh -j ACCEPT
- # Redirection du port 80 vers le port 8080 ( celui du poxy squid )
- iptables -t nat -A PREROUTING -s $PRIVATE -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080
- iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 8080 -j ACCEPT
- # les pings
- iptables -A INPUT -p icmp -i eth0 -j ACCEPT
- iptables -A OUTPUT -p icmp -o eth0 -j ACCEPT
- ############################################################
- # Forwarding
- # Les connections venant du lan destiné a etre forwardé sont accepté.
- iptables -A FORWARD -i $LOCAL -o $INTERNET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- iptables -A FORWARD -i $LOCAL -o $INTERNET -p tcp \
- --dport 110 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- iptables -A FORWARD -i $LOCAL -o $INTERNET -p tcp \
- --dport 25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- iptables -A FORWARD -i $LOCAL -o $INTERNET -p tcp \
- --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- iptables -A FORWARD -i $LOCAL -o $INTERNET -p tcp \
- --dport 38216 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- # Seules les connexions déjà établies ou en relation avec des connexions déjà établies sont acceptées venant du Net vers le LAN
- iptables -A FORWARD -i $INTERNET -o $LOCAL -m state --state ESTABLISHED,RELATED -j ACCEPT
- # Permet à l'ensemble du LAN de dialoguer sur internet avec la même adresse IP
- iptables -t nat -A POSTROUTING -s $PRIVATE -j MASQUERADE
- # Ici on refuse les connexion entrantes et les paquets invalides
- iptables -A INPUT -i $INTERNET -m state --state NEW,INVALID -j LOG_DROP
- iptables -A OUTPUT -o $INTERNET -m state --state INVALID -j LOG_DROP
- # Toutes les règles qui n'ont pas passé les règles du firewall seront refusées et loguées...
- iptables -A FORWARD -j LOG_DROP
- iptables -A INPUT -j LOG_DROP
- iptables -A OUTPUT -j LOG_DROP
- # Message de fin ok
- echo -e "[ \E[$40;32m OK \E[$40;0m ]"
- }
-
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- reload)
- stop
- start
- ;;
- status)
- /sbin/iptables -L
- /sbin/iptables -t nat -L
- ;;
- *)
- echo -e "Usage: proxy {start|stop|reload|status}"
- exit 1
- ;;
- esac
- exit 0
|
Squid:
Code :
- http_port 192.168.0.1:8080
- hierarchy_stoplist cgi-bin ?
- acl QUERY urlpath_regex cgi-bin \?
- no_cache deny QUERY
- cache_mem 16 MB
- maximum_object_size 15 MB
- cache_dir ufs /var/spool/squid 200 16 256
- emulate_httpd_log on
- refresh_pattern ^ftp: 1440 20% 10080
- refresh_pattern ^gopher: 1440 0% 1440
- refresh_pattern . 0 20% 4320
- # on crée les groupes pour les interdictions
- acl grands src 192.168.0.2 192.168.0.3
- acl maison src 192.168.0.0/255.255.255.0
- #Horaires de connection
- acl tpsconnection time M 19:00-20:30 \
- T 19:00-20:30 \
- W 16:00-20:00 \
- H 19:00-21:30 \
- F 19:00-21:30 \
- A 09:00-12:00 16:00-20:00 \
- S 16:00-20:30
- acl all src 0.0.0.0/0.0.0.0
- acl manager proto cache_object
- acl localhost src 127.0.0.1/255.255.255.255
- acl to_localhost dst 127.0.0.0/8
- acl SSL_ports port 443 563 # https, snews
- acl SSL_ports port 873 # rsync
- acl Safe_ports port 80 # http
- acl Safe_ports port 21 # ftp
- acl Safe_ports port 443 563 # https, snews
- acl Safe_ports port 70 # gopher
- acl Safe_ports port 210 # wais
- acl Safe_ports port 1025-65535 # unregistered ports
- acl Safe_ports port 280 # http-mgmt
- acl Safe_ports port 488 # gss-http
- acl Safe_ports port 591 # filemaker
- acl Safe_ports port 777 # multiling http
- acl Safe_ports port 873 # rsync
- acl Safe_ports port 1863 # msn
- acl purge method PURGE
- acl CONNECT method CONNECT
- http_access allow manager localhost
- http_access deny manager
- http_access allow purge localhost
- http_access deny purge
- http_access deny !Safe_ports
- http_access deny CONNECT !SSL_ports
- http_access allow grands
- http_access allow maison tpsconnection
- # Ces deux lignes permettent d'intégrer le plugin SquidGuard
- url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
- url_rewrite_children 8
- http_access allow localhost
- http_access deny all
- http_reply_access allow all
- icp_access allow all
- coredump_dir /var/spool/squid
- dns_nameservers 212.27.53.252 212.27.54.252
- error_directory /usr/share/squid/errors/French
- visible_hostname serveur-maison
|
|