Differenze tra le versioni di "Rete del GOLEM"
m (→Categorizzata) |
(Riportata riconfigurazione della rete, spostata parte VLAN) |
||
Riga 1: | Riga 1: | ||
In questa pagina sono raccolte tutte le informazioni relative alla struttura della rete LAN/Internet dell'[[Officina Informatica]]. | In questa pagina sono raccolte tutte le informazioni relative alla struttura della rete LAN/Internet dell'[[Officina Informatica]]. | ||
− | Al momento la rete è in | + | Al momento la rete è in fase di testing. |
== Esigenze == | == Esigenze == | ||
Riga 9: | Riga 9: | ||
* '''LAN''' - Abbiamo a disposizione 12 porte ethernet nelle sale dell'Officina; | * '''LAN''' - Abbiamo a disposizione 12 porte ethernet nelle sale dell'Officina; | ||
* '''WiFi interna''' - Oltre alla Ethernet LAN servirà un ulteriore dispositivo per la connessione tramite dispositivi wireless (WLAN); | * '''WiFi interna''' - Oltre alla Ethernet LAN servirà un ulteriore dispositivo per la connessione tramite dispositivi wireless (WLAN); | ||
− | * '''Server/Caching''' - Si vorrebbe usare | + | * '''Server/Caching''' - Si vorrebbe usare un server locale sia come semplice server locale (storage di dati condivisi) che come sistema di cache HTTP/DEB utile soprattutto per aggiornare rapidamente sistemi Linux (si veda [[apt-cacher]] o simili). Il traffico di rete dovrà attraversare il server. |
== Materiali a disposizione == | == Materiali a disposizione == | ||
− | * Antenne per ponte radio e relativi router | + | * Antenne per ponte radio e relativi router; |
− | * Switch Allied Telesyn (24 porte) | + | * Switch Allied Telesyn (24 porte); |
− | * Mikrotik RouterBoard 433 (per WLAN) | + | * PC generico ad uso server (doppia scheda eth, scheda wireless b/g); |
− | * [[A10-OLinuXino-LIME | OLinuXino A10 LIME]] | + | * <del>Mikrotik RouterBoard 433 (per WLAN)</del> |
+ | * <del>[[A10-OLinuXino-LIME | OLinuXino A10 LIME]]</del> | ||
− | == | + | == Configurazione del Server == |
− | |||
− | |||
− | |||
− | + | Nell'attuale configurazione si tratta di comune PC: | |
− | + | * CPU: P4 @ 2.40GHz | |
+ | * RAM: 1Gb | ||
+ | * Hard Disk: 250 Gb | ||
− | + | Il suo mestiere è separare rete interna da rete esterna (router), effettuare il DHCP sulla rete interna, condividere la rete wireless, fare la [[ Apt-cacher | cache dei pacchetti ]] e collegarsi ad un server [[VPN del GOLEM| VPN]] per accedervi dall'esterno. | |
− | |||
− | |||
− | |||
− | + | === Proxy+cacher === | |
− | + | La configurazione è spiegata alla pagina [[Apt-cacher]]. Si usa il solo squid per la cache e netmasq come DHCP server (e server DNS) anziché dhcpd. | |
− | + | A titolo di reference si riportano i files di configurazione di rilievo, privati dei commenti e già adattati alla presenza della rete wireless condivisa: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | '''squid - /etc/squid3/squid.conf''' | |
− | + | ||
− | + | acl SSL_ports port 443 | |
− | + | acl Safe_ports port 80 # http | |
− | + | acl Safe_ports port 21 # ftp | |
− | + | acl Safe_ports port 443 # https | |
− | + | acl Safe_ports port 70 # gopher | |
− | ''' | + | acl Safe_ports port 210 # wais |
− | + | acl Safe_ports port 1025-65535 # unregistered ports | |
− | # | + | acl Safe_ports port 280 # http-mgmt |
− | # | + | acl Safe_ports port 488 # gss-http |
− | + | acl Safe_ports port 591 # filemaker | |
− | + | acl Safe_ports port 777 # multiling http | |
− | + | acl CONNECT method CONNECT | |
− | # | + | acl our_networks src 192.168.'''xx'''.0/24 |
− | + | http_access allow our_networks | |
− | + | http_access deny !Safe_ports | |
− | + | http_access deny CONNECT !SSL_ports | |
− | # | + | http_access allow localhost manager |
− | + | http_access deny manager | |
− | + | http_access allow localhost | |
− | + | http_access deny all | |
− | + | http_port 192.168.'''xx.yy''':3128 transparent | |
− | + | maximum_object_size 400 MB | |
− | + | cache_dir ufs /var/spool/squid3 60000 16 256 | |
− | + | coredump_dir /var/spool/squid3 | |
− | + | refresh_pattern deb$ 1576800 100% 1576800 | |
− | + | refresh_pattern Packages.gz$ 1440 100% 1440 | |
− | + | refresh_pattern pkg.tar.xz$ 43200 100% 43200 | |
− | + | refresh_pattern ^ftp: 1440 20% 10080 | |
− | + | refresh_pattern ^gopher: 1440 0% 1440 | |
− | + | refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 | |
− | + | refresh_pattern . 360 20% 4320 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | '''dnsmasq - /etc/dnsmasq.conf''' | ||
+ | |||
domain-needed | domain-needed | ||
bogus-priv | bogus-priv | ||
+ | interface=br0 | ||
+ | dhcp-range=192.168.'''xx'''.101,192.168.'''xx'''.254,12h | ||
− | + | '''script iptables''' | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
#!/bin/sh | #!/bin/sh | ||
− | # Squid server | + | |
− | SQUID_SERVER="192.168. | + | # IP dello Squid server |
+ | SQUID_SERVER="192.168.'''xx.yy'''" | ||
# Interface connected to Internet | # Interface connected to Internet | ||
− | INTERNET=" | + | INTERNET="ethE" |
# Interface connected to LAN | # Interface connected to LAN | ||
− | LAN_IN=" | + | LAN_IN="br0" |
# Squid port | # Squid port | ||
Riga 134: | Riga 105: | ||
echo 1 > /proc/sys/net/ipv4/ip_forward | echo 1 > /proc/sys/net/ipv4/ip_forward | ||
− | # Set this system as a router for | + | # Set this system as a router for Rest of LAN |
iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE | iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE | ||
− | # DNAT port 80 request coming from LAN | + | # DNAT port 80 request coming from LAN to ( $SQUID_PORT ), aka transparent proxy |
iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT | iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT | ||
iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT | iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT | ||
− | == | + | Sostituire con '''xx''' ed '''yy''' i parametri di rete corretti. |
− | * | + | |
− | + | === Condivisione rete Wireless === | |
− | * [ | + | |
+ | Per impostare la scheda WiFi in modalità Access Point si fa uso di <code>hostapd</code>. | ||
+ | Prima di tutto bisogna verificare se la scheda di rete supporta tale modalità | ||
+ | |||
+ | # '''iw list''' | ||
+ | |||
+ | Supported interface modes: | ||
+ | * IBSS | ||
+ | * managed | ||
+ | * AP <=== | ||
+ | * AP/VLAN | ||
+ | * WDS | ||
+ | * monitor | ||
+ | * mesh point | ||
+ | |||
+ | La scheda wireless deve essere esattamente al pari dell'interfaccia ethernet interna (<code>ethI</code>), dunque si legano entrambe in un bridge. In questo modo entrambi i devices saranno visti da squid, iptables, etc.. come un singolo oggetto. | ||
+ | |||
+ | # '''nano /etc/network/interfaces''' | ||
+ | |||
+ | # Interfaccia di rete esterna | ||
+ | allow-hotplug ethE | ||
+ | auto ethE | ||
+ | iface ethE inet dhcp | ||
+ | |||
+ | # Interfaccia di rete interna al GOLEM | ||
+ | allow-hotplug ethI | ||
+ | auto ethI | ||
+ | iface ethI inet static | ||
+ | address 0.0.0.0 | ||
+ | |||
+ | # Ponte/Bridge per il WiFi | ||
+ | auto br0 | ||
+ | iface br0 inet static | ||
+ | address '''192.168.xx.yy''' | ||
+ | netmask 255.255.255.0 | ||
+ | bridge_ports ethI | ||
+ | |||
+ | Naturalmente in luogo di <code>address 192.168.xx.yy</code> dovrà essere posto l'IP statico del server. | ||
+ | Non si inserisce qui l'interfaccia wireless perché sarà <code>hostapd</code> a fare i dovuti settaggi e ad aggiungerla al bridge, operando come segue: | ||
+ | |||
+ | # '''nano /etc/hostapd/hostapd.conf''' | ||
+ | |||
+ | # Interfaccia di rete | ||
+ | interface=wlan0 | ||
+ | driver=nl80211 | ||
+ | |||
+ | # Nome della rete (SSID) | ||
+ | ssid=GOLEM-WiFi | ||
+ | hw_mode=g | ||
+ | |||
+ | # Canale di trasmissione | ||
+ | channel=6 | ||
+ | macaddr_acl=0 | ||
+ | |||
+ | # Righe per la protezione | ||
+ | auth_algs=1 | ||
+ | ignore_broadcast_ssid=0 | ||
+ | wpa=2 | ||
+ | |||
+ | # Password del WiFi | ||
+ | wpa_passphrase=''password'' | ||
+ | |||
+ | wpa_key_mgmt=WPA-PSK | ||
+ | wpa_pairwise=TKIP | ||
+ | rsn_pairwise=CCMP | ||
+ | |||
+ | # aggiunge l'interfaccia al bridge | ||
+ | bridge=br0 | ||
+ | |||
+ | == Fatti storici == | ||
+ | |||
+ | * Tanto tempo fa, in un'Officina lontana, la gestione della rete era affidata al serverone, che ora giace defunto nel magazzino; | ||
+ | * Durante la permanenza temporanea in ex-Ospedale Vecchio si è fatto uso di un [[A10-OLinuXino-LIME | OLinuXino A10 LIME]]; | ||
+ | * Di ritorno alla Vela, attuale Officina, si è sperimentata una soluzione [[A10-OLinuXino-LIME | OLinuXino ]] + [[VLAN]], ma per praticità di gestione è stata scartata; | ||
[[Category:Officina]] | [[Category:Officina]] | ||
[[Category:Howto]] | [[Category:Howto]] |
Versione delle 21:20, 18 mar 2017
In questa pagina sono raccolte tutte le informazioni relative alla struttura della rete LAN/Internet dell'Officina Informatica. Al momento la rete è in fase di testing.
Esigenze
- Ponte radio - Poiché non arriva cavo telefonico all'Officina, è necessario realizzare una connessione a distanza con un modem/router interno all'area della vela. Si userà un ponte radio bridge presumibilmente a 5GHz;
- Separazione delle reti - Rete interna GOLEM e rete esterna (ponte radio/gateway esterno) devono essere separate;
- LAN - Abbiamo a disposizione 12 porte ethernet nelle sale dell'Officina;
- WiFi interna - Oltre alla Ethernet LAN servirà un ulteriore dispositivo per la connessione tramite dispositivi wireless (WLAN);
- Server/Caching - Si vorrebbe usare un server locale sia come semplice server locale (storage di dati condivisi) che come sistema di cache HTTP/DEB utile soprattutto per aggiornare rapidamente sistemi Linux (si veda apt-cacher o simili). Il traffico di rete dovrà attraversare il server.
Materiali a disposizione
- Antenne per ponte radio e relativi router;
- Switch Allied Telesyn (24 porte);
- PC generico ad uso server (doppia scheda eth, scheda wireless b/g);
Mikrotik RouterBoard 433 (per WLAN)OLinuXino A10 LIME
Configurazione del Server
Nell'attuale configurazione si tratta di comune PC:
- CPU: P4 @ 2.40GHz
- RAM: 1Gb
- Hard Disk: 250 Gb
Il suo mestiere è separare rete interna da rete esterna (router), effettuare il DHCP sulla rete interna, condividere la rete wireless, fare la cache dei pacchetti e collegarsi ad un server VPN per accedervi dall'esterno.
Proxy+cacher
La configurazione è spiegata alla pagina Apt-cacher. Si usa il solo squid per la cache e netmasq come DHCP server (e server DNS) anziché dhcpd.
A titolo di reference si riportano i files di configurazione di rilievo, privati dei commenti e già adattati alla presenza della rete wireless condivisa:
squid - /etc/squid3/squid.conf acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT acl our_networks src 192.168.xx.0/24 http_access allow our_networks http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access allow localhost http_access deny all http_port 192.168.xx.yy:3128 transparent maximum_object_size 400 MB cache_dir ufs /var/spool/squid3 60000 16 256 coredump_dir /var/spool/squid3 refresh_pattern deb$ 1576800 100% 1576800 refresh_pattern Packages.gz$ 1440 100% 1440 refresh_pattern pkg.tar.xz$ 43200 100% 43200 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 360 20% 4320
dnsmasq - /etc/dnsmasq.conf domain-needed bogus-priv interface=br0 dhcp-range=192.168.xx.101,192.168.xx.254,12h
script iptables #!/bin/sh # IP dello Squid server SQUID_SERVER="192.168.xx.yy" # Interface connected to Internet INTERNET="ethE" # Interface connected to LAN LAN_IN="br0" # Squid port SQUID_PORT="3128" # Clean old firewall iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Load IPTABLES modules for NAT and IP conntrack support modprobe ip_tables modprobe ip_conntrack modprobe iptable_nat modprobe ipt_MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward # Set this system as a router for Rest of LAN iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE # DNAT port 80 request coming from LAN to ( $SQUID_PORT ), aka transparent proxy iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
Sostituire con xx ed yy i parametri di rete corretti.
Condivisione rete Wireless
Per impostare la scheda WiFi in modalità Access Point si fa uso di hostapd
.
Prima di tutto bisogna verificare se la scheda di rete supporta tale modalità
# iw list Supported interface modes: * IBSS * managed * AP <=== * AP/VLAN * WDS * monitor * mesh point
La scheda wireless deve essere esattamente al pari dell'interfaccia ethernet interna (ethI
), dunque si legano entrambe in un bridge. In questo modo entrambi i devices saranno visti da squid, iptables, etc.. come un singolo oggetto.
# nano /etc/network/interfaces # Interfaccia di rete esterna allow-hotplug ethE auto ethE iface ethE inet dhcp # Interfaccia di rete interna al GOLEM allow-hotplug ethI auto ethI iface ethI inet static address 0.0.0.0 # Ponte/Bridge per il WiFi auto br0 iface br0 inet static address 192.168.xx.yy netmask 255.255.255.0 bridge_ports ethI
Naturalmente in luogo di address 192.168.xx.yy
dovrà essere posto l'IP statico del server.
Non si inserisce qui l'interfaccia wireless perché sarà hostapd
a fare i dovuti settaggi e ad aggiungerla al bridge, operando come segue:
# nano /etc/hostapd/hostapd.conf # Interfaccia di rete interface=wlan0 driver=nl80211 # Nome della rete (SSID) ssid=GOLEM-WiFi hw_mode=g # Canale di trasmissione channel=6 macaddr_acl=0 # Righe per la protezione auth_algs=1 ignore_broadcast_ssid=0 wpa=2 # Password del WiFi wpa_passphrase=password wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP # aggiunge l'interfaccia al bridge bridge=br0
Fatti storici
- Tanto tempo fa, in un'Officina lontana, la gestione della rete era affidata al serverone, che ora giace defunto nel magazzino;
- Durante la permanenza temporanea in ex-Ospedale Vecchio si è fatto uso di un OLinuXino A10 LIME;
- Di ritorno alla Vela, attuale Officina, si è sperimentata una soluzione OLinuXino + VLAN, ma per praticità di gestione è stata scartata;