oidentd für ds-mod

knox

Mitglied
Mitglied seit
20 Mai 2006
Beiträge
577
Punkte für Reaktionen
0
Punkte
0
hallo,

da ich in den diversen feature-request und -wunschlisten zur fritzbox bisher eines meiner lieblingsfeatures vermisse, habe ich mich selber ans crosscompilen gewagt.

es handelt sich um oidentd, einen "Configurable IDENT server that supports NAT/IP masq". weitere infos hier.

was mich besonders daran interessiert ist eben die masquerading funktion, mit der es möglich ist, eingehende ident anfragen dem entsprechenden (nat)client zuzuordnen. ein feature, das insbesondere unter den irc fans hinter nat routern eine besondere beliebheit genießt. ;)

leider funktioniert das ganze auf der fritzbox nicht so wie gewünscht: schon beim configure fällt auf, das vergeblich nach ip_nat.h gesucht wird. nichts desto trozt steht (angeblich) die masquerading funktion zur verfügung - zumindest der dazu gehörige parameter wird in der hilfe angezeigt.
Code:
# ./oidentd --help
oidentd 2.0.8
Written by Ryan McCabe <[email protected]>
http://dev.ojnk.net

Usage: oidentd [options]
-a or --address <address>    Bind to <address>
-c or --charset <charset>    Specify an alternate charset
-C or --config <config file> Use the specifed file instead of /etc/oidentd.conf
-d or --debug                Enable debugging
-e or --error                Return "UNKNOWN-ERROR" for all errors
-f or --forward [<port>]     Forward requests for masqueraded hosts to the host on port <port>
-m or --masquerade           Enable support for IP masquerading
-P or --proxy <host>         <host> acts as a proxy, forwarding connections to us
-g or --group <group>        Run with specified group or GID
-i or --foreground           Don't run as a daemon
-I or --stdio                Service a single client connected to stdin/stdout then exit (use when oidentd is running from inetd/xinetd/etc).
-l or --limit <number>       Limit the number of open connections to the specified number
-o or --other [<os>]         Return <os> instead of the operating system.  Uses "OTHER" if no argument is given.
-p or --port <port>          Listen for connections on specified port
-q or --quiet                Suppress normal logging
-S or --nosyslog             Write messages to stderr not syslog
-t or --timeout <seconds>    Wait for <seconds> before closing connection
-u or --user <user>          Run as specified user or UID
-v or --version              Display version information and exit
-r or --reply <string>       If a query fails, pretend it succeeded, returning <string>
-h or --help                 This help message

nur leider passiert nicht das gewünschte. offensichtlich "verpasst" der oidentd, daß es sich um eine masquierte verbindung handelt, denn der externe identd request wird nicht an den initierenden client geforwared.
Code:
# ./oidentd -m -f -i
user "nobody" does not exist. Using 65534 as default UID
Groups "nobody" and "nogroup" do not exist. Using 65534 as default GID
Connection from irc.belwue.de (129.143.67.242):52319
[irc.belwue.de] 61256 , 6667 : ERROR : NO-USER

auf meiner "normalen" linux büchse funktioniert das allerdings ganz prima, so daß es mit den gegebenheiten der fritzbox zu tun haben muss. beim versuch, die netzwerkinterne der fritzbox aufzudröseln, bin ich leider schnell an meine grenzen gestoßen (dsld - freund oder feind?).

es wäre super, wenn ein paar schlaue leute mit mir laien darüber diskutieren würden :)
 

Anhänge

  • oidentd-2.0.8-mipsel.gz
    20.8 KB · Aufrufe: 13
hi knox!

schon irgendwas neues bzgl. ident?
ich fänds ja sehr sinnvoll, das auf der box unterzubringen!

gruß,
whoopi
 
Nur so aus Neugier: Was bringt einem ein ident auf der Box? Geht es hier um das ident Protokoll auf Port 113 oder um etwas anderes?
 
RalfFriedl schrieb:
Was bringt einem ein ident auf der Box? Geht es hier um das ident Protokoll auf Port 113 oder um etwas anderes?

Ja, um letzteres gehts es! Wenn man z.Bsp. einen IRC-Bouncer auf der Box betreibt, ist so etwas durchaus von Nutzen. Und auch sonst ist das hinter einem NAT-Router AFAIK ziemlich fummelig, das zum Rennen zu kriegen. Dann lieber gleich en fake-reply schicken...

gruß,
whoopi
 
Wer verwendet denn noch das ident-Protokoll, wo doch bekannt ist, daß das Ergebnis der Abfrage unzuverlässig ist? Man fragt den Rechner, der die Verbindung aufbaut, wie sich der Benutzer nennt.

Ich kann ja nachvollziehen, wie man ursprünglich auf die Idee kam (Multi-User Server, die als vertrauenswürdig angesehen wurden), aber heutzutage?
 
Also ein ganz besonderer Vorteil von oidentd gegenüber einem normalen identd ist die masquerading Funktion: wenn ein Client hinter der Fritz!Box z.B. eine Verbindung zu einem IRC Server aufbaut und dann vom IRC Server eine ident Anfrage zurück kommt, so ist oidentd in der Lage, diese Anfrage an den ensprechenden Client Rechner im LAN weiterzuleiten, so daß dann die ident Anfrage auch tatsächlich von dem Client beantwortet werden kann, der die IRC Verbindung aufgebaut hat.
Gerade in einem Netzwerk mit mehreren Benutzern ist das eine wirklich schicke Sache.

Leider funktioniert das ganze auf der FritzBox nicht und wird es wohl auch nie. Hintergrund ist, dass das stattfindende Masquerading der ausgehenden Verbindung nicht vom Kernel selbst, sondern vom dsld erledigt wird und auf diese Weise das oidentd davon niemals etwas mitbekommt.

(Wieder so eine typische Einschränkung, die dadurch verursacht wird, das irgendwelche propietären Binärklumpen die wirklich spannenden Sachen machen und das zugrunde liegende Linux allenfalls als billige Basis für solchen Unfug missbraucht wird.
Eine Politik, die wohl den entscheidenden Anteil daran hat, dass meine FritzBox nur noch als ISDN-2-VoIP Gateway genutzt wird und ich alles andere mit OpenWrt mache.)
 
hi knox.

ok, leuchtet ein. wie wärs denn aber mit einer fake-antwort? der oident kann sowas...
gut, aber das bringts dann natürlich auch nur, wenn wirklich nur maximal ein user dahinter sitzt...

cya,
whoopi
 
Ein echtes Mittel gegen Mißbrauch ist das wohl eher nicht. Aber es erschwert es dennoch immerhin ein bißchen, schnell seinen nick zu wechseln, usw....
 
Hi,

hätte dazu auch eine Frage:
habe auf der Fritzbox bip als IRC-Bouncer laufen und diesen mit oidentd-Support kompiliert.
Nun läuft der oidentd ebenfalls dort. Den Port 113 habe ich auf meine virtuelle lokale IP 192.168.3.253 weitergeleitet und Spoofing-Support für den User root aktiviert. bip läuft ja unter dem User root.

Die Ident-Requests werden leider nun mit "NO-USER" beantwortet.
Zudem ist mir aufgefallen, dass oidentd die Datei /var/mod/root/.oidentd.conf nicht liest.

Ich dachte eigentlich, dass die Verbindungen, die von Programmen auf der Box aufgebaut werden, nicht maskiert sind. Stimmt das so?

Beste Grüße,
Whoopie
 
Statische Binary für aktuelle Boxen
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.