Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/02/2006, à 13:00

yam

[Resolu] serveur DHCP et le partage de connexion (modem usb + eth0)

Bonjour,

But :
partage de connexion internet et dhcp sur reseau local

Architecture :

internet > modem usb (ppp0) > pc unbuntu > eth0 > reseau local = winxp

Etape 1 : le DHCP
Avant d'activer le partage de connexion je cherche deja a activer le DHCP :
install dhcp3-server
eth0 ip fixe : 192.68.0.1
config partage ICS et DHCP avec firestarter

-> impossible d'otenir une adresse ip sur mon pc windows (qui est bien en DHCP)

Voici mon fichier /etc/dhcp3/dhcpd.conf (generé par firestarter) :

# DHCP configuration generated by Firestarter
ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {
	option routers 192.168.0.1;
	option subnet-mask 255.255.255.0;
	option domain-name-servers 80.10.246.1, 80.10.246.132;
	option ip-forwarding off;
	range dynamic-bootp 192.168.0.100 192.168.0.254;
	default-lease-time 21600;
	max-lease-time 43200;
}

J'ai en fait une question plus general : comment lister les services et les redemarrer (network, dhcpd ...) ???

via le menu syst>admin>services on ne voit de liste qu'une dizaine de services.
Il doit y en avoir d'autres non ??

Merci

Dernière modification par yam (Le 12/02/2006, à 19:16)

Hors ligne

#2 Le 11/02/2006, à 11:06

Haazheel

Re : [Resolu] serveur DHCP et le partage de connexion (modem usb + eth0)

J'ai en fait une question plus general : comment lister les services et les redemarrer (network, dhcpd ...) ???

En faisant (je crois tongue ) :

/etc/init.d/

Puis tu utilie "tab" pour afficher la liste complète qui est actuellement installé sur ton pc (je crois tongue )

Hors ligne

#3 Le 11/02/2006, à 17:29

yam

Re : [Resolu] serveur DHCP et le partage de connexion (modem usb + eth0)

bon ok ca progresse wink

Le DHCP fonctionne : il fallait le lancer mais je savais pas comment :-o
/etc/init.d/dhcp3-server start

Et dans firestarter NE PAS laisser "serveur de nom" a "<dynamic>" (valeur par defaut). J'ai mis l'ip de eth0.


Partage connexion avec firestarter

Plusieurs pb s'accumulaient : la config de firestarter et le dns de winxp

Bien que dans la doc sur le site de firestarter il soit indiqué que lors d'un partage tous les services courant sont "pre-configurés" pour eviter le bloquage ben chez moi il a tout fallu refaire

Voila ma config de Firestarter (j'attends des rq sur l'efficacité / utilité) :

Politique entrant :
Routage des services : HTTP 192.1687.0.0/24, DNS, SMB

Politique sortant :
Services : HTTP pour lan, DNS pour lan, HTTPS pour lan, HTTP pour firewall, HTTPS firewall

Avec ca j'ai été obligé de renseigner le DNS wanadoo sur mon XP.
Le server DHCP ne devrait-il pas s'en charger ??
edit : c'est ok en renseignant domin-name-servers dans dhcpd.conf

Autre question : a quoi sert le ip-forwarding du dhcpd.conf ??


Donc voila avec cette config ca marche !!!
Je suis entrain de mettre tout ca au propre et je pense que je proposerai d'ici quelque temps une page sur le wiki qui reprend l'install du modem usb, le dhcp, la config reseau, le parfeu et le partage de connexion.
En quelque sorte un truc semblable a la page "configurer sont réseau" mais pour les modem usb et avec firestarter

Dernière modification par yam (Le 12/02/2006, à 10:52)

Hors ligne

#4 Le 12/02/2006, à 10:49

yam

Re : [Resolu] serveur DHCP et le partage de connexion (modem usb + eth0)

Après verif : l'adresse DNS est bien envoyée par le server ICS et recupérée sur les postes clients XP sans configuration de ceux-ci.

Par contre j'ai toujours un pb sur le routage dans firestarter : comment indiquer une plage d'adresse ??? 192.168.0.1/24 renvoie une erreur de iptables

Faut que je fasse des recherhces sur firestarter parcqu'a l'install il met des erreurs concerant etc/firestarter/inbound et outbound. Je pense que c'est la dedans que sont sotkées les politiques par defaut et ca doit etre pour ca que lors de l'activation du partage de connexion il bloque tout par defaut ...

Rq: je me parle bcp mais ca permet de garder une trace des manip que je fais et si ca peut servir a qq1 ... wink

Dernière modification par yam (Le 12/02/2006, à 10:50)

Hors ligne

#5 Le 12/02/2006, à 19:15

yam

Re : [Resolu] serveur DHCP et le partage de connexion (modem usb + eth0)

Changement de cap :
Après réflexion j'abandonne firestarter (marche pas comme il devrait a l'install, partage de connexion pas bon par defaut, double couche dhcp).

Du coup je me suis orienté vers des scripts iptables sans interface. De toute maniere une fois configuré on y touche plus donc ...

J'ai trouvé un script sur http://olivieraj.free.fr/fr/linux/information/firewall/index.html
Ce site est vraiement génial (merci a un des membres de la communauté de l'avoir indiqué !!!)

J'ai donc pris le script final qui permet de faire tout ce que je veux (partage de connexion, port forwarding) DE FACON CLAIRE parametrable et commenté !! smile.

Par rapport a mon pb initial il suffit juste d'installer et configurer le serveur dhcp, puis d'utiliser le script iptables.
C'est simple, sans interface graphique certe mais ca marche nikel (entre autre, tests "shields up!"de www.grc.com passed).

Pb RESOLU !! big_smile


Pour info voici le script iptables :

#!/bin/sh -norc

###############################################################################
# NOM: iptable-final-1.sh
#
# COMMENTAIRE : Synthèse d'utilisation de ce qui a été vu dans le document
#               (chapitre III-10-3)
# 
# Ce script fait partie du document :
#        "Firewall et sécurité d'un réseau personnel sous Linux"
#        http://olivieraj.free.fr/fr/linux/information/firewall/
#
# Auteur: Olivier ALLARD-JACQUIN (http://olivieraj.free.fr/)
# Créé le : 2003/07/09                    Dernière modification le : 2003/07/09
###############################################################################


###############################################################################
# Variables globales
###############################################################################

# Paramètrage du réseau local (LAN = Local Area Network)
LAN_INTERFACE=eth0            ; # Interface réseau interne
LAN_IP=192.168.0.1            ; # Adresse réseau interne
LAN_NETWORK=192.168.0.0/24    ; # Réseau interne
LAN_BROADCAST=192.168.0.255   ; # Adresse de broadcast interne

# Paramètrage de la connexion Internet (WAN = Wild Area Network = Réseau Large)
#WAN_INTERFACE=eth1            ; # Interface réseau externe (Internet)
#WAN_IP=10.0.0.1               ; # Adresse réseau externe (Internet)
#WAN_NETWORK=10.0.0.0/8        ; # Réseau externe (Internet)

# REMARQUE:
# Si vous utiliser une connexion par modem (RTC/RNIS/ADSL) pour vous connecter à Internet
# utilisez les variables ci-dessous. Elle permettrons à ce script de détecter
# automatiquement votre adresse IP Internet
WAN_INTERFACE=ppp0            ; # Interface modem
WAN_IP=`/sbin/ifconfig | grep "P-t-P" | sed "s/^[: a-z]*\([.0-9]*\).*/\1/g"`  ; # Récupère l'adresse réseau externe (Internet)
WAN_NETWORK=0.0.0.0/0

# Paramètrage de l'IP masquerading
#   NAT=0   <=> Le NAT N'est PAS autorisé 
#   NAT=1   <=> Le NAT est autorisé 
NAT=1

# Paramètrage du port forwarding
#   PF=0   <=> Le port forwarding N'est PAS autorisé 
#   PF=1   <=> Le port forwarding est autorisé 
PF=0
PF_PROTO=tcp         ; # Type de frame
PF_PORT=80           ; # Port ouvert sur le WAN
PF_IP=192.168.0.2    ; # Adresse IP du serveur sur le LAN

# Paramétrage du LOG
#   LOG=LOG_IN      <=> On log toutes les tentatives d'intrusions non autorisées
#   LOG=LOG_OUT     <=> On log toutes les tentatives de sortie non autorisées
#   LOG=LOG_IN-OUT  <=> On log toutes les tentatives d'entrées et sorties non autorisées
#   LOG=ULOG_IN     <=> On log (avec ULOG) toutes les tentatives d'intrusions non autorisée
#   LOG=ULOG_OUT    <=> On log (avec ULOG) toutes les tentatives de sorties non autorisées
#   LOG=ULOG_IN-OUT <=> On log (avec ULOG) toutes les tentatives d'entrées et sorties non autorisées
#   LOG=NONE        <=> On ne log RIEN du tout
LOG=ULOG_IN-OUT
LOG_PREFIX=Netfilter


###############################################################################
###############################################################################
# A PARTIR DE CE POINT, VOUS N'AVEZ PLUS BESOIN DE CONFIGURER CE SCRIPT!!!
###############################################################################
###############################################################################


###############################################################################
# Initialisation de Netfilter
###############################################################################

# Initialise la table Filter (par défaut tout les échanges sont refusés)
echo "+ Initialisation de la table Filter"
iptables -t filter -F
iptables -t filter -X 
iptables -t filter -P INPUT   DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT  DROP

# Initialise la table NAT (par défaut tout les échanges sont activés)
echo "+ Initialisation de la table NAT"
iptables -t nat -F
iptables -t nat -X 
iptables -t nat -P PREROUTING  ACCEPT
iptables -t nat -P OUTPUT      ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

# Initialise la table Mangle (par défaut tout les échanges sont activés)
echo "+ Initialisation de la table Mangle"
iptables -t mangle -F
iptables -t mangle -X 
iptables -t mangle -P PREROUTING  ACCEPT
iptables -t mangle -P INPUT       ACCEPT
iptables -t mangle -P FORWARD     ACCEPT
iptables -t mangle -P OUTPUT      ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT

echo "+ Desactivation du NAT"
echo 0 > /proc/sys/net/ipv4/ip_forward

###############################################################################
# Règles du localhost
# On NE fait PAS de restriction aux adresses IP source / destination 127.0.0.0
###############################################################################

echo "+ Règles du localhost"
iptables -t filter -A OUTPUT -o lo -p all -j ACCEPT
iptables -t filter -A INPUT  -i lo -p all -j ACCEPT


###############################################################################
# Règles de conexion au reseau local
# Tout est autorisé
###############################################################################

echo "+ Règles du réseau local ($LAN_INTERFACE - $LAN_IP - $LAN_NETWORK)"
# Connexions firewall <-> réseau
iptables -t filter -A OUTPUT -o $LAN_INTERFACE -s $LAN_IP -d $LAN_NETWORK -p all -j ACCEPT
iptables -t filter -A INPUT  -i $LAN_INTERFACE -s $LAN_NETWORK -d $LAN_IP -p all -j ACCEPT
    
# Connexions firewall <-> broadcast réseau
iptables -t filter -A OUTPUT -o $LAN_INTERFACE -s $LAN_IP -d $LAN_BROADCAST -p all -j ACCEPT
iptables -t filter -A INPUT  -i $LAN_INTERFACE -s $LAN_BROADCAST -d $LAN_IP -p all -j ACCEPT



###############################################################################
# Règles de connexion à Internet
# Seul les connexions initialisés par la machine sont autorisées
# C'est le suivit de connexion
###############################################################################

# Chargement des modules pour le suivit de connexion
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc

echo "+ Règles pour Internet ($WAN_INTERFACE - $WAN_IP - $WAN_NETWORK)"
iptables -t filter -A OUTPUT -o $WAN_INTERFACE -s $WAN_IP -d $WAN_NETWORK -p all -m state --state ! INVALID           -j ACCEPT
iptables -t filter -A INPUT  -i $WAN_INTERFACE -s $WAN_NETWORK -d $WAN_IP -p all -m state --state RELATED,ESTABLISHED -j ACCEPT



###############################################################################
# Règles de connexion aMule
# 
###############################################################################

iptables -t filter -A INPUT -i $WAN_INTERFACE -s $WAN_NETWORK -d $WAN_IP -p tcp --dport 40662 -j ACCEPT
iptables -t filter -A INPUT -i $WAN_INTERFACE -s $WAN_NETWORK -d $WAN_IP -p udp --dport 40665 -j ACCEPT
iptables -t filter -A INPUT -i $WAN_INTERFACE -s $WAN_NETWORK -d $WAN_IP -p udp --dport 40672 -j ACCEPT



###############################################################################
# Règles pour le port forwarding
# Pour que le port forwarding soit activé, il faut la variable "$PF" soit à "1"
###############################################################################

if [ "$PF" == "1" ]; then
  # Chargement des modules pour le port forwarding
  modprobe iptable_nat

  echo "+ Autorise le port forwardong de $WAN_IP:$PF_PORT -> $PF_IP:$PF_PORT"
  iptables -t filter -A FORWARD -i $WAN_INTERFACE -o $LAN_INTERFACE -s $WAN_NETWORK -d $LAN_NETWORK -p $PF_PROTO --dport $PF_PORT -m state --state ! INVALID           -j ACCEPT
  iptables -t filter -A FORWARD -i $LAN_INTERFACE -o $WAN_INTERFACE -s $LAN_NETWORK -d $WAN_NETWORK -p $PF_PROTO --sport $PF_PORT -m state --state ESTABLISHED,RELATED -j ACCEPT

  iptables -t nat    -A PREROUTING                -i $WAN_INTERFACE -s $WAN_NETWORK -d $WAN_IP      -p $PF_PROTO --dport $PF_PORT -j DNAT --to-destination $PF_IP
  iptables -t nat    -A POSTROUTING               -o $LAN_INTERFACE -s $WAN_NETWORK -d $PF_IP       -p $PF_PROTO --dport $PF_PORT -j SNAT --to-source $LAN_IP

  echo 1 > /proc/sys/net/ipv4/ip_forward

else
  echo "+ Le port forwarding N'est PAS autorisé"
  if [ "$NAT" == "0" ]; then
    echo 0 > /proc/sys/net/ipv4/ip_forward
  fi
fi


###############################################################################
# Règles pour l'IP masquerading
# Pour que le IP masquerading soit activé, il faut la variable "$NAT" soit à "1"
###############################################################################

if [ "$NAT" == "1" ]; then
  # Chargement des modules pour l'IP masquerading
  modprobe iptable_nat
  modprobe ip_nat_ftp
  modprobe ip_nat_irc

  echo "+ Autorise l'IP masquerading de $LAN_NETWORK -> $WAN_NETWORK"
  iptables -t filter -A FORWARD -i $LAN_INTERFACE -o $WAN_INTERFACE -s $LAN_NETWORK -d $WAN_NETWORK -p all -m state --state ! INVALID           -j ACCEPT
  iptables -t filter -A FORWARD -i $WAN_INTERFACE -o $LAN_INTERFACE -s $WAN_NETWORK -d $LAN_NETWORK -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

  iptables -t nat    -A POSTROUTING               -o $WAN_INTERFACE -s $LAN_NETWORK -d $WAN_NETWORK -p all -j MASQUERADE

  echo 1 > /proc/sys/net/ipv4/ip_forward

else
  echo "+ L'IP masquerading N'est PAS autorisé"
  echo 0 > /proc/sys/net/ipv4/ip_forward
fi


###############################################################################
# Règles pour le log
###############################################################################

echo "+ Definition des logs ($LOG)"
case "$LOG" in
  LOG_IN)
    iptables -t filter -A INPUT  -p all -j LOG --log-prefix $LOG_PREFIX
    ;;

  LOG_OUT)
    iptables -t filter -A OUTPUT -p all -j LOG --log-prefix $LOG_PREFIX
    ;;

  LOG_IN-OUT)
    iptables -t filter -A INPUT  -p all -j LOG --log-prefix $LOG_PREFIX
    iptables -t filter -A OUTPUT -p all -j LOG --log-prefix $LOG_PREFIX
    ;;

  ULOG_IN)
    iptables -t filter -A INPUT  -p all -j ULOG --ulog-prefix $LOG_PREFIX
    ;;

  ULOG_OUT)
    iptables -t filter -A OUTPUT -p all -j ULOG --ulog-prefix $LOG_PREFIX
    ;;

  ULOG_IN-OUT)
    iptables -t filter -A INPUT  -p all -j ULOG --ulog-prefix $LOG_PREFIX
    iptables -t filter -A OUTPUT -p all -j ULOG --ulog-prefix $LOG_PREFIX
    ;;
esac  

echo "+ ------====== SCRIPT TERMINE! ======------"
echo "+ Pour afficher votre configuration Netfilter, lancez:"
echo " - 'iptables -L -n -v'           pour la table 'Filter'"
echo " - 'iptables -L -n -v -t nat'    pour la table 'NAT'"
echo " - 'iptables -L -n -v -t mangle' pour la table 'Mangle'"

Dernière modification par yam (Le 12/02/2006, à 19:24)

Hors ligne