iptables sur un proxy squid transparent

iptables sur un proxy squid transparent - Sécurité - Systèmes & Réseaux Pro

Marsh Posté le 03-05-2012 à 14:14:56    

Bonjour,
 
je cherche à bloquer tous les ports en entrée sur l'interface du réseau connecté à squid. J'ai fait un tour dans la section recherche, et je suis tombé sur ce topic:
http://forum.hardware.fr/hfr/syste [...] 6458_1.htm
 
Le problème est que je ne comprends pas le script final qui en ressort.
Mon archi: 2 cartes réseaux, une dans le réseau de la free** et l'autre dans le réseau squid.
 
Le routage entre les deux cartes en passant par la redirection http/s vers le squid fonctionne bien.
Mais si un pc est connecté dans le réseau squid et qu'il tente une connexion ssh sur l'ip de sa passerelle (donc le serveur squid),
sa tentative est un succès même s'il n'a pas les identifiant de connexion.
 
Ce que je voudrai, c'est bloquer tous les ports en entrée de la carte réseau squid sauf le http/s et le dns.
 
Si je modifie la règle

Code :
  1. iptables -A INPUT -i $RISKS_IFACE -j ACCEPT


par

Code :
  1. iptables -A INPUT -i $RISKS_IFACE -p tcp --dport 53 -j ACCEPT
  2. iptables -A INPUT -i $RISKS_IFACE -p udp --dport 53 -j ACCEPT
  3. iptables -A INPUT -i $RISKS_IFACE -p tcp --dport 80 -j ACCEPT
  4. iptables -A INPUT -i $RISKS_IFACE -p tcp --dport 443 -j ACCEPT


 
Et bien plus de net sur les machines clientes.
 
Détails:
SECURE_IFACE => interface dans lan connecté à internet
RISKS_IFACE => interface dans le lan derrière le squid
SQUID_SECURE_SERVER => ip du squid dans le lan connecté à internet
SQUID_RISKS_SERVER => ip du squid dans le lan derrière le squid
 
Voilà mon iptables:

Code :
  1. #!/bin/sh
  2. # Variables
  3. SQUID_SECURE_SERVER="192.168.2.43"      # serveur Squid connecté au réseau sécurisé
  4. SQUID_RISKS_SERVER="192.168.1.2"        # serveur Squid au réseau à risques
  5. SQUID_PORT="3128"                       # port du serveur squid
  6. SECURE_LAN="192.168.2.0/24"             # LAN sécurisé
  7. RISKS_LAN="192.168.1.0/24"              # LAN à risques
  8. SECURE_IFACE="eth0"                     # interface connecté à internet
  9. RISKS_IFACE="eth1"                      # interface connecté au réseau à risques
  10. # Modules
  11. /sbin/modprobe ip_conntrack
  12. # Sysctl
  13. echo 1 > /proc/sys/net/ipv4/ip_forward
  14. #################################################
  15. # Vider les tables actuelles
  16. #################################################
  17. iptables -F
  18. iptables -X
  19. iptables -t nat -F
  20. iptables -t nat -X
  21. iptables -t mangle -F
  22. iptables -t mangle -X
  23. #################################################
  24. # default policy : DROP
  25. #################################################
  26. iptables -P INPUT DROP
  27. iptables -P OUTPUT DROP
  28. #iptables -N LOGDROP
  29. #iptables -A LOGDROP -j LOG
  30. #iptables -A LOGDROP -j DROP
  31. #################################################
  32. # accepte tout ce qui concerne l'interface loopback
  33. #################################################
  34. iptables -A INPUT -i lo -j ACCEPT
  35. iptables -A OUTPUT -o lo -j ACCEPT
  36. #################################################
  37. # on accepte les paquets relatifs aux connexions deja ouvertes
  38. #################################################
  39. # eth0
  40. iptables -A INPUT -i $SECURE_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
  41. iptables -A OUTPUT -o $SECURE_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
  42. # eth1
  43. iptables -A INPUT -i $RISKS_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
  44. iptables -A OUTPUT -o $RISKS_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
  45. #################################################
  46. # on accepte les requetes icmp
  47. #################################################
  48. # eth0
  49. iptables -A INPUT -i $SECURE_IFACE -p icmp -s $SECURE_LAN -d $SQUID_SECURE_SERVER --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
  50. iptables -A INPUT -i $SECURE_IFACE -p icmp -s $SECURE_LAN -d $SQUID_SECURE_SERVER --icmp-type echo-request -j ACCEPT
  51. # eth1
  52. iptables -A INPUT -i $RISKS_IFACE -p icmp -s $RISKS_LAN -d $SQUID_RISKS_SERVER --icmp-type echo-request -j DROP
  53. #################################################
  54. # SSH
  55. #################################################
  56. # eth0
  57. iptables -A INPUT -i $SECURE_IFACE -p tcp -s $SECURE_LAN -d $SQUID_SECURE_SERVER --dport 22 -j ACCEPT
  58. #################################################
  59. # DNS
  60. #################################################
  61. # iptables -A INPUT -i $RISKS_IFACE -p udp -s $RISKS_LAN --dport 53 -j ACCEPT
  62. #################################################
  63. # Routage
  64. #################################################
  65. iptables --table nat --append POSTROUTING -o $SECURE_IFACE -j MASQUERADE
  66. #iptables -A FORWARD -i $RISKS_IFACE -j ACCEPT
  67. iptables -A FORWARD --in-interface $RISKS_IFACE -j ACCEPT
  68. iptables -A INPUT -i $RISKS_IFACE -j ACCEPT # <<<<<<<-------------------------------------- TOUT EST OUVERT !!!!!
  69. iptables -t nat -A PREROUTING -i $RISKS_IFACE -p tcp --dport 80 -j DNAT --to $SQUID_SECURE_SERVER:$SQUID_PORT
  70. iptables -t nat -A PREROUTING -i $SECURE_IFACE -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
  71. #################################################
  72. # on accepte ce qui sort vers l'exterieur
  73. #################################################
  74. # eth0
  75. iptables -A OUTPUT -o $SECURE_IFACE -j ACCEPT
  76. # eth1
  77. iptables -A OUTPUT -o $RISKS_IFACE -j ACCEPT
  78. #################################################
  79. # LOG et DROP tout le reste
  80. #################################################
  81. iptables -A INPUT -j LOG
  82. iptables -A INPUT -j DROP


 
Vous auriez une super idée ?

Reply

Marsh Posté le 03-05-2012 à 14:14:56   

Reply

Sujets relatifs:

Leave a Replay

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