Netzwerk/Registrar Server

Aus Freifunk Rheinland e.V.
Wechseln zu: Navigation, Suche

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/ffrl/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";
...

Notwendige Abhängigkeiten für Nodejs installieren

cd /opt/ffregister/rheinufer/
npm install express

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 +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 für die Fastdserver 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