Nachdem im HOOC ManagementPortal eine Anlage erstellt wurde, erfolgt die Aktivierung gemäss folgenden Punkten:
mv
in app_embeddedgateway umbennen.chmod +x
das app_embeddedgateway ausführbar machen.hwid
starten.Der Hardware-Identifikations-Code (hwid) ist ein Code zur eindeutigen Erkennung der jeweiligen Hardware. Dadurch wird sichergestellt, dass ein Lizenzschlüssel einzig von der entsprechenden Hardware verwendet werden kann. Erst nach erfolgreicher Bestätigung des hwid kann das HOOC Connect Binary mit den VPN-Zugangsdaten der Anlage heruntergeladen werden.
mv
in app_embeddedgateway umbenennen.chmod +x
das app_embeddedgateway ausführbar machen.Nun sollte der Console Output INFO[0000] Successfully connected to VPN...
ersichtlich sein. Zudem wird der Status
der VPN-Verbindung auch im HOOC ManagementPortal angezeigt.
Das HOOC Connect Binary erstellt beim Starten das Netzwerkinterface hooc-tap0. Falls nun dieselbe Funktionalität wie beispielsweise beim HOOC Connect H gewünscht ist, muss eine Brücke zwischen dem physikalischen Netzwerkinterface, beispielsweise eth0, und dem hooc-tap0 konfiguriert werden. Bei den untenstehenden Konfigurationsbeispielen bezieht die Brücke per DHCP eine IP-Adresse.
Falls iptables
verwendet werden, stellt der Befehl iptables -A FORWARD -j ACCEPT -i br-hooc -o br-hooc
sicher, dass die Brücke
Datenpakete korrekt weiterleitet. Falls Docker verwendet wird, muss dieser Befehl zwingend ausgeführt werden.
Die nicht-persistente Konfiguration ist nach einem Neustart des Betriebssystems nicht mehr vorhanden. Es ist sicherzustellen,
dass die Pakete net-tools
und bridge-utils
installiert sind. Die untenstehenden Befehle sind als root-user auszuführen.
# Create the bridge br-hooc
brctl addbr br-hooc
# Add the physical eth0 to the br-hooc bridge
brctl addif br-hooc eth0
# Remove IP eth0
ifconfig eth0 0.0.0.0
# Bring eth0 up
ifconfig eth0 up
# Obtain IP from local DHCP-Server
dhclient br-hooc
# Start the embedded gateway as root user with the bridge parameter
./app_embeddedgateway --vpn.linux.bridge=br-hooc
Die Netzwerkbrücke sowie das physikalische Netzwerkinterface sind in der entsprechenden Netzwerkkonfigurationsdatei anzupassen:
iface eth0 inet manual
iface eth0 inet6 manual
auto br-hooc
iface br-hooc inet dhcp
bridge_ports eth0
Falls dhcpcd
verwendet wird, sollten in der Datei /etc/dhcpcd.conf
folgende Anpassungen gemacht werden:
denyinterfaces eth0
interface br-hooc
Mittels Neustart des Geräts oder der Netzwerkschnittstellen wird dann die persistente Konfiguration übernommen.
Die obenstehende Konfiguration ist nur ein Beispiel für eine mögliche Konfiguration. Diese muss je nach Betriebssystem und Version individuell angepasst werden.
Es wird ein OS-spezifisches init.d-Skript benötigt, um die Binärdatei getrennt auszuführen.
#! /bin/sh
### BEGIN INIT INFO
# Provides: app_embeddedgateway
# Required-Start: networking
# Required-Stop: networking
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: This is app_embeddedgateway daemon
# Description: This is app_embeddedgateway daemon
### END INIT INFO
# Using the lsb functions to perform the operations.
. /lib/lsb/init-functions
# Process name ( For display )
NAME=app_embeddedgateway
# Daemon name, where is the actual executable
DAEMON=/usr/local/bin/app_embeddedgateway
# pid file for the daemon
PIDFILE=/var/run/app_embeddedgateway.pid
# log file for the daemon
LOGFILE=/var/log/app_embeddedgateway.log
# If the daemon is not there, then exit.
test -x $DAEMON || exit 5
case $1 in
start)
# Checked the PID file exists and check the actual status of process
if [ -e $PIDFILE ]; then
status_of_proc -p $PIDFILE $DAEMON "$NAME process" && status="0" || status="$?"
# If the status is SUCCESS then don't need to start again.
if [ $status = "0" ]; then
exit # Exit
fi
fi
# Start the daemon.
log_daemon_msg "Starting the process" "$NAME"
# Start the daemon with the help of start-stop-daemon
# Log the message appropriately
if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- --log.file $LOGFILE; then
log_end_msg 0
else
log_end_msg 1
fi
;;
stop)
# Stop the daemon.
if [ -e $PIDFILE ]; then
status_of_proc -p $PIDFILE $DAEMON "Stoppping the $NAME process" && status="0" || status="$?"
if [ "$status" = 0 ]; then
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
/bin/rm -rf $PIDFILE
fi
else
log_daemon_msg "$NAME process is not running"
log_end_msg 0
fi
;;
restart)
# Restart the daemon.
$0 stop && sleep 2 && $0 start
;;
status)
# Check the status of the process.
if [ -e $PIDFILE ]; then
status_of_proc -p $PIDFILE $DAEMON "$NAME process" && exit 0 || exit $?
else
log_daemon_msg "$NAME Process is not running"
log_end_msg 0
fi
;;
*)
# For invalid arguments, print the usage message.
echo "Usage: $0 {start|stop|restart|status}"
exit 2
;;
esac
Wenn das Schreiben einer Logdatei aktiviert ist, wird empfohlen, die Logrotation einzurichten.
/var/log/app_embeddedgateway.log {
rotate 7
daily
missingok
compress
sharedscripts
postrotate
touch /var/log/app_embeddedgateway.log
endscript
}
Betreffend Netzwerkschnittstelle gilt es, Folgendes zu beachten:
--vpn.linux.bridge.bridge
übergeben werden.NET_ADMIN
- und NET_BIND_SERVICE
-Rechte. Entweder wird das Binary privilegiert
ausgeführt oder es werden die Rechte mittels setcap
erteilt. setcap cap_net_admin,cap_net_bind_service=+ep ./app_embeddedgateway