Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Squid, iptables, pop3 et smtp...
Envoyé par: 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 en 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 sad smiley , quelle que soit la version d'ubuntu. Je pense que j'ai modifié quelque chose ou oublié d'installer un module, mais quoi....?

Le problème est au niveau des forwards pour pop3 et smtp: rien ne passe...????

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é plusieurs jours sans avancer du tout.

Je mets le fichier de config d'iptables , ainsi que le fichier conf de squid.

Iptables:
#!/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
###################
 

iptables -N LOG_DROP   #on crée la chaine des logs
iptables -A LOG_DROP -j LOG --log-prefix ' DROPING PAQUET : '
iptables -A LOG_DROP -j DROP
  

###################
# 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é. !!Toutes!!
#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:
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

Poste le Friday 22 May 2009 14:26:25
Répondre     Citer    
Re: Squid, iptables, pop3 et smtp...
Envoyé par: panthere noire

il te faut loguer avec des règle global pour voir ce qui passe pas.

iptables -A INPUT -j ULOG --ulog-prefix="entrée"
iptables -A OUTPUT -j ULOG --ulog-prefix="sortie"

a la place de ulog utilise log (ulog permet d'avoir les log dans un fichier séparer)

net install--> sid2.6.32 dist i386
fluxbox
nvidia 8800gtx 768 ddr3

Poste le Monday 15 June 2009 01:48:59
Répondre     Citer    
Re: Squid, iptables, pop3 et smtp...
Envoyé par: tra-tux

J'ai essayé ce script qui devrait permettre de forwarder simplement mais rien ne passe, et les logs ne signalent rien du tout. Je dois avoir une erreur de syntaxe quelque part....

#!/bin/bash

LOCAL="eth0"
INTERNET="eth1"
LAN="192.168.0.0/24"
SERVEUR="192.168.0.1"

# 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

# Remise à zero d'iptables:
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X


echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_conntrack
modprobe iptable_nat
modprobe iptable_filter
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp


# Translation d'adresse pour tout ce qui sort vers l'internet
iptables -A POSTROUTING -t nat -o eth1 -j MASQUERADE


# connexions LAN-Internet (ftp)
iptables -A FORWARD -p tcp --dport 21 -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --sport 21 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --sport 20 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --dport 20 -i eth0 -o eth1 -m state --state ESTABLISHED -j ACCEPT

# connexions LAN-Internet (pop)
iptables -A FORWARD -p tcp --dport 110 -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --sport 110 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# connexions LAN-Internet (imap)
iptables -A FORWARD -p tcp --dport 143 -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --sport 143 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# connexions LAN-Internet (smtp)
iptables -A FORWARD -p tcp --dport 25 -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --sport 25 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --dport 465 -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --sport 465 -i eth1 -o eth0 -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 192.168.0.0/24 -j MASQUERADE

Poste le Monday 15 June 2009 23:54:25
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Squid, iptables, pop3 et smtp...
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons