#1 Le 10/02/2006, à 12: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, à 18:16)
Hors ligne
#2 Le 11/02/2006, à 10: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 ) :
/etc/init.d/
Puis tu utilie "tab" pour afficher la liste complète qui est actuellement installé sur ton pc (je crois )
Hors ligne
#3 Le 11/02/2006, à 16:29
- yam
Re : [Resolu] serveur DHCP et le partage de connexion (modem usb + eth0)
bon ok ca progresse
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, à 09:52)
Hors ligne
#4 Le 12/02/2006, à 09: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 ...
Dernière modification par yam (Le 12/02/2006, à 09:50)
Hors ligne
#5 Le 12/02/2006, à 18: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é !! .
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 !!
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, à 18:24)
Hors ligne