Réseau@elaboratoire
Aller à la navigation
Aller à la recherche
Architecture physique
Une première proposition pourrait ressembler à ça:
Architecture logique
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