Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
fastd [05.12.2015 22:02] – angelegt havelock | fastd [16.07.2017 19:32] (aktuell) – havelock | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== fastd ====== | ====== fastd ====== | ||
- | In Bearbeitung! | + | TODO In Bearbeitung! |
- | Dokumentation: | + | Dokumentation: |
+ | |||
+ | Ab Debian Stretch (9) ist fastd und die dazugehörigen Abhängigkeiten vorhanden. | ||
+ | Es sind also keine externen Repositories mehr notwendig. | ||
+ | |||
+ | Bei der manuellen Übersetzung von fastd müssen das Init-Script und die manpages | ||
+ | ebenfalls manuell zur Verfügung gestellt werden. | ||
Vorarbeiten | Vorarbeiten | ||
+ | < | ||
+ | aptitude install build-essential pkg-config cmake doxygen bison libsodium-dev libjson-c-dev libcap-dev | ||
+ | </ | ||
+ | |||
+ | Voraussetzung ist [[libuecc]], | ||
+ | |||
+ | Compilieren von fastd | ||
+ | < | ||
+ | cd / | ||
+ | git clone git:// | ||
+ | cd fastd | ||
+ | git checkout v18 | ||
+ | cd .. | ||
+ | mkdir fastd-build | ||
+ | cd fastd-build | ||
+ | cmake ../fastd | ||
+ | make | ||
+ | make install | ||
+ | </ | ||
+ | |||
+ | <file conf / | ||
+ | # This is the configuration file for / | ||
+ | |||
+ | # | ||
+ | # Start only these VPNs automatically via init script. | ||
+ | # Allowed values are " | ||
+ | # names of the VPNs. If empty, " | ||
+ | # | ||
+ | AUTOSTART=" | ||
+ | </ | ||
+ | |||
+ | Hinweis: Wenn fastd selbst kompiliert wurde, ist die Installation normalerweise | ||
+ | nach ''/ | ||
+ | angepaßt werden ('' | ||
+ | |||
+ | Hinweis: Das Script ist auch Bestandteil der [[FFPI-Tools]]. | ||
+ | |||
+ | ++++ Init-Script für fastd | | ||
+ | <file bash / | ||
+ | #!/bin/sh -e | ||
+ | |||
+ | ### BEGIN INIT INFO | ||
+ | # Provides: | ||
+ | # Required-Start: | ||
+ | # Required-Stop: | ||
+ | # Should-Start: | ||
+ | # Should-Stop: | ||
+ | # Default-Start: | ||
+ | # Default-Stop: | ||
+ | # Short-Description: | ||
+ | # Description: | ||
+ | # in / | ||
+ | ### END INIT INFO | ||
+ | |||
+ | # Derived from the OpenVPN init script | ||
+ | # Original version by Robert Leslie | ||
+ | # < | ||
+ | # Modified for openvpn by Alberto Gonzalez Iniesta < | ||
+ | # Modified for restarting / starting / stopping single tunnels by Richard Mueller < | ||
+ | # Modified for fastd by Nils Schneider < | ||
+ | # Beautified by Thomas Hooge < | ||
+ | |||
+ | . / | ||
+ | |||
+ | test $DEBIAN_SCRIPT_DEBUG && set -v -x | ||
+ | |||
+ | DESC=" | ||
+ | NAME=fastd | ||
+ | DAEMON=/ | ||
+ | CONFIG_DIR=/ | ||
+ | SCRIPTNAME=/ | ||
+ | |||
+ | # Exit if the package is not installed | ||
+ | [ -x " | ||
+ | |||
+ | # Exit if the configuration directory is not existent | ||
+ | [ -d $CONFIG_DIR ] || exit 0 | ||
+ | |||
+ | # Source defaults file; edit that file to configure this script. | ||
+ | AUTOSTART=" | ||
+ | if test -e / | ||
+ | . / | ||
+ | fi | ||
+ | |||
+ | if [ ! -d / | ||
+ | mkdir / | ||
+ | chown fastd. / | ||
+ | fi | ||
+ | |||
+ | start_vpn () { | ||
+ | STATUS=0 | ||
+ | start-stop-daemon --start --quiet --oknodo \ | ||
+ | --pidfile / | ||
+ | --make-pidfile \ | ||
+ | --background \ | ||
+ | --exec $DAEMON -- \ | ||
+ | --syslog-level info \ | ||
+ | --config $CONFIG_DIR/ | ||
+ | || STATUS=1 | ||
+ | } | ||
+ | |||
+ | stop_vpn () { | ||
+ | kill `cat $PIDFILE` || true | ||
+ | rm -f $PIDFILE | ||
+ | log_end_msg 0 | ||
+ | } | ||
+ | |||
+ | case " | ||
+ | start) | ||
+ | log_action_begin_msg " | ||
- | | + | # autostart fastds |
+ | if test -z " | ||
+ | # check if automatic startup is disabled by AUTOSTART=none | ||
+ | if test " | ||
+ | log_warning_msg " | ||
+ | exit 0 | ||
+ | fi | ||
+ | if test -z " | ||
+ | # all fastds shall be started automatically | ||
+ | for CONFIG in `cd $CONFIG_DIR; | ||
+ | INSTANCE=${CONFIG%%/ | ||
+ | log_daemon_msg " | ||
+ | start_vpn | ||
+ | done | ||
+ | else | ||
+ | # start only specified fastds | ||
+ | for INSTANCE in $AUTOSTART ; do | ||
+ | if test -e $CONFIG_DIR/ | ||
+ | log_daemon_msg " | ||
+ | start_vpn | ||
+ | else | ||
+ | log_failure_msg " | ||
+ | STATUS=1 | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | #start fastds from command line | ||
+ | else | ||
+ | while shift ; do | ||
+ | [ -z " | ||
+ | INSTANCE=$1 | ||
+ | if test -e $CONFIG_DIR/ | ||
+ | log_daemon_msg " | ||
+ | start_vpn | ||
+ | else | ||
+ | log_failure_msg " | ||
+ | STATUS=1 | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | log_end_msg ${STATUS: | ||
+ | ;; | ||
+ | stop) | ||
+ | log_action_begin_msg " | ||
+ | if test -z " | ||
+ | PIDFILE= | ||
+ | for PIDFILE in `ls / | ||
+ | INSTANCE=`echo $PIDFILE | cut -c16-` | ||
+ | INSTANCE=${INSTANCE%%.pid} | ||
+ | log_daemon_msg " | ||
+ | stop_vpn | ||
+ | done | ||
+ | if test -z " | ||
+ | log_warning_msg " | ||
+ | fi | ||
+ | else | ||
+ | while shift ; do | ||
+ | [ -z " | ||
+ | if test -e / | ||
+ | log_daemon_msg " | ||
+ | PIDFILE=`ls / | ||
+ | INSTANCE=`echo $PIDFILE | cut -c16-` | ||
+ | INSTANCE=${INSTANCE%%.pid} | ||
+ | stop_vpn | ||
+ | else | ||
+ | log_failure_msg " | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | ;; | ||
+ | restart) | ||
+ | shift | ||
+ | $0 stop ${@} | ||
+ | sleep 1 | ||
+ | $0 start ${@} | ||
+ | ;; | ||
+ | status) | ||
+ | GLOBAL_STATUS=0 | ||
+ | if test -z " | ||
+ | # We want status for all defined fastd. | ||
+ | # Returns success if all autostarted fastds are defined and running | ||
+ | if test " | ||
+ | # Consider it a failure if AUTOSTART=none | ||
+ | log_warning_msg "No fastds autostarted" | ||
+ | GLOBAL_STATUS=1 | ||
+ | else | ||
+ | if ! test -z " | ||
+ | # Consider it a failure if one of the autostarted fastd is not defined | ||
+ | for VPN in $AUTOSTART ; do | ||
+ | if ! test -f $CONFIG_DIR/ | ||
+ | log_warning_msg "fastd ' | ||
+ | GLOBAL_STATUS=1 | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | fi | ||
+ | for CONFIG in `cd $CONFIG_DIR; | ||
+ | INSTANCE=${CONFIG%%/ | ||
+ | # Is it an autostarted fastd? | ||
+ | if test -z " | ||
+ | AUTOVPN=1 | ||
+ | else | ||
+ | if test " | ||
+ | AUTOVPN=0 | ||
+ | else | ||
+ | AUTOVPN=0 | ||
+ | for VPN in $AUTOSTART; do | ||
+ | if test " | ||
+ | AUTOVPN=1 | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | fi | ||
+ | if test " | ||
+ | # If it is autostarted, | ||
+ | status_of_proc -p / | ||
+ | else | ||
+ | status_of_proc -p / | ||
+ | fi | ||
+ | done | ||
+ | else | ||
+ | # We just want status for specified fastd. | ||
+ | # Returns success if all specified fastds are defined and running | ||
+ | while shift ; do | ||
+ | [ -z " | ||
+ | INSTANCE=$1 | ||
+ | if test -e $CONFIG_DIR/ | ||
+ | # Config exists | ||
+ | status_of_proc | ||
+ | else | ||
+ | # Config does not exist | ||
+ | log_warning_msg "$NAME ' | ||
+ | GLOBAL_STATUS=1 | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | exit $GLOBAL_STATUS | ||
+ | ;; | ||
+ | *) | ||
+ | echo " | ||
+ | exit 1 | ||
+ | ;; | ||
+ | esac | ||
+ | exit 0 | ||
+ | </ | ||
+ | ++++ |