« Réseau@elaboratoire » : différence entre les versions
m (intro physique) |
m (intro physique) |
||
Ligne 25 : | Ligne 25 : | ||
Il faut mettre un relai plus près des chap'. | Il faut mettre un relai plus près des chap'. | ||
[[File:Map elabo.png]] | [[File:Map elabo.png|600px]] | ||
== Architecture logique == | == Architecture logique == |
Version du 18 mars 2011 à 16:01
Architecture physique
Contexte
Deux lieux :
- l'Élaoratoire (17B av du chardonnet, 48.108587 : -1.645598)
- le "48" (48 av Villebois-Mareuil, 48.106852 : -1.651019)
Une freebox dans chaque lieu. Des lieux communs, des ateliers, des habitations réparties.
48
Une freebox installée en équilibre précaire. Rien d'autre.
Il faut (dans l'ordre) :
- cabler la cuisine
- mettre une grosse antenne omni à la place de la freebox
- cabler la maison
- installer un relai au fond
Élabo
Une freebox dans le bureau, arrose tout le bâtiment.
Il faut mettre un relai plus près des chap'.
Architecture logique
Une première proposition pourrait ressembler à ça:
Adressage IP
- Réseau: 10.42.0.0/20
- Infrastructure : 10.42.0.0/23
- Serveurs etc : 10.42.0.0 /24
- Routeur: 10.42.0.1
- Serveurs: 10.42.0.2-254
- Reservé : 10.42.1.0 /24
- Serveurs etc : 10.42.0.0 /24
- Infrastructure : 10.42.0.0/23
- Hackerspace : 10.42.2.0/23
- 10.42.2.1/24
- Routeur : 10.42.2.1
- Clients : 10.42.2.2-254
- Reservé: 10.42.3.0/24
- 10.42.2.1/24
- Hackerspace : 10.42.2.0/23
- 48 : 10.42.4.0/23
- Normal : 10.42.4.0/24
- Routeur : 10.42.4.1
- Clients : 10.42.4.2-254
- Anonyme : 10.42.5.0/24
- Routeur : 10.42.5.1
- Clients : 10.42.5.2-254
- Normal : 10.42.4.0/24
- 48 : 10.42.4.0/23
- Chardonet : 10.42.6.0/23
- Normal : 10.42.6.0/24
- Routeur : 10.42.6.1
- Clients : 10.42.6.2-254
- Anonyme : 10.42.7.0/24
- Routeur : 10.42.7.1
- Clients : 10.42.7.2-254
- Normal : 10.42.6.0/24
- Chardonet : 10.42.6.0/23
- Reservé: 10.42.8.0/23
- Reservé: 10.42.8.0/24
- Reservé: 10.42.9.0/24
- Reservé: 10.42.8.0/23
- Reservé: 10.42.10.0/23
- Reservé: 10.42.10.0/24
- Reservé: 10.42.11.0/24
- Reservé: 10.42.10.0/23
- Reservé: 10.42.12.0/23
- Reservé: 10.42.12.0/24
- Reservé: 10.42.13.0/24
- Reservé: 10.42.12.0/23
- Reservé: 10.42.14.0/23
- Reservé: 10.42.14.0/24
- Reservé: 10.42.15.0/24
- Reservé: 10.42.14.0/23
- DN42: 172.22.108.0/23
- Infra: 172.22.108.0/24
- Routeur: 172.22.108.1
- Réservé: 172.22.108.2-254
- TODO: /25 pour les serveurs ?
- Infra: 172.22.108.0/24
- Clients hackerspace: 172.22.109.0/24
- Routeur: 172.22.109.1
- Clients: 172.22.109.2-254
- Clients hackerspace: 172.22.109.0/24
Topologie
- 2 Vlan / SSIDs proposés sur le wifi:
- 1 vlan pour les clients normaux
- 1 vlan pour les clients anonymes.
Notes
- Connexion anonyme via VPN toile-libre.
- Accès IPv6 pour clients normaux.
- Accès DN42 pour les clients normaux.
- Chardonnet et 48 relié par pont wifi + VPN en backup (limité à 1Mb/s)
- Pourquoi un/des serveur(s): Pour proposer quelques services, typiquement partage de fichier, boot réseaux vers des livecds etc
- Pourquoi plein d'adresses reservées ? Pour prévoir une config un peu large permettant de ne pas avoir à tout casser en cas de nouveau besoin (typiquement, interco avec un autre site)
TODO
- Documenter, documenter, documenter, documenter ...
- Inventaire matos
- Mise en place routeur
- Mise en place premier AP wifi
Inventaire materiel
- 1x Firebox x550: PC 1ghz 512 Mb ram 8 ports réseau 100Mb/s
- 1x poweredge 1950: PC 2x Xeon 3Ghz , 2 go de ram , 2x36Go SCSI.
- 2x NSLU2
Configurations
Routeur 1
Materiel
Firebox x550: PC 1ghz 512 Mb ram 8 ports réseau 100Mb/s
OS
Debian squeeze.
Partionnement:
- /dev/sda5 : /boot => 100Mo
- /dev/sda6 : LVM => Reste
- / => 1Go
- /usr => 2Go
- /var => 2Go
- swap => 1Go
- reste => inutilisé
Interfaces
auto lo iface lo inet loopback #infra normal etc auto eth1 iface eth1 inet static address 10.42.0.1 netmask 255.255.255.0 # Hackerspace auto eth2 iface eth2 inet static address 10.42.2.1 netmask 255.255.255.0 # 48 normal auto eth3 iface eth3 inet static address 10.42.4.1 netmask 255.255.255.0 # 48 Anonyme auto eth4 iface eth4 inet static address 10.42.5.1 netmask 255.255.255.0
IPv6
nano /etc/network/interfaces --- auto he-ipv6 iface he-ipv6 inet6 v4tunnel endpoint 216.66.84.42 address TODO netmask 64 up ip -6 route add 2000::/3 dev he-ipv6 down ip -6 route add 2000::/3 dev he-ipv6 mtu 1480 auto dummy0 iface dummy0 inet6 static address TODO netmask 64 --- apt-get install radvd
VPN
https://www.toile-libre.org/fr/node/102
Firewall
(work in progress)
######################################################################################################### # RAZ ######################################################################################################### iptables -F iptables -X ip6tables -F ip6tables -X iptables -t nat -F iptables -t nat -X ######################################################################################################### # On commence par definir une serie de variable pour associer les interfaces au type de réseau. ######################################################################################################### # interfaces physiques INTERNET=eth0 SERVEURS=eth1 HACKERSPACE=eth2 CLIENTS=eth3 ANONYMES=eth4 # interfaces virtuelles VPN=tap0 DN42=tap1 INTERNET6=he-ipv6 ######################################################################################################### # On definit quelques fonctions utilitaires ######################################################################################################### # iptables pour ipv6 et ipv4 ip46tables () { iptables $@ ip6tables $@ } # aliases FW = ip46tables FW4 = iptables FW6 = ip6tables # log et refuse le paquet $FW -N LOGREJECT $FW -A LOGREJECT -j LOG $FW -A LOGREJECT -j REJECT # log et efface le paquet $FW -N LOGDROP $FW -A LOGDROP -j LOG $FW -A LOGDROP -j DROP # log et accepte le paquet $FW -N LOGACCEPT $FW -A LOGACCEPT -j LOG $FW -A LOGACCEPT -j ACCEPT ######################################################################################################### # Cas du traffic entrant sur le routeur ######################################################################################################### $FW -A INPUT -i $HACKERSPACE -j ACCEPT $FW -A INPUT -i $CLIENTS -j ACCEPT $FW -A INPUT -i $ANONYMES -j ACCEPT $FW -A INPUT -i $SERVEURS -j ACCEPT $FW -N INPUT_INTERNET $FW -N INPUT_DN42 $FW -A INPUT -i $INTERNET -j INPUT_INTERNET $FW -A INPUT -i $DN42 -j INPUT_DN42 $FW -A INPUT -j LOGDROP ######################################################################################################### # Cas du traffic sortant depuis le routeur ######################################################################################################### # on accepte tout $FW -A OUTPUT $INTERNET -j ACCEPT ######################################################################################################### # Cas du traffic que le routeur transfere ######################################################################################################### ########################### # Clients ########################### $FW -A FORWARD -i $CLIENTS -o $INTERNET -j ACCEPT $FW -A FORWARD -i $CLIENTS -o $HACKERSPACE -j ACCEPT $FW -A FORWARD -i $CLIENTS -o $SERVEURS -j ACCEPT $FW -A FORWARD -i $CLIENTS -o $ANONYMES -j ACCEPT ########################### # Clients Anonymes ########################### $FW -A FORWARD -i $ANONYMES -o $VPN -j ACCEPT $FW -A FORWARD -i $ANONYMES -o $HACKERSPACE -j ACCEPT $FW -A FORWARD -i $ANONYMES -o $SERVEURS -j ACCEPT $FW -A FORWARD -i $ANONYMES -o $CLIENTS -j ACCEPT ########################### # hackerspace ########################### $FW -A FORWARD -i $HACKERSPACE -o $INTERNET -j ACCEPT $FW -A FORWARD -i $HACKERSPACE -o $INTERNET6 -j ACCEPT $FW -A FORWARD -i $HACKERSPACE -o $CLIENTS -j ACCEPT $FW -A FORWARD -i $HACKERSPACE -o $ANONYMES -j ACCEPT $FW -A FORWARD -i $HACKERSPACE -o $SERVEURS -j ACCEPT $FW -A FORWARD -i $HACKERSPACE -o $DN42 -j ACCEPT ########################### # Serveurs ########################### $FW -A FORWARD -i $SERVEURS -o $INTERNET -j ACCEPT $FW -A FORWARD -i $SERVEURS -o $CLIENTS -j ACCEPT $FW -A FORWARD -i $SERVEURS -o $ANONYMES -j ACCEPT $FW -A FORWARD -i $SERVEURS -o $HACKERSPACE -j ACCEPT ########################### # Internet ########################### $FW -A FORWARD -i $INTERNET -m state --state RELATED,ESTABLISHED -j ACCEPT $FW -A FORWARD -i $INTERNET6 -m state --state RELATED,ESTABLISHED -j ACCEPT $FW -N FWD_INTERNET $FW -A FORWARD -i $INTERNET -J FWD_INTERNET $FW -A FORWARD -i $INTERNET6 -J FWD_INTERNET ########################### # VPN ########################### $FW -A FORWARD -i $VPN -m state --state RELATED,ESTABLISHED -j ACCEPT ########################### # DN42 ########################### $FW -A FORWARD -i $DN42 -m state --state RELATED,ESTABLISHED -j ACCEPT $FW -N FWD_DN42 $FW -A FORWARD -i $DN42 -J FWD_DN42 ########################### # RESTE ########################### $FW -A FORWARD -j LOGDROP ######################################################################################################### # Cas particuliers ######################################################################################################### # trafic internet -> routeur $FW4 -A INPUT_INTERNET -p icmp -j ACCEPT $FW6 -A INPUT_INTERNET -p icmpv6 -j ACCEPT $FW -A INPUT_INTERNET -p tcp -m tcp --dport 22 -j ACCEPT # trafic dn42 -> routeur $FW4 -A INPUT_DN42 -p icmp -j ACCEPT $FW6 -A INPUT_DN42 -p icmpv6 -j ACCEPT $FW -A INPUT_DN42 -p tcp -m tcp --dport 22 -j ACCEPT # TODO: mettre ici l'hébergement de services. ######################################################################################################### # NAT ######################################################################################################### $FW4 -t nat -P PREROUTING ACCEPT $FW4 -t nat -P POSTROUTING ACCEPT $FW4 -t nat -P OUTPUT ACCEPT $FW4 -t nat -A POSTROUTING -d -i $SERVEURS -o $INTERNET -j MASQUERADE $FW4 -t nat -A POSTROUTING -d -i $HACKERSPACE -o $INTERNET -j MASQUERADE $FW4 -t nat -A POSTROUTING -d -i $CLIENTS -o $INTERNET-j MASQUERADE $FW4 -t nat -A POSTROUTING -d -i $ANONYMES -o $VPN -j MASQUERADE $FW4 -t nat -A POSTROUTING -d -i $HACKERSPACE -o $DN42-j MASQUERADE ######################################################################################################### # END ! ######################################################################################################### iptables-save > /etc/iptables.conf ip6tables-save > /etc/ip6tables.conf
DHCP
ddns-update-style none; update-static-leases on; //option domain-name "@DOMAIN"; //option domain-name-servers @DNSIP1, @DNSIP2; option netbios-name-servers 10.42.0.2; default-lease-time 600; max-lease-time 7200; authoritative; log-facility local7; // We don't use dhcp in the server range //subnet 10.42.0.0 netmask 255.255.255.0 { // option routers 10.42.0.1; // option domain-name-servers 10.42.0.1, 10.42.0.2; // // pool { // range 10.42.0.2 10.42.0.254; // } //} //hackerspace subnet 10.42.2.0 netmask 255.255.255.0 { option routers 10.42.2.1; option domain-name-servers 10.42.2.1, 10.42.0.2; pool { range 10.42.2.2 10.42.2.254; range 172.22.109.2 172.22.109.254 // c'est valide ça ? } } // clients 48 subnet 10.42.4.0 netmask 255.255.255.0 { option routers 10.42.4.1; option domain-name-servers 10.42.4.1, 10.42.0.2; pool { range 10.42.4.2 10.42.4.254; } } // anonymes 48 subnet 10.42.3.0 netmask 255.255.255.0 { option routers 10.42.3.1; option domain-name-servers 10.42.3.1, 10.42.0.2; pool { range 10.42.5.2 10.42.5.254; } }
DNS
apt-get install bind nano /etc/bind/named.conf.options nano /etc/bind/named.conf.local
Monitoring
apt-get install logcheck nano /etc/cron.d/logcheck apt-get install rkhunter apt-get install munin-node
Serveur
Materiel
poweredge 1950: PC 2x Xeon 3Ghz , 2 go de ram , 2x36Go SCSI.
OS
Debian squeeze.
2 disques partionnés de manière identique pour raid
- 1x Raid 1 100 Mo => /boot
- 1x Raid 1 X Go => LVM
- / => 1Go
- /usr => 2Go
- /var => 2Go
- Reste => TODO
- 2x Swap 1Go
Disque de données ?
- /srv/data
- /srv/data/shared
- /srv/data/homes
Monitoring
apt-get install logcheck nano /etc/cron.d/logcheck apt-get install rkhunter apt-get install munin munin-node
Samba
apt-get install samba nano /etc/samba/smb.conf --- security = TODO wins support = yes [partage] path = /srv/data/shared read only = no create mask = 0777 directory mask = 0777 guest ok = yes ---
NFS
apt-get install nfs-kernel-server nano /etc/exports --- # TODO: corriger /srv/data/ 10.42.*.*(rw,async,fsid=0,no_subtree_check,root_squash) ---
FTPD
apt-get install pure-ftpd
TFTP
TODO
apache
apt-get install apache2
php (fcgid)
apt-get install php-cgi libapache2-mod-fcgi
mysql
apt-get install mysql-server mysql-client