Encore à propos d'iptables et de squid

Encore à propos d'iptables et de squid - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 21-05-2009 à 18:21:48    

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 :
  1. #!/bin/bash
  2. # /8      /255.0.0.0
  3. # /16     /255.255.0.0
  4. # /24     /255.255.255.0
  5. #
  6. #
  7. ###################
  8. LOCAL="eth0"
  9. INTERNET="eth1"
  10. PRIVATE="192.168.0.0/24"
  11. SERVEUR="192.168.0.1"
  12. # Fonction pour arrêter le firewall (on flush)
  13. stop() {
  14. #/etc/init.d/squid stop
  15. echo -n "Flush des règles Iptables: "
  16. # On remet la police par défaut à ACCEPT
  17. #
  18. iptables -P INPUT ACCEPT
  19. iptables -P FORWARD ACCEPT
  20. iptables -P OUTPUT ACCEPT
  21. #
  22. # On remet les polices par défaut pour la table NAT
  23. #
  24. iptables -t nat -P PREROUTING ACCEPT
  25. iptables -t nat -P POSTROUTING ACCEPT
  26. iptables -t nat -P OUTPUT ACCEPT
  27. #
  28. # On vide (flush) toutes les règles existantes
  29. #
  30. iptables -F
  31. iptables -t nat -F
  32. #
  33. # Et enfin, on efface toutes les chaînes qui ne
  34. # sont pas à defaut dans la table filter et nat
  35. iptables -X
  36. iptables -t nat -X
  37. # Message de fin ok
  38. echo -e "[ \E[$40;32m OK \E[$40;0m ]"
  39. #echo -e "[\E[$40;33mfailed\E[$40;0m]"#failed
  40. }
  41. start(){
  42. #/etc/init.d/squid stop
  43. #/etc/init.d/squid start
  44. echo -n "Chargement des règles Iptables: "
  45. # Pour activer le forwarding
  46. echo 1 > /proc/sys/net/ipv4/ip_forward
  47. ###################
  48. # Pas de spoofing
  49. if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
  50. then
  51.   for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
  52.     do
  53.        echo 1 > $filtre
  54.     done
  55. fi
  56. ###################
  57.  
  58. ###################
  59. # Pas de synflood
  60. if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then
  61.    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
  62. fi
  63. ###################
  64. modprobe ip_conntrack
  65. modprobe iptable_nat
  66. #modprobe iptable_filter
  67. # Pour autoriser les connexions ftp :
  68. modprobe ip_conntrack_ftp
  69. modprobe ip_nat_ftp
  70. # Activation du partage de connexion
  71. echo "1" > /proc/sys/net/ipv4/ip_forward
  72. # Remise à zero d'iptables:
  73. iptables -F
  74. iptables -t nat -F
  75. iptables -t mangle -F
  76. iptables -X
  77. iptables -t nat -X
  78. iptables -t mangle -X
  79. ###################
  80. # La on logue et on refuse le paquet
  81. iptables -N LOG_DROP
  82. iptables -A LOG_DROP -j ULOG --ulog-nlgroup 1 --ulog-prefix 'RULE 1 -- DROP '
  83. iptables -A LOG_DROP -j DROP
  84. # ici, on logue et on accepte le paquet
  85. iptables -N LOG_ACCEPT
  86. iptables -A LOG_ACCEPT -j ULOG --ulog-nlgroup 1 --ulog-prefix 'RULE 2 -- ACCEPT '
  87. iptables -A LOG_ACCEPT -j ACCEPT
  88. ######################################
  89.  
  90. ###################
  91. # Regles par defaut:
  92. # on refuse les connexions entrantes
  93. iptables -P INPUT DROP
  94. # on refuse les connexions destinées à être forwardées
  95. iptables -P FORWARD DROP
  96. # les connexions sortantes sont refusées par défaut
  97. iptables -P OUTPUT DROP
  98. ###################
  99. # Translation d'adresse pour tout ce qui sort vers l'internet
  100. iptables -A POSTROUTING -t nat -o $INTERNET  -j MASQUERADE
  101. #####################################################################
  102. # Regles générale sur les differente interfaces
  103. # On accepte tout ce qui entre et sort de l'interface de loopback
  104. iptables -A INPUT  -i lo -j ACCEPT
  105. iptables -A OUTPUT -o lo -j ACCEPT
  106. # On accepte les packets entrants relatifs à  des connexions déjà établies sur l'interface connectée au net
  107. iptables -A INPUT -i $INTERNET -m state --state RELATED,ESTABLISHED -j ACCEPT
  108. iptables -A OUTPUT -o $INTERNET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  109.  
  110. # On accepte les packets entrants relatifs à des connexions déjà établies sur l'interface connectée au lan
  111. iptables -A INPUT -i $LOCAL -m state --state RELATED,ESTABLISHED -j ACCEPT
  112. iptables -A OUTPUT -o $LOCAL -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  113. ####################################################################
  114. # Regles
  115. # Partage de fichiers uniquement en local
  116. iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 139 -j ACCEPT
  117. iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 445 -j ACCEPT
  118. # on accepte l'envoie de mail sur le serveur a partir du reseau local
  119. #iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 25 -j ACCEPT
  120. #on laisse passer les requetes dns
  121. iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 53  -j ACCEPT
  122. iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 53  -j ACCEPT
  123. #on laisse passer le proxy
  124. #iptables -A INPUT -i $LOCAL -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 8080  -j ACCEPT
  125. # on autorise le trafique web de partout
  126. iptables -A INPUT -p tcp --dport 80  -j ACCEPT
  127. iptables -A INPUT -p tcp --dport 443  -j ACCEPT
  128. # ssh
  129. iptables -A INPUT -p tcp --dport ssh -j ACCEPT
  130. # Redirection du port 80 vers le port 8080 ( celui du poxy squid )
  131. iptables -t nat -A PREROUTING -s $PRIVATE -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080
  132. iptables -A INPUT -i $LOCAL  -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 8080  -j ACCEPT
  133. # les pings
  134. iptables -A INPUT -p icmp -i eth0 -j ACCEPT
  135. iptables -A OUTPUT -p icmp -o eth0 -j ACCEPT
  136. ############################################################
  137. # Forwarding
  138. # Les connections venant du lan destiné a etre forwardé sont accepté.
  139. iptables -A FORWARD -i $LOCAL -o $INTERNET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  140. iptables -A FORWARD -i $LOCAL -o $INTERNET -p tcp \
  141. --dport 110 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  142. iptables -A FORWARD -i $LOCAL -o $INTERNET -p tcp \
  143. --dport 25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  144. iptables -A FORWARD -i $LOCAL -o $INTERNET -p tcp \
  145. --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  146. iptables -A FORWARD -i $LOCAL -o $INTERNET -p tcp \
  147. --dport 38216 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  148. # Seules les connexions déjà établies ou en relation avec des connexions déjà établies sont acceptées venant du Net vers le LAN
  149. iptables -A FORWARD -i $INTERNET -o $LOCAL -m state --state ESTABLISHED,RELATED -j ACCEPT
  150. # Permet à l'ensemble du LAN de dialoguer sur internet avec la même adresse IP
  151. iptables -t nat -A POSTROUTING -s $PRIVATE -j MASQUERADE
  152. # Ici on refuse les connexion entrantes et les paquets invalides
  153. iptables -A INPUT -i $INTERNET  -m state --state NEW,INVALID -j LOG_DROP
  154. iptables -A OUTPUT -o $INTERNET  -m state --state INVALID -j LOG_DROP
  155. # Toutes les règles qui n'ont pas passé les règles du firewall seront refusées et loguées...
  156. iptables -A FORWARD -j LOG_DROP
  157. iptables -A INPUT -j LOG_DROP
  158. iptables -A OUTPUT -j LOG_DROP
  159. # Message de fin ok
  160. echo -e  "[ \E[$40;32m OK \E[$40;0m ]"
  161. }
  162.  
  163. case "$1" in
  164.         start)
  165.                 start
  166.                 ;;
  167.         stop)
  168.                 stop
  169.                 ;;
  170.         reload)
  171.                 stop
  172.                 start
  173.                 ;;
  174.          status)
  175.                 /sbin/iptables -L
  176.                 /sbin/iptables -t nat -L
  177.                 ;;
  178.         *)
  179.                 echo -e "Usage: proxy {start|stop|reload|status}"
  180.                 exit 1
  181.                 ;;
  182. esac
  183. exit 0


 
 
 
 
Squid:

Code :
  1. http_port 192.168.0.1:8080
  2. hierarchy_stoplist cgi-bin ?
  3. acl QUERY urlpath_regex cgi-bin \?
  4. no_cache deny QUERY
  5. cache_mem 16 MB
  6. maximum_object_size 15 MB
  7. cache_dir ufs /var/spool/squid 200 16 256
  8. emulate_httpd_log on
  9. refresh_pattern ^ftp:           1440        20%        10080
  10. refresh_pattern ^gopher:        1440         0%        1440
  11. refresh_pattern .                  0        20%        4320
  12. # on crée les groupes pour les interdictions
  13. acl grands src 192.168.0.2 192.168.0.3
  14. acl maison src 192.168.0.0/255.255.255.0
  15. #Horaires de connection
  16. acl tpsconnection time M 19:00-20:30 \
  17.         T 19:00-20:30 \
  18.         W 16:00-20:00 \
  19.         H 19:00-21:30 \
  20.         F 19:00-21:30 \
  21.         A 09:00-12:00 16:00-20:00 \
  22.         S 16:00-20:30
  23. acl all src 0.0.0.0/0.0.0.0
  24. acl manager proto cache_object
  25. acl localhost src 127.0.0.1/255.255.255.255
  26. acl to_localhost dst 127.0.0.0/8
  27. acl SSL_ports port 443 563     # https, snews
  28. acl SSL_ports port 873      # rsync
  29. acl Safe_ports port 80      # http
  30. acl Safe_ports port 21      # ftp
  31. acl Safe_ports port 443 563    # https, snews
  32. acl Safe_ports port 70      # gopher
  33. acl Safe_ports port 210     # wais
  34. acl Safe_ports port 1025-65535      # unregistered ports
  35. acl Safe_ports port 280     # http-mgmt
  36. acl Safe_ports port 488     # gss-http
  37. acl Safe_ports port 591     # filemaker
  38. acl Safe_ports port 777     # multiling http
  39. acl Safe_ports port 873     # rsync
  40. acl Safe_ports port 1863            # msn
  41. acl purge method PURGE
  42. acl CONNECT method CONNECT
  43. http_access allow manager localhost
  44. http_access deny manager
  45. http_access allow purge localhost
  46. http_access deny purge
  47. http_access deny !Safe_ports
  48. http_access deny CONNECT !SSL_ports
  49. http_access allow grands
  50. http_access allow maison tpsconnection
  51. # Ces deux lignes permettent d'intégrer le plugin SquidGuard
  52. url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
  53. url_rewrite_children 8
  54. http_access allow localhost
  55. http_access deny all
  56. http_reply_access allow all
  57. icp_access allow all
  58. coredump_dir /var/spool/squid
  59. dns_nameservers 212.27.53.252  212.27.54.252
  60. error_directory /usr/share/squid/errors/French
  61. visible_hostname serveur-maison

Reply

Marsh Posté le 21-05-2009 à 18:21:48   

Reply

Marsh Posté le 21-05-2009 à 18:28:12    

Salut,
 
est-ce que ufw est installé? Vérifie bien car peut-être que la mise à jour te l'as installé.
 
Si oui... ben désinstalle.

Reply

Marsh Posté le 21-05-2009 à 19:42:52    

ufw était installé, en effet, mais après désinstallation et redémarrage aucun changement. Merci quand même!!

Reply

Marsh Posté le 22-05-2009 à 12:50:43    

Je viens de réinstaller ubuntu 8.04, et je ne vois aucune différence. Le problème doit donc venir de mon fichier de config d'iptables, mais j'ai beau le tourner dans tous les sens je n'arrive à rien :-(
 
Au secours!!

Reply

Marsh Posté le 23-05-2009 à 11:03:46    

Bon je ne connais pas squid mais un peu iptables  
 
Poste le retour de "  sudo iptables -L -v -n "
 
Et on regarde si les ports 110 et 465 laissent passer.

Reply

Marsh Posté le 23-05-2009 à 11:50:00    

ogaby a écrit :

Bon je ne connais pas squid mais un peu iptables  
 
Poste le retour de "  sudo iptables -L -v -n "
 
Et on regarde si les ports 110 et 465 laissent passer.


 
Je viens d'essayer quelque chose: en théorie si je lance ce script, smtp et pop3 doivent passer non? Je mets "ACCEPT" pour INPUT et OUTPUT, rien n'est sécurisé mais en théorie ça devrait fonctionner! Et pourtant, rien ne passe!
 

Code :
  1. #!/bin/bash
  2. LOCAL="eth0"
  3. INTERNET="eth1"
  4. LAN="192.168.0.0/24"
  5. SERVEUR="192.168.0.1"
  6. # On remet la police par défaut à ACCEPT
  7. iptables -P INPUT ACCEPT
  8. iptables -P FORWARD ACCEPT
  9. iptables -P OUTPUT ACCEPT
  10. # On remet les polices par défaut pour la table NAT
  11. iptables -t nat -P PREROUTING ACCEPT
  12. iptables -t nat -P POSTROUTING ACCEPT
  13. iptables -t nat -P OUTPUT ACCEPT
  14. # Remise à zero d'iptables:
  15. iptables -F
  16. iptables -t nat -F
  17. iptables -t mangle -F
  18. iptables -X
  19. iptables -t nat -X
  20. iptables -t mangle -X
  21. echo 1 > /proc/sys/net/ipv4/ip_forward
  22. modprobe ip_conntrack
  23. modprobe iptable_nat
  24. modprobe iptable_filter
  25. modprobe ip_conntrack_ftp
  26. modprobe ip_nat_ftp
  27. # Translation d'adresse pour tout ce qui sort vers l'internet
  28. iptables -A POSTROUTING -t nat -o eth1 -j MASQUERADE
  29. # connexions LAN-Internet (ftp)
  30. iptables -A FORWARD -p tcp --dport 21 -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  31. iptables -A FORWARD -p tcp --sport 21 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
  32. iptables -A FORWARD -p tcp --sport 20 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
  33. iptables -A FORWARD -p tcp --dport 20 -i eth0 -o eth1 -m state --state ESTABLISHED -j ACCEPT
  34. # connexions LAN-Internet (pop)
  35. iptables -A FORWARD -p tcp --dport 110 -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  36. iptables -A FORWARD -p tcp --sport 110 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
  37. # connexions LAN-Internet (imap)
  38. iptables -A FORWARD -p tcp --dport 143 -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  39. iptables -A FORWARD -p tcp --sport 143 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
  40. # connexions LAN-Internet (smtp)
  41. iptables -A FORWARD -p tcp --dport 25 -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  42. iptables -A FORWARD -p tcp --sport 25 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
  43. ## Permet à l'ensemble du LAN de dialoguer sur internet avec la même adresse IP
  44. iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE


 
 
Voici ce que donne iptables -L -v -n:

Code :
  1. Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
  2. pkts bytes target     prot opt in     out     source               destination       
  3. Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
  4. pkts bytes target     prot opt in     out     source               destination       
  5.     0     0 ACCEPT     tcp  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           tcp dpt:21 state NEW,RELATED,ESTABLISHED
  6.     0     0 ACCEPT     tcp  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0           tcp spt:21 state RELATED,ESTABLISHED
  7.     0     0 ACCEPT     tcp  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0           tcp spt:20 state RELATED,ESTABLISHED
  8.     0     0 ACCEPT     tcp  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           tcp dpt:20 state ESTABLISHED
  9.     0     0 ACCEPT     tcp  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           tcp dpt:110 state NEW,RELATED,ESTABLISHED
  10.     0     0 ACCEPT     tcp  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0           tcp spt:110 state RELATED,ESTABLISHED
  11.     0     0 ACCEPT     tcp  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           tcp dpt:143 state NEW,RELATED,ESTABLISHED
  12.     0     0 ACCEPT     tcp  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0           tcp spt:143 state RELATED,ESTABLISHED
  13.     0     0 ACCEPT     tcp  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           tcp dpt:25 state NEW,RELATED,ESTABLISHED
  14.     0     0 ACCEPT     tcp  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0           tcp spt:25 state RELATED,ESTABLISHED
  15. Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
  16. pkts bytes target     prot opt in     out     source               destination


 

Reply

Marsh Posté le 23-05-2009 à 11:53:06    

C'est grave docteur?

Reply

Marsh Posté le 23-05-2009 à 12:01:03    

ca à l'air juste mais je me demande si il ne faut pas que tu ouvres aussi le 465 pour le smtp.
 
Liste des ports: http://fr.wikipedia.org/wiki/Liste_des_ports_logiciels

Reply

Marsh Posté le 23-05-2009 à 12:05:59    

ogaby a écrit :

ca à l'air juste mais je me demande si il ne faut pas que tu ouvres aussi le 465 pour le smtp.
 
Liste des ports: http://fr.wikipedia.org/wiki/Liste_des_ports_logiciels


 
Je viens de rajouter ça:

Code :
  1. iptables -A FORWARD -p tcp --dport 465 -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  2. iptables -A FORWARD -p tcp --sport 465 -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT


 
Mais aucune différence!! De toute façon ça ne marche pas pour le pop3 ni pour quoi que ce soit d'autre d'ailleurs...

Reply

Marsh Posté le 25-05-2009 à 18:05:04    

Au secours ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed