Iptables, restreindre l'acces internet pour certains postes

Iptables, restreindre l'acces internet pour certains postes - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 13-03-2006 à 17:06:49    

Je possède un reseau qui a à peu pres cette tete : http://rclsilver.free.fr/my_network.jpg
 
Donc en gros, tous les pc qui veulent aller sur le net, passent par le routeur. Sur ce routeur, les regles iptables suivantes sont définies :  

Code :
  1. #!/bin/bash
  2. . /lib/lsb/init-functions
  3. case $1 in
  4. start)
  5.  log_begin_msg "Configuring Iptables..."
  6.  # Initialisation...
  7.  /sbin/iptables -F && \
  8.  /sbin/iptables -X && \
  9.  /sbin/iptables -P INPUT DROP && \
  10.  /sbin/iptables -P OUTPUT DROP && \
  11.  /sbin/iptables -P FORWARD DROP && \
  12.  /sbin/iptables -t nat -F && \
  13.  /sbin/iptables -t nat -X && \
  14.  /sbin/iptables -t nat -P PREROUTING ACCEPT && \
  15.  /sbin/iptables -t nat -P POSTROUTING ACCEPT && \
  16.  /sbin/iptables -t nat -P OUTPUT ACCEPT && \
  17.  /sbin/iptables -t mangle -F && \
  18.  /sbin/iptables -t mangle -X && \
  19.  /sbin/iptables -t mangle -P PREROUTING ACCEPT && \
  20.  /sbin/iptables -t mangle -P INPUT ACCEPT && \
  21.  /sbin/iptables -t mangle -P OUTPUT ACCEPT && \
  22.  /sbin/iptables -t mangle -P FORWARD ACCEPT && \
  23.  /sbin/iptables -t mangle -P POSTROUTING ACCEPT && \
  24.  # On autorise la boucle locale
  25.  /sbin/iptables -A INPUT -i lo -j ACCEPT && \
  26.  /sbin/iptables -A OUTPUT -o lo -j ACCEPT && \
  27.  # On autorise le LAN
  28.  /sbin/iptables -A INPUT -i eth1 -j ACCEPT && \
  29.  /sbin/iptables -A OUTPUT -o eth1 -j ACCEPT && \
  30.  # Définition des regles de sécurité...
  31.  /sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth0 -j MASQUERADE && \
  32.  /sbin/iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT && \
  33.  /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT && \
  34.  /sbin/iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT && \
  35.  # Définition des regles entre la passerelle et la Freebox
  36.  /sbin/iptables -A INPUT -i eth0 -s 192.168.0.1 -j ACCEPT && \
  37.  /sbin/iptables -A OUTPUT -o eth0 -j ACCEPT && \
  38.  /sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT && \
  39.  # Ecoute de certains ports
  40.  /sbin/iptables -A INPUT -p tcp --dport 22 -i eth0 -j ACCEPT && \
  41.  /sbin/iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT && \
  42.  # Routage des ports écoutés
  43.  /sbin/iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.3:80 && \
  44.  /sbin/iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-destination 192.168.1.3:22 \
  45.  &> /dev/null
  46.  log_end_msg $?
  47.  ;;
  48. stop)
  49.  log_begin_msg "Flushing Iptables..."
  50.                 /sbin/iptables -F && \
  51.                 /sbin/iptables -X \
  52.  &> /dev/null
  53.  log_end_msg $?
  54.  ;;
  55. restart)
  56.  $0 stop
  57.  $0 start
  58.  ;;
  59. *)
  60.  log_success_msg "Usage: {start|stop|restart}"
  61.  exit 1
  62. esac
  63. exit 0


 
Je voudrais savoir, comment restreindre l'acces a internet pour certains pc sur certains ports ? par exemple... 192.168.1.4 ne pourrait aller que sur les site web (donc sortir sur le port 80) ? ou alors.. 192.168.1.6 ne pourrait pas utiliser ftp (port 21). merci d'avance..
 
PS: Est ce que l'ordre des regles iptables sont importantes ? merci


Message édité par rclsilver le 13-03-2006 à 17:17:14
Reply

Marsh Posté le 13-03-2006 à 17:06:49   

Reply

Marsh Posté le 15-03-2006 à 09:32:40    

Bonjour,
 
Oui l'ordre est très important.
Dans votre cas la chaine qui vous intéresse est la chaine FORWARD.
 
#/sbin/iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT && \
#/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT && \
#/sbin/iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT && \
 
Déja, vous acceptez les nouvelles connexions dans les deux sens. Cela veut dire qu'une connexion entrante venant d'internet sera transmise. Il y a le nat a faire mais votre firewall perd beaucoup d'utilité ici.
 
Avant ces règles vous pouvez choisir de refuser certains flux. Par exemple pour rejeter les tentatives de connexions au port 21 émises par votre machine 1.6 :
#/sbin/iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 21 -s 192.168.1.6 -j REJECT && \
 
Ensuite vous pouvez changer la règle d'acceptation pour n'autoriser que les machines listées :
/sbin/iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -s 192.168.1.4 -j ACCEPT && \
 
Evidemment il faudra supprimer votre règle qui accepte tout.
 
Vous devriez envisager d'utiliser shorewall pour faire vos règles, c'est plus rapide et fiable.
 
Pierre


---------------
-- Acipia -- www.acipia.fr --
Reply

Sujets relatifs:

Leave a Replay

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