ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

siproxd

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Möchte man mehrere SIP-Anwendungen (egal ob Ekiga, x-lite oder Hardware SIP-Telefone) hinter einem Router betreiben, so kann es vorkommen, dass Netzwerk-Ports speziell weitergeleitet werden müssen, da sonst die Verbindungen nicht so funktionieren, wie sie sollten.

Um dies zu vermeiden, kann man den speziellen Proxy-Server siproxd {en} (SIP proxy/masquerading daemon) nutzen. Leider ist die aktuellste Version des Programmes nicht in den Ubuntu-Quellen verfügbar. Diese lässt sich jedoch bei Bedarf sehr leicht kompilieren, da sie nur wenige Abhängigkeiten benötigt.

Im Normalfall sollte auch die Version aus den offiziellen Ubuntuquellen ihre Aufgabe wunderbar erfüllen.

Hinweis:

sipproxyd nutzt nur was, wenn der Proxy auf dem Gateway ins Internet installiert ist!

Installation aus Paketquellen

Sipproxy ist in den Paketquellen enthalten. Es muss das Paket

  • siproxd (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install siproxd 

sudo aptitude install siproxd 

installiert werden [1] und anschließend in der Konfigurationsdatei /etc/default/siproxd der Proxy aktiviert werden. Dies geschieht mit einem Editor mit Root-Rechten [4]. In der einzigen Zeile der Datei

ENABLED=1

muss aus der 0 eine 1 gemacht werden. Anschließend kann der Dienst über den Befehl

sudo /etc/init.d/siproxd start 

sofort gestartet und benutzt werden. Mehr zum Thema Dienste kann im Artikel Dienste nachgelesen werden.

Benutzung

Um die Konfiguration von siproxd an die Gegebenheiten anzupassen, muss nun die /etc/siproxd.conf editiert werden [4] (Root-Rechte erforderlich).

Netzwerkkonfiguration

Zuerst muss die Netzwerkkonfiguration angepasst werden. Falls siproxd auf einem Rechner läuft, der gleichzeitig als Router fungiert, so kann direkt die externe und die interne Netzwerkschnittstelle angegeben werden. Also zum Beispiel:

# The interface names of INBOUND and OUTBOUND interface.
if_inbound  = eth0
if_outbound = ppp0

Sollte siproxd auf einem Rechner hinter einem Router laufen, so definiert man die Netzwerkschnittstelle als Ein- und Ausgang und trägt zusätzlich die externe IP bzw. die Adresse eines DynDNS Dienstes ein.

# The interface names of INBOUND and OUTBOUND interface.
if_inbound  = eth0
if_outbound = eth0
host_outbound = rechnername.dnydns.org  ## bzw. feste externe IP

Zugangsrechte

Im nächsten Schritt kann festgelegt werden, wer mit dem siproxd Kontakt aufnehmen darf. Eigentlich reicht es hier, die Option hosts_allow_reg zu setzen. Hier sollten die internen IPs erlaubt werden. Also zum Beispiel:

# Access control.
hosts_allow_reg = 192.168.0.1/24
#hosts_allow_sip = 123.45.0.0/16,123.46.0.0/16
#hosts_deny_sip  = 10.0.0.0/8,11.0.0.0/8

Als Hintergrundprozess starten

Für den ersten Start ist es praktisch siproxd so einzurichten, dass er nicht im Hintergrund startet. So kann man leicht erkennen, dass der Dienst sein Werk korrekt verrichtet und die Clients sich auch anmelden. Daher trägt man

# Shall we daemonize?
daemonize = 0

ein. Zusätzlich kann man auch festlegen, unter welchen Benutzerrechten der Dienst laufen soll. Die Voreinstellung nobody ist jedoch schon sinnvoll gewählt und kann so belassen werden.

# Secure Enviroment settings:
user = nobody

Erster Test

Um die erstellte Konfiguration zu testen, ist es ratsam, siproxd von Hand mit dem Befehl

siproxd -d -1 2 

zu starten. Anschließend konfiguriert (s.u.) und startet man einen SIP-Client, der den siproxd anspricht. Erscheinen Meldungen wie

---BUFFER DUMP follows---
  52 45 47 49 53 54 45 52 20 73 69 70 3a 73 69 70 REGISTER sip:sip
  67 61 74 65 2e 64 65 20 53 49 50 2f 32 2e 30 0d gate.de SIP/2.0.
  0a 43 53 65 71 3a 20 32 20 52 45 47 49 53 54 45 .CSeq: 2 REGISTE
  52 0d 0a 56 69 61 3a 20 53 49 50 2f 32 2e 30 2f R..Via: SIP/2.0/
  ...

so ist der Server korrekt konfiguriert. Man sollte jetzt auch schon Gespräche über den SIP-Proxy-Dienst führen können.

Automatischer Start

Nach diesem ersten Test sollte man siproxd wieder so konfigurieren, dass es im Hintergrund startet. Dazu in der /etc/siproxd.conf wieder

daemonize = 1

eintragen. Danach kann man den Befehl

siproxd 

beispielsweise in die rc.local eintragen, so dass der Proxy-Server automatisch startet.

Konfiguration der Clients

SIP-Client Programme oder Hardware muss gesagt werden, den SIP-Proxy-Dienst zu nutzen. Am Beispiel Ekiga wird erklärt, wie dies einzurichten ist. Andere Anwendungen müssen ähnlich konfiguriert werden.

Nach dem Start von Ekiga geht man in die Einstellungen unter

  • "Bearbeiten -> Einstellungen"

und deaktiviert in den "Netzwerk-Einstellungen" NAT und den STUN-Server. Anschließend trägt man die interne IP des siproxd-Rechners in den "SIP-Einstellungen" als "Ausgangs-Proxy" ein.

ubuntuusers.local › Wikisiproxd