====== Trasformare la tua Raspberry PI in un webserver domestico ====== Senza molti sforzi è possibile trasformare la nostra piccola rapberry in un webserver domestico, Vediamo i passi necessari. ===== Cambio nome host ===== Per cambiare il nome della nostra raspberry il modo più semplice è tramite l'utility raspi-config, usando l'opzione 'Advanced Options'->Hostname. In alternativa è possibile modificare manualmente i file /etc/hosts e /etc/hostname. Una volta modificati è possibile richiamarne il contenuto con il comando $ sudo /etc/init.d/hostname.sh ===== webserver + router ===== * [[http://www.lucadentella.it/2014/11/12/raspberry-pi-come-access-point/]] * [[http://www.daveconroy.com/using-your-raspberry-pi-as-a-wireless-router-and-web-server/]] * [[https://seravo.fi/2014/create-wireless-access-point-hostapd]] ==== Webserver ==== sudo apt-get install apache2 sudo emacs /etc/apache2/apache2.conf ==== Router Wifi ==== Supponiamo di voler accedere al webserver tramite rete wifi. Ci serve un router per consentire il collegamento dei dispositivi alla nostra raspberry. A tale scopo installiamo hostapd. Il primo paso è l'installazione tramite apt-get $ sudo apt-get install hostapd Modifichiamo quindi le impostazioni di avvio del servizio aprendo con un editor il file /etc/hostapd/hostapd.conf e aggiungendo le righe # Il nome dell'interfaccia Wifi interface=wlan0 # Usiamo il driver nl80211 # driver=nl80211 # Il nome della rete ssid=aveng-sensor02 # Usiamo la banda a 2.4GHz hw_mode=g # Usiamo il canale 1 channel=1 # Accettiamo tutti gli indirizzi MAC macaddr_acl=0 # Usiamo l'autenticazione WPA auth_algs=1 # Usiamo WPA2 wpa=2 # Se rimosso il commento, la rete è nascosta # ignore_broadcast_ssid=0 # Usiamo chiavi pre-shared wpa_key_mgmt=WPA-PSK # Password wpa_passphrase=password # Usiamo AES, invece di TKIP rsn_pairwise=CCMP === RTL8188CUS === Nel caso usiamo una scheda con il chipset RTL8188CUS, dobbiamo installare una versione personalizzata di hostapd. Per compilarla ed installarla usiamo i comandi $ sudo apt-get install git build-essential fakeroot devscripts debhelper libnl-dev libssl-dev $ git clone https://github.com/jekader/hostapd-rtl.git $ cd hostapd-rtl $ bash build.sh $ sudo dpkg -i ../hostapd-rtl_2.4-4_armhf.deb Vedi anche [[https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=133428]]. === Test === Per avviare provvisoriamente il server usiamo il comando sudo hostapd -B /etc/hostapd/hostapd.conf In caso di problemi può essere necessario disabilitare l'hotplug dell'interfaccia wlan0, commentando la riga # allow-hotplug wlan0 nel file /etc/network/interfaces. Per rendere definitivo l'avvio apriamo il file /etc/default/hostapd e togliamo il commento sulla linea DAEMON_CONF="/etc/hostapd/hostapd.conf" Infine diamo il comando sudo update-rc.d hostapd defaults ==== DNS ==== Installiamo dnsmasq con il comando sudo apt-get install dnsmasq Creiamo il file /etc/dnsmasq.conf contenente ######### dns ######## # activate dnsmasq only on wlan0 interface=wlan0 # Never forward plain names (without a dot or domain part) domain-needed # Never forward addresses in the non-routed address spaces bogus-priv # dont read resolv.conf use the defined servers instead no-resolv server=8.8.8.8 server=8.8.4.4 # increase dns cache form 512 to 4096 cache-size=4096 ######### dhcp ########## # Add local-only domains here, queries in these domains are answered # from /etc/hosts or DHCP only local=/home/ # Set this (and domain: see below) if you want to have a domain # automatically added to simple names in a hosts-file. expand-hosts # adds my localdomain to each dhcp host domain=home # my private dhcp range + subnetmask + 14d lease time dhcp-range=10.10.0.25,10.10.0.50,255.255.255.0,14d # set route to my local network router dhcp-option=option:router,10.10.0.1 dhcp-option=252,"\n" ###### logging ############ # own logfile log-facility=/var/log/dnsmasq.log log-async # log dhcp infos log-dhcp # debugging dns #log-queries ==== Reindirizzamento IP ==== Per semplificarci la vita, prima dei successivi comandi, digitiamo sudo su Quindi attiviamo provvisoriamente il reindirizzamento con echo 1 > /proc/sys/net/ipv4/ip_forward Per fare in modo che la modifica sia definitiva apriamo /etc/sysctl.conf e attiviamo la riga net.ipv4.ip_forward=1 Con iptables impostiamo il reindirizzamento su eth0 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Salviamo le regole iptables nel file /etc/iptables.up.rules con i comandi iptables-save > /etc/iptables.up.rules Creiamo quindi lo script /etc/network/if-pre-up.d/iptables che ricaricherà le regole iptables #!/bin/sh # Questo script reimposta al riavvio del sistema le regole iptables salvate nel file /etc/iptables.up.rules iptables-restore < /etc/iptables.up.rules exit 0 Infine sistemiamo i permessi dello script con i comandi chown root:root /etc/network/if-pre-up.d/iptables chmod 755 /etc/network/if-pre-up.d/iptables ===== Titolo ===== Per approfondire: * [[http://computers.tutsplus.com/tutorials/building-a-wireless-sensor-network-in-your-home--cms-19745]] - Collegare arduino e raspberry wifi