Netzwerk/Registrar Server
Für die automatische sowie manuelle Fastd peer Anmeldung verwenden wir einen Fork des Hamburger FreiFunkFastdForm oder kurz FFFF. Der Service wurde angepasst um eine einfache Anmeldung zu erlauben, es wird nur eine Name und der Public-Key der Node benötigt um sich anzumelden. Die angemeldeten Nodes werden in Peer-Files für Fastd gespeichert welche per Rsync von den Fastd-Servern alle 5 Minuten runtergeladen werden.
Im ersten Abschnitt wird der Nodejs Service aufgesetzt und Nginx mit einem Vhost versehen welcher per Proxy-Pass die API-Calls an den Nodejs Service weiterleitet. Anschließend wird der Rsync Dienst aufgesetzt. Das Howto zielt auf die Nutzung von Ubuntu 12.04, aber dies kann natürlich auch einfach für andere Distributionen angepasst werden.
Nginx einrichten
Nginx installieren
apt-get install nginx
Nun wird ein Vhost für Nginx angelegt Datei: /etc/nginx/sites-available/ffregister-rheinufer.conf
server { listen [::]:80; server_name register.rheinufer.freifunk-rheinland.net; root /opt/ffregister/rheinufer/static; location = /api/node { proxy_redirect off; proxy_pass http://localhost:8080/api/node; } }
Vhost aktivieren
ln -s /etc/nginx/sites-available/ffregister-rheinufer.conf /etc/nginx/sites-enabled/ffregister-rheinufer.conf
Nginx Autostart aktivieren und Dienst starten
update-rc.d nginx defaults update-rc.d nginx enable /etc/init.d/nginx start
NodeJS Dienst aufsetzen
NodeJS & npm installieren
apt-get install nodejs npm
Ordner anlegen
mkdir -p /opt/fastd/peers/rheinufer mkdir -p /opt/ffregister
Gruppe & Benutzer anlegen
groupadd fastdservice useradd -G fastdservice -N -d /opt/fastd fastdservice
FFFF Git Ordner klonen
git clone https://github.com/FreifunkAdvanced/ffff.git /opt/ffregister/rheinufer
Ordnerrechte anpassen
chown -R fastdservice.fastdservice /opt/fastd/peers chown -R fastdservice.fastdservice /opt/ffregister/rheinufer chown -R www-data.www-data /opt/ffregister/rheinufer/static
Peers Ordner in /opt/ffregister/rheinufer/server.js anpassen
... var peersPath = "/opt/fastd/peers/rheinufer"; ...
Init script kopieren & executable bit setzen
cp /opt/ffregister/rheinufer/init-script/register-community /etc/init.d/register-rheinufer chmod +x /etc/init.d/register-rheinufer
Dienst aktivieren
update-rc.d register-rheinufer defaults update-rc.d register-rheinufer enable /etc/init.d/register-rheinufer start
Rsync einrichten
Rsync installieren
apt-get install rsync
Custom Shell für rsync anlegen Datei: /opt/fastd/rsyncd-shell
#!/bin/sh exec /usr/bin/rsync --server --daemon --config=/opt/fastd/rsync.conf .
Dateirechte setzen und executable Bit setzen
chown fastdservice.fastdservice /opt/fastd/rsyncd-shell chmod u+x /opt/fastd/rsyncd-shell
Rsync config anlegen Hier darauf achten das die Werte von uid und gid stimmen. Die UID und GID des angelegt Benutzers kann mittels "id fastdservice" ermittelt werden.
use chroot = no [fastdpeers] comment = Fastd peer pulling path = /opt/fastd/peers read only = true # if necessary set to UID and GID of fastdservice user # You can get the UID and GID by running: id fastdservice uid = 1001 gid = 1001
.ssh Ordner für SSH Public Keys anlegen
mkdir /opt/fastd/.ssh
SSH Public Keys & Settings der Fastdserver welche die peer files pullen eintragen Achtung! Keys & Settings sind jeweils auf einer Zeile, hier im Beispiel sind 2 Clients eingetragen Datei: /opt/fastd/.ssh/authorized_keys
command="/opt/fastd/rsyncd-shell",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvVzbLZh3OpEsx4TjYRcySz5n66bAFtsfKL2gHuTlm5bjgcfDAGDZbgoLiisYEldhnbuzPs9wzAqILv5B0muxqANY+1dovg748Fk4eTEAAg1PZi3PkDLN+hANdGTVprAm1xzr+ErX6xreRahjEn4mF8rRlXBuJ1PxTdgarnqDWz+bNHB+AUkqSyRZQGy95Qd0Hvw9cO0Ur1hZySGgip2GkntdYAKNQ63oCAcdIIMndJBeaRTIGKxUuG4T/tWd+YgRr1uYMQ4HSPSdtMGbTcLbo00sodhyCoGZisl20/boQ/hDOjTHL6Qza/RNJL/jKnQM76zDG50NkKSRT7uvmLTi1 fastd@rheinufer0 command="/opt/fastd/rsyncd-shell",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD2hTVaHxtxqakrHeM/6HHpDhvBJTDxrl4NBDxa/gqe+4d8/2Uqxp4BuZaq2C/9G1j0c6Gl4vzVWjBrHoSWI+/thJ0kFp6ft2B1Jkpb27rDgWD8RVSoGaZXqC53HYO30v2Z9BT6y7tPX/cGvDa0WX0jzj8WsYq2RsIXZO/3yg+r29RSjcNIQte51PzxkbjcU/8t6zlgokI/iXQf6zzZSPj1XgRxdy3FTpWsIxko6gnpJC+wxq+w9dvET9wUhJjybYnovZ7NdItLHjXdveuBC94YrpKyVXS9yTK+SkRjucNqYExvRsRuU2Of/tc+JSdZnAnXVN9KIFuyvms/GwW++sqD fastd@rheinufer1
Ordnerrechte anpassen
chown -R fastdservice.fastdservice /opt/fastd/.ssh
Weiter geht es in der Fastd_Server Setup-Anleitung