STUN-Server einrichten
Das STUN-Protokoll definiert folgendes (http://www.ietf.org/rfc/rfc3489.txt):
- STUN ermöglicht einem Gerät dessen öffentliche IP und den Typ von NAT-Gerät hinter dem es hängt herauszufinden
- STUN arbeitet auf TCP und UDP Port 3478
-
STUN ist inzwischen recht verbreitet und wird von vielen VOIP-Geräten unterstützt
- STUN kann DNS SRV-Einträge verwenden um STUN server einer bestimmten Domain herauszufinden. Der Servicename ist „_stun._udp or _stun._tcp“
1. Download des Sourcecodes nach /usr/src von:
http://sourceforge.net/projects/stun/
2. Entpacken und Kompilieren der Sourcen:
cd /usr/src
tar xvfz stund_0.96_Aug13.tgz
cd stund
make
mkdir /usr/local/stund
cp server /usr/local/stund
cp client /usr/local/stund
3. STUN-Server testweise starten:
cd /usr/local/stund
./server -v -h <main IP> -a <secondary IP>
4. STUN-Server testen (neues Konsolenfenster aufmachen):
cd /usr/local/stund
./client -v <main IP>
5. Wenn der STUN-Server antwortet ist alles OK
6. Hier noch ein Redhat kompatibles init-Script für den Server
#!/bin/sh
#
# Startup/shutdown script for the STUN-Server
#
# Linux chkconfig stuff:
#
# chkconfig: 35 90 10
# description: Startup/shutdown script for the STUN-Server
#
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi
DAEMON=/usr/local/stund/server
IP1="86.109.254.36"
IP2="86.109.254.37"
prog=stund
start () {
echo -n $"Starting $prog: "
# start daemon
daemon $DAEMON -b -h $IP1 -a $IP2
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/stund
return $RETVAL
}
stop () {
# stop daemon
echo -n $"Stopping $prog: "
killproc $DAEMON
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/stund
}
restart() {
stop
start
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -f /var/lock/subsys/stund ] && restart || :
;;
status)
status $DAEMON
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|status}"
exit 1
esac
exit $RETVAL