1 Configurer le réseau
1.1 Adresse IP
1.2 Dhcp
1.3 Route
1.4 DNS
2 Connexion ADSL
2.1 Configurer la connexion
2.2 Partager la connexion
2.3 Sécuriser la connexion
2.4 Filtrage transparent
3 Le Wifi (802.11b) : Configurer la connexion en
AP (Point d'accès)
1 Configuration
de base
1.1 Configurer les cartes réseau
La gestion réseau est très simple, même pour les cartes
un peu exotiques. Quiconque a pataugé avec le module pcmcia sous
Linux appréciera. Pour connaître votre interface réseau
: dmesg |more. La carte réseau est reconnue
automatiquement au démarrage de votre machine.
Contrairement au kernel Linux, BSD ne classe pas les interfaces
par type, mais par constructeur, ainsi pas de eth0, eth1... pour les cartes
ethernet, mais 2 ou 3 lettres pour le constructeur puis 1 chiffre pour
le numéro de carte en commençant par 0 pour la 1ère
de la série:
dc :Xircom PCMCIA
rl : Realtek 8139
fxp :Intel Etherpro
xl : 3 Com
ne : Realtek 8029
le : Interface Virtuelle de VMWare
wi,an : cartes Wi-Fi 802.11
wi pour le driver générique, an pour les
cartes cisco aironet.
Pour la configurer lancer alors la commande
ifconfig fxp0 172.16.0.1 netmask 255.255.0.0 up
fxp0 pour une carte Intel avec comme adresse IP 172.16.0.1
et up pour la rendre active.
Pour vérifier lancer la commande
ifconfig -a
qui affiche tous les paramètres réseau (et
non ifconfig qui n'affiche sous Linux
que les interfaces up).
Pour rendre active cette carte réseau au redémarrage de la
machine, vous devez créer le fichier /etc/hostname.fxp0 avec
dedans la ligne
inet 172.16.0.1 255.255.0.0 NONE.
Un truc comme cela doit pouvoir le faire sans problème
echo "inet 172.16.0.1 255.255.0.0 NONE" > /etc/hostname.fxp0
Notons que NONE représente le type d'option que l'on peut
passer, c'est à dire en pratique la connexion physique :
10 ou 100Mb, simple ou full duplex.
Pour ajouter une deuxième carte réseau
faire la même chose avec le nom de la carte (voir cela avec dmseg).
Si la carte est la même, on a alors fxp1.
Éventuellement pour relancer le réseau sh /etc/netstart
1.2 Client DHCP
Si vous souhaitez que votre machine OpenBSD soit cliente d'un serveur
DHCP, vous devez simplement mettre dhcp dans le fichier /etc/hostname.fxp0
(fxp0 dépend de votre carte réseau, à vous de l'adapter).
Il ne doit donc, dans ce fichier plus y avoir que cela.
Pour relancer une demande d'adresse IP auprès d'un serveur
DHCP, vous devez relancer avec la commande
dhclient fxp0
où fxp0 est le nom de l'interface réseau
ou
sh /etc/netstart
Vous pouvez paramétrer ce client avec le fichier
/etc/dhclient.conf. Voir le man dhclient.conf pour en savoir
plus.
1.3 Les routes
La passerelle par défaut se trouve dans le fichier /etc/mygate,
on peut aussi la mettre dans chaque fichier de configuration des cartes
réseau.
route show affiche toutes les routes, ou netstat
-nr.
Pour ajouter une route la syntaxe est assez simple, route add
-host 195.98.246.50 172.16.0.10 (pour ajouter une route en direction
de la machine 195.98.246.50). -net si vous ajoutez une route pour
un réseau.
La commande route ne change pas beaucoup de son équivalent
sous Linux.
Afin de lancer votre route au démarrage vous devez placer la
(ou les) lignes dans le fichier /etc/mygate ou dans /etc/hostname.fi (par
carte réseau) ou pour ajouter d'autres routes /etc/rc.local.
Pour faire de votre machine OpenBSD une passerelle
(en fait un routeur) vous devez modifier dans le fichier /etc/sysctl.conf
la ligne net.inet.ip.forwarding=1 (Par défaut il n'est pas actif).
Il faut que le noyau soit compilé pour cela, mais c'est le cas pour
le noyau par défaut (GENERIC). Pour ne pas être obligé
de redémarrer faites sysctl -w net.inet.ip.forwarding=1 (qui
sera perdu au redémarrage).
Attention, ceci ne concerne que IPV4 (l'actuelle version),si vous
vous lancez dans le routage IPV6 (c'est bien!),
la commande devient :
net.inet6.ip6.forwarding=1 dans /etc/sysctl.conf
ou avec sysctl -w net.inet6.ip6.forwarding=1.
1.4 Configurer le client DNS
Tout se passe dans /etc/resolv.conf qui doit avoir la tête
suivante :
search ac-creteil.fr (votre domaine)
nameserver 193.252.19.4 (le DNS
de votre provider)
nameserver 193.252.19.3
(un second au cas ou le premier tombe)
# Très fortement conseillé !
lookup file bind
Cela n'empêche pas d'avoir un fichier /etc/host en plus.
Cela ne change pas beaucoup du monde Linux.
Pour prendre les modifications en compte sh /etc/netstart
2 Connexion ADSL
Pour commencer il vous faut une ligne ADSL (netissimo 1 ou
2), un modem loué à FT, j'utilise ici un modem alcatel ethernet
- ethernet.
Le but est ici d'utiliser une machine OpenBSD comme passerelle vers
l'internet. On envisage donc de mettre dessus deux cartes réseau,
une vers le réseau local, une directement sur le modem. Si on veut
mettre en place une DMZ il est possible de mettre en place une troisième
ou plus. Mais les règles de pf commencent à devenir complexes.
Le protocole mis en place par FT est actuellement PPPoE. Celui ci
est déjà supporté par votre serveur OpenBSD. Les
fichiers de configuration se trouvent dans /etc/ppp.
Par défaut le modem Alcatel à comme adresse IP 10.0.0.138.
Vous pouvez modifier sa configuration en utilisant votre navigateur. Les
modems alcatel ont des problèmes de sécurité. On peut
par exemple simplement y accéder en telnet facilement.
2.1 Configurer la connexion
Copier le fichier exemple /etc/ppp/ppp.conf.sample en ppp.conf
# ppp.conf
default:
set log Phase Chat LCP IPCP CCP tun command
set redial 15 28800
set reconnect 15 28800
pppoe:
set device "!/usr/sbin/pppoe -i vr0"
disable acfcomp protocomp
deny acfcomp
set mtu max 1492
set speed sync
enable lqr
set lqrperiod 5
set cd 5
set dial
set login
set timeout 0
set authname VOTRE_INDENTIFIANT_DE_CONNEXION
set authkey VOTRE_MOT_DE_PASSE_DE_CONNEXION
enable sroutes
add default HISADDR
enable mssfixup
enable dns
Enlevez toutes les lignes inutiles, enfin qui ne sont pas pppoe....et
il y en a.
Un ppp.conf propre à télécharger.
Puis faites de même avec le fichier ppp.linkup.sample
En fait vous mettez en place les règles de FireWall propre
à la connexion ADSL au moment ou celle-ci se monte. Impossible
d'activer le firewall dès le démarrage, le tunnel ppp n'existe
pas encore, rien ne fonctionnerait.
# ppp.linkup
MYADDR:
! sh -c "/sbin/ifconfig pflog0 up"
! sh -c "/sbin/pfctl -e -l tun0 -F all -O agressive -R /etc/pf.conf
-N /etc/nat.conf" (3.0 & 3.1)
! sh -c "/sbin/pfctl -e -l tun0 -F all -O agressive -f /etc/pf.conf
" (3.2)
De même pour le ppp.linkdown
MYADDR:
! sh -c "/sbin/pfctl -F all -d"
on supprime toutes les règles mises en place pour la connexion
ADSL.
On peut aussi recréer un autre fichier de règles lorsque
la connexion adsl n'est pas active.
Il vous reste à lancer la connexion pour voir ce qui se passe.
ppp --ddial pppoe
un petit script à lancer
par rc.local, pour lancer la connexion au démarrage.
Vous pouvez tester depuis la machine elle même (en faisant un
ping vers l'extéreiur).
Vous pouvez aussi en faisant un ifconfig -a vérifier
l'adresse IP que vous avez reçu de votre provider.
Enfin faites netstat -nr pour vérifier que vous avez
bien une route par défaut.
Remarquez que l'adresse que j'ai reçu de mon provider est 80.11.133.196
et que la passerelle par défaut est 80.11.133.1
Si vous souhaitez que votre connexion garde ou reprenne la ligne de
façon permanente vous devez ajouter dans le fichier /etc/ppp/options
lock
persist
noauth
debug
2.2 Partager la connexion
Le but étant de partager la connexion
avec les autres machines de votre réseau intranet, il vous faut
activer le partage.
Dans le fichier /etc/sysctl.conf remplacez net.inet.ip.forwarding=0
par net.inet.ip.forwarding=1
Puis dans le fichier /etc/nat.conf ajouter la ligne suivante :
nat
on tun0
from 172.16.0.0/16
to any -> tun0
Active la "mascarade
IP" sur l'interface tun0 depuis
le sous-réseau 172.16.0.0/16
vers toute adresse
Pour que les clients puissent utiliser cette passerelle, vous devez
indiquer comme route par défaut, l'adresse IP de la carte réseau
côté intranet de cette machine.
Afin que cela soit pris en compte il faut rebooter votre machine.
Mais avant toute chose pensez à mettre en place votre pare-feu
pf.
2.3 Sécuriser
votre connexion ADSL
En fait vous devez mettre en place des règles avec
pf.
A savoir dans ce cas que l'interface côté internet est
tun0 et non pas le nom de votre carte réseau.
Le principe consiste à tout bloquer en entrée et autoriser
les protocoles dont vous avez besoin en sortie.
Les problèmes un peu compliqués à résoudre
sont le ftp,
netmeeting... etc.
Le pont filtrant a deux cartes réseaux,
comme un routeur, MAIS aucune n'a d'adresse IP. Par conséquent la
machine est pratiquement invisible. Elle servira à interconnecter
deux réseaux en routant les paquets et en les filtrant, car on prendra
soin d'activer pf. Il suffit d'activer le routage IP ou IPV6.
Intérêts :
- Vous séparez les domaines de collision (comme un commutateur).
- Vous routez IP et bloquez IPX, NetBeui....
- Vous filtrez de manière quasi indétectable le traffic.
(En fait l'entête Ethernet sera celle de la carte réseau du
pont et non celle de la machine expéditrice).
Inconvénients :
- Sans adresse IP, votre machine sera incapable de communiquer (pas
de Cvsup, pas de mail, pas de SSH, rien!) .
Solution :Mettre une troisième carte réseau qui
aura, elle, une adresse IP. une vieille carte 10 Mb suffira pour gérer
la machine en SSH. Attention, votre pont redevient
détectable (et attaquable) par cette carte.
- Les cartes réseaux sont en mode promiscious, elles écoutent
tout le trafic réseau et pas seulement celui dont elles sont destinatrices.
Cela induira une charge supplémentaire pour la carte et le bus.
Certaines (tl :Texas Instruments ThunderLAN
Ethernet driver) ne supportent pas ce mode.
Comment ? :
Supposons que vous ayez deux cartes 3Com:
cat /etc/hostname.xl0
donne up.
cat /etc/hostname.xl1
donne up.
cat /etc/bridgename.bridge0 donne
add xl0
add xl1
blocknonip xl0
#Optionnel ; permet de bloquer les paquets non-IP (IPX ou NetBEUI
par ex.)
blocknonip xl1
Puis brconfig bridge0 up.
Ou alors, sans le fichier /etc/bridgename.bridge0:
brconfig bridge0 add xl0 add xl1 up
Il est très recommandé de n'appliquer de règles
de filtrage que sur une des deux cartes réseaux. Rien n'interdit
de le faire sur les deux, mais attention aux erreurs de configurations; c'est
bien plus compliqué.
n'oubliez pas man brconfig.Pour y trouver plein d 'idées.
3 Connexion sans fil : Wifi (802.11b)
Très à la mode, le
wifi est ,bien entendu, géré par OpenBSD. Comme sous Linux,
les cartes à base de chipset Prism sont parfaitement reconnues. Sans
faire de publicité pour l'un ou pour l'autre des fabricants de carte
utilisant ce chipset, j'ai fait tous les tests,ici, sur une carte Netgear
PCI MA311 et une carte PCMCIA Netgear MA401. La présence d'un driver
pour cartes Aironet de Cisco montre que ce choix (Netgear) est loin d'etre
le seul. Pour le choix, je ne saurais que vous recommender un des
nombreux sites traitant du wireless tous OS confondus (OpenBSD inclus).
Nous allons voir comment transformer votre routeur ADSL sous OpenBSD en
point d'accès :
1. Vérifiez que votre carte Wifi est reconnue : dmesg |more.
2. "Allumez" et ajoutez une IP fixe, dans une plage d'adresses
privées, à cette carte : ifconfig wi0 10.10.10.10
netmask 255.255.255.0 up, par exemple.
3. Réglez-la en AP :wicontrol -i wi0 -p 6
Ajoutez maintenant un serveur dhcpd et c'est parti. N'oubliez pas de rajouter
les règles qui vont bien dans pf, quand meme..
Ca marche.....presque.
Attention :Tout ce ci est TOTALEMENT non sécurisé.. N'importe
qui avec sa carte wifi sort de votre routeur, voire plus si vous avez été
laxiste sur les règles de filtrage.
Ajout prochain : la sécu.
© Philippe Schwarz - Philippe Chadefaux - $Id: Reseau.htm,v 1.16 2003/10/09 08:32:36 phil Exp $ -