Toon posts:

[FBSD] pf en upnpd

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Na veel proberen met pf, rdr en nat was ik het zat (;)) en stuitte ik op GoT op een link naar The Linux UPnP internet gateway device, gelukkig geport naar FreeBSD.
Gestart met 'upnpd <internal if> <external if>', maar ik merk geen verschil met de webcamfunctie van MSN (6.2).

Apr 13 04:27:11 mango upnpd: AddPortMap: RemoteHost: (null) Prot: 6 ExtPort: 37912 Int: 10.0.0.170.4670
Apr 13 04:27:11 mango upnpd: DeletePortMap: Proto:TCP Port:37912
Apr 13 04:29:54 mango upnpd: AddPortMap: RemoteHost: (null) Prot: 6 ExtPort: 62249 Int: 10.0.0.170.9049
Apr 13 04:34:06 mango upnpd: AddPortMap: RemoteHost: (null) Prot: 6 ExtPort: 1805 Int: 10.0.0.170.1705
Apr 13 04:34:51 mango upnpd: DeletePortMap: Proto:TCP Port:1805
Apr 13 04:35:34 mango upnpd: AddPortMap: RemoteHost: (null) Prot: 6 ExtPort: 1036 Int: 10.0.0.170.1710
Apr 13 04:36:19 mango upnpd: DeletePortMap: Proto:TCP Port:1036

Het valt mij op de de gemaakt portmaps heel snel weer verdwijnen. Heeft iemand hier een verklaring voor? Ze worden schijnbaar niet gebruikt, dus ik vermoed dat het ergens aan mijn firewall (pf) ligt.
Ik heb het al geprobeerd met en zonder rdr van de MSN-poorten, maar dat veranderde niets.

Wel geeft MSN nu aan dat ik met het internet verbonden ben 'through a UPnP symmetric NAT'. Dat is allemaal heel leuk en aardig, maar echt veel helpen doet het tot nog toe niet. Anyone a clue? :)

Verwijderd

Topicstarter
Intussen heb ik uitgevonden dat de geporte versie van linux-igd en upnpd alleen met ipnat werkt... :'(
Toen vond ik via Google een Japanse site waar het ging over PF en FreeBSD. Kwamen wat patch-dingen langs, maar niet te volgen wat ze zeiden. :9 Wel een paar patches geprobeerd, maar helaas, dat werkte niet. :(
Toen zag ik daar een link (http://www.tateoka.org/%7Etate/doc/openbsd-upnp.html) staan naar een Engelstalige site waarop wordt uitgelegd hoe je UPnP aan de praat krijgt op OpenBSD, met PF :) Dat gaat door de Linux-versies te patchen voor NetBSD, en dan nog eens voor OpenBSD. Alleen, helaas, dat compiled niet op FreeBSD...


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(jochem@mango)[~/upnp/upnpsdk-1.0.4]$ gmake MAKE=gmake
if [ ! -d bin ]; then mkdir bin; fi
if [ ! -d src/lib ]; then mkdir src/lib; fi
gmake -C src
gmake[1]: Entering directory `/usr/home/jochem/upnp/upnpsdk-1.0.4/src'
upnpdom
gmake[2]: Entering directory `/usr/home/jochem/upnp/upnpsdk-1.0.4/src/upnpdom'
g++ -fpic -Wall -D_REENTRANT -D_POSIX_THREAD_SYSCALL_SOFT -O2 -DNO_DEBUG -DINCLUDE_CLIENT_APIS -DINCLUDE_DEVICE_APIS -c -I ../../inc/upnpdom -I ../inc -I /usr/pkg/include domCif.cpp
In file included from /usr/include/c++/3.4/backward/iostream.h:31,
                 from domCif.cpp:40:
/usr/include/c++/3.4/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
In file included from domCif.cpp:41:
/usr/include/malloc.h:3:2: #error "<malloc.h> has been replaced by <stdlib.h>"
gmake[2]: *** [domCif.o] Error 1
gmake[2]: Leaving directory `/usr/home/jochem/upnp/upnpsdk-1.0.4/src/upnpdom'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/usr/home/jochem/upnp/upnpsdk-1.0.4/src'
gmake: *** [upnp] Error 2
(jochem@mango)[~/upnp/upnpsdk-1.0.4]$

Toen heb ik een de gepatche file pmlist.cpp van linux-igd gepakt, en die met de portsversie meegecompiled. En dat doet al heel veel meer.

Apr 14 21:52:25 mango upnpd: echo rdr pass on fxp0 proto TCP from any to 82.161.86.164 port 62249 '->' 10.0.0.170 port 9049 | /sbin/pfctl -a upnpd/fxp0-TCP-82.161.86.164-62249-10.0.0.170-9049 -f -
Apr 14 21:52:25 mango upnpd: AddPortMap: RemoteHost: (null) Prot: 6 ExtPort: 62249 Int: 10.0.0.170.9049

En er volgt pas een DeletePortMap als ik de webcam verbinding verbreek.

Apr 14 22:09:03 mango upnpd: DeletePortMap: Proto:TCP Port:62249

Maar soepel beeld heb ik nog steeds niet.Ook valt me op dat er bij de AddPortMap null staat achter RemoteHost. Dat lijkt me niet helemaal ok. En ik weet nog niet hoe ik de anchor-rules uitlees. :)

Ook las ik dit:
% sudo /sbin/route add -net 239.0.0.0 -netmask 255.0.0.0 <int addr>

En dit:
The upnpd uses multicast for advertisement, so you should add multicast_host line to /etc/rc.conf.local:

multicast_host="ne3"

Die route add heb ik geprobeerd met m'n interne ip, dat maakte weinig uit.
In FreeBSD bestaat /etc/rc.conf.local niet, en ik las dat multicast in de kernel aangezet moet worden. Zou dat multicast echt nodig zijn, of OpenBSD specifiek?