Strumenti Utente



raspberry:raspberry_webserver

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

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


raspberry/raspberry_webserver.txt · Ultima modifica: 2016/06/26 10:46 da mickele

Facebook Twitter Google+ Digg Reddit LinkedIn StumbleUpon Email