[IPTABLES] Plus d'accès au réseau local une fois le POSTROUTING enlevé

Plus d'accès au réseau local une fois le POSTROUTING enlevé [IPTABLES] - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 01-09-2011 à 21:35:47    

Bonsoir,
 
Sur mon serveur je possède deux interfaces, ETH0 pour l'internet et ETH1 pour le local.
Je fais du PREROUTING afin de pouvoir accéder à des serveurs WEB, SSH, etc.. de l'internet vers mon réseau local, la directive de POSTROUTING MASQUERADE est en place.
 
Dans cette configuration, depuis le routeur je peux faire un SSH vers les serveurs de mon réseau local, jusque là tout va bien.
 
Le problème que je rencontre actuellement est que je souhaites faire en sorte que mon serveur de messagerie par exemple sorte avec sa propre IP publique et non celle du routeur. Pour se faire je supprime donc l'option MASQUERADE, le serveur sort bien avec sa propre IP mais je ne peux plus faire de SSH (par exemple) sur les serveurs présents dans mon réseau local.
 
Voici mon script :

Code :
  1. #!/bin/bash -x
  2. WAN="eth0"
  3. LAN="eth1"
  4. IPTABLES=$(which iptables)
  5. echo "1" > /proc/sys/net/ipv4/tcp_syncookies
  6. echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog
  7. echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
  8. echo "1" > /proc/sys/net/ipv4/ip_forward
  9. modprobe ip_nat_ftp
  10. modprobe ip_conntrack_ftp
  11. # Filtre la table FILTER.
  12. /sbin/iptables -F
  13. /sbin/iptables -F -t nat
  14. /sbin/iptables -F -t mangle
  15. # Supprime toutes les regles.
  16. /sbin/iptables -X
  17. /sbin/iptables -Z
  18. /sbin/iptables -P INPUT DROP
  19. /sbin/iptables -P OUTPUT DROP
  20. /sbin/iptables -P FORWARD DROP
  21. # Accepte toutes les connexions sur l'interface loopback.
  22. /sbin/iptables -A INPUT -i lo -j ACCEPT
  23. /sbin/iptables -A OUTPUT -o lo -j ACCEPT
  24. # Accepte tout le trafic entrant et sortant sur ETH1 (reseau local).
  25. /sbin/iptables -A INPUT -i ${LAN} -j ACCEPT
  26. /sbin/iptables -A OUTPUT -o ${LAN} -j ACCEPT
  27. # Autorise les paquets a sortir vers l'internet.
  28. /sbin/iptables -A OUTPUT -o ${WAN} -j ACCEPT
  29. # Autorise les nouvelles connexions etablies par la passerelle a passer le pare-feu.
  30. /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  31. /sbin/iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
  32. /sbin/iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  33. # Active le routage des paquets.
  34. /sbin/iptables -A FORWARD -i ${LAN} -j ACCEPT
  35. /sbin/iptables -A FORWARD -o ${LAN} -j ACCEPT
  36. # Active l'option de masquage des adresses IP locales vers l'internet.
  37. /sbin/iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
  38. # Ouverture des ports 22,80,443 et 1311.
  39. /sbin/iptables -A INPUT -i ${WAN} -p tcp -m state --state NEW -m multiport --destination-port 22,80,443,1311 -j ACCEPT
  40. /sbin/iptables -A INPUT -i ${WAN} -p udp -m state --state NEW -m multiport --destination-port 623 -j ACCEPT
  41. # Accepte le ping.
  42. /sbin/iptables -A INPUT -p icmp -j ACCEPT
  43. NAT_DIRECTORY="/etc/firewall/nat"
  44. # Redirige les requetes venant de l'adresse IP public vers un serveur en local.
  45. for I in $(ls ${NAT_DIRECTORY}/*.conf); do
  46.         . ${I}
  47.         /sbin/iptables -t nat -A PREROUTING -p ${PROTOCOL} -i ${DEVICE} -m multiport --dport ${PORTS} \
  48.                 -d ${SOURCEIP} -j DNAT --to-destination ${DESTINATIONIP}
  49.         iptables -t nat -A POSTROUTING -s ${DESTINATIONIP} -o ${DEVICE} -j SNAT --to-source ${SOURCEIP}
  50. done


 
Qu'ai-je oublié ?
 
Merci.


Message édité par goldyfruit le 01-09-2011 à 21:37:11

---------------
http://wiki.incloudus.com/display/DOC | http://blog.incloudus.com | http://wiki.goldzoneweb.info | http://www.stendhalclub.fr
Reply

Marsh Posté le 01-09-2011 à 21:35:47   

Reply

Marsh Posté le 01-09-2011 à 22:46:20    

Si j'ai bien compris ton histoire, dans ta chaine POSTROUTING il te faut :
    - filter / restreindre ton SNAT uniuqmenent sur le flux que tu veux (en l'occurence, le flux de messagerie / @serveur de messagerie). ça a priori tu le fais déjà (-s $(DESTINATION)
    -  faire ton masquerade sur le reste des flux, par contre du coup ça tu ne le fais plus, le trafic sort avec une adresse source non natée, inconnue des tables de routage => route par défaut, bye bye le paquet sur le net


Message édité par o'gure le 01-09-2011 à 22:49:20
Reply

Sujets relatifs:

Leave a Replay

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