[INFO] IRC-Server auf FB7170

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
8,014
Punkte für Reaktionen
28
Punkte
48
Wenn jemand Interesse an einem (standalone) IRC-Server auf der FritzBox hat, der ngircd lässt sich ganz einfach mit der toolchain aus Freetz, für die Box kompilieren:
Code:
 $ ./configure --build=i386-linux-gnu --target=mipsel-linux --host=mipsel-linux --with-syslog --without-zlib

Code:
/var/tmp/flash/mod # ./ngircd --version
ngircd 14.1-SYSLOG+IRCPLUS-mipsel/unknown/linux-gnu
Copyright (c)2001-2008 Alexander Barton (<[email protected]>) and Contributors.
Homepage: <http://ngircd.barton.de/>

This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Jul 25 01:45:27 fritz local5.notice ngircd[1746]: ngircd 14.1-SYSLOG+IRCPLUS-mipsel/unknown/linux-gnu started.
Jul 25 01:45:27 fritz local5.info ngircd[1746]: Activating: passive-mode.
Jul 25 01:45:27 fritz local5.info ngircd[1746]: Reading configuration from "/var/tmp/flash/mod/ngircd.conf" ...
Jul 25 01:45:27 fritz local5.info ngircd[1746]: ServerUID must not be 0, using "nobody" instead.
Jul 25 01:45:27 fritz local5.info ngircd[1747]: Running as user nobody(1), group nobody(2), with PID 1747.
Jul 25 01:45:27 fritz local5.info ngircd[1747]: Not running with changed root directory.
Jul 25 01:45:27 fritz local5.info ngircd[1747]: Notice: Can't change working directory to "/home/nobody": No such file or directory
Jul 25 01:45:27 fritz local5.info ngircd[1747]: Created pre-defined channel "&chan11"
Jul 25 01:45:27 fritz local5.info ngircd[1747]: New local channel key file "/var/tmp/flash/mod/chan11.key" for &chan11 activated.
Jul 25 01:45:27 fritz local5.info ngircd[1747]: IO subsystem: epoll (hint size 100, initial maxfd 100, masterfd 7).
Jul 25 01:45:27 fritz local5.info ngircd[1747]: Now listening on [192.168.###.###]:xxxxx (socket 8).
Jul 25 01:45:27 fritz local5.info ngircd[1747]: Now listening on [192.168.###.###]:yyyyy (socket 9).
Jul 25 01:45:27 fritz local5.info ngircd[1747]: Now listening on [192.168.###.###]zzzzz (socket 10).
Jul 25 01:45:27 fritz local5.info ngircd[1747]: Now listening on [192.168.+++.+++]:xxxxx (socket 11).
Jul 25 01:45:27 fritz local5.info ngircd[1747]: Now listening on [192.168.+++.+++]:yyyyy (socket 12).
Jul 25 01:45:27 fritz local5.info ngircd[1747]: Now listening on [192.168.+++.+++]:zzzz (socket 13).
Jul 25 01:45:33 fritz local5.info ngircd[1747]: Accepted connection 14 from 192.168.###.###:55457 on socket 8.
Jul 25 01:45:35 fritz local5.info ngircd[1747]: Accepted connection 15 from 192.168.###.###:59748 on socket 8.
Jul 25 01:45:37 fritz local5.notice ngircd[1747]: User "@@@@@@@@@192.168.+++.+++" registered (connection 14).
Jul 25 01:45:39 fritz local5.notice ngircd[1747]: User "*********@192.168.+++.+++" registered (connection 15).
Die Clients können sich über matrixtunnel mit dem IRC-Server verbinden.

EDIT:
Wer den dropbear auf der Box hat, kann auch mit ssh/putty eine sichere Verbindung (tunnel) zwischen irc-client (PC) und irc-server (FritzBox) herstellen/aufbauen:
Code:
ssh -f -L <IP-Adresse PC local>:<Port-PC local>:<IP-Adresse irc-server Box>:<Port irc-server Box> -oPort=<Port dropbear Box> root@<IP-Adresse dropbear Box> sleep 300
Wenn der irc-client die Fähigkeit hat, einen lokal lauschenden Socks-Proxy zu nutzen, dann kann man den SSH-Tunnel auch mit dynamischem Port-Forwarding (-D) erstellen.
 
Zuletzt bearbeitet:
Wie wäre es ,das direkt als Paket bereitzustellen? Vielleicht ist es ja von Interesse für irgendwen...
 
Wenn Du es geschafft hast, das Programm zu übersetzen, sollte es auch möglich sein, ein vorhandenes Makefile als Beispiel zu nehmen und anzupassen.
Es gibt sogar im Wiki eine Seite, auf der das erläutert ist.
 
Hallo,

ich versuche ngircd als Paket in Freetz zu integrieren.
Code:
ngIRCd 14.1 has been configured with the following options:

             Target: mipsel-unknown-linux-gnu
           Compiler: /home/gm/myfreetz/freetz3498/freetz-trunk/toolchain/target/bin/mipsel-linux-uclibc-gcc
     Compiler flags: -Os -pipe -march=4kc -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes -DSYSCONFDIR='"$(sysconfdir)"'                                                                                                                                                                 
          Libraries: -lnsl                                                                                                                                                          

    'ngircd' binary: /usr/sbin
 Configuration file: /etc     
       Manual pages: /usr/share/man
      Documentation: /usr/share/doc/ngircd

     Syslog support: yes     Enable debug code: no
   zlib compression: no            IRC sniffer: no
   Use TCP Wrappers: no        Strict RFC mode: no
   Zeroconf support: no          IRC+ protocol: yes
      IDENT support: no            I/O backend: "epoll(), select()"
      IPv6 protocol: no            SSL support: no
Beim kompilieren eines Freetz-Images komme ich bei folgenden Fehlermeldungen nicht weiter:
Code:
mkdir -p packages/ngircd-14.1/root/usr/
cp source/ngircd-14.1/ngircd packages/ngircd-14.1/root/usr/sbin
cp: Aufruf von stat für „source/ngircd-14.1/ngircd“ nicht möglich: Datei oder Verzeichnis nicht gefunden
make: *** [packages/ngircd-14.1/root/usr/sbin] Fehler 1
Wenn ich jetzt das Verzeichnis "source/ngircd-14.1/ngircd" von Hand erstelle (was ja nicht OK ist bzw. nicht sein soll), dann bekomme ich folgende Fehlermeldung:
Code:
mkdir -p packages/ngircd-14.1/root/usr/
cp source/ngircd-14.1/ngircd packages/ngircd-14.1/root/usr/sbin
cp: Verzeichnis „source/ngircd-14.1/ngircd“ ausgelassen
make: *** [packages/ngircd-14.1/root/usr/sbin] Fehler 1
Die Dateien Config.in, Makefile.in und ngircd.mk, aus dem make/ngircd-Verzeichnis, habe ich diesem Beitrag angehängt. Vielleicht kann mir jemand helfen. Danke.

EDIT:
cp source/ngircd-14.1/ngircd packages/ngircd-14.1/root/usr/sbin
Hier soll doch das binary "ngircd" von "source/ngircd-14.1/ngircd" nach "packages/ngircd-14.1/root/usr/sbin" kopiert werden.
Das binary befindet sich aber im Verzeichnis "/source/ngircd-14.1/src/ngircd". Das muss ich Freetz irgendwie mitteilen.
EDIT 2:
OK, jetzt funktioniert es. Ich musste in der Datei ngircd.mk die Zeile "$(PKG)_BINARY:=$($(PKG)_DIR)/src/ngircd/ngircd" anpassen.

Jetzt bekomme ich aber fast am Ziel, noch eine Fehlermeldung:
Code:
installing packages
  fstyp-0.1
  haserl-0.9.25
  modcgi-0.2
  ngircd-14.1
/home/gm/myfreetz/freetz3498/freetz-trunk/./tools/tar: ./usr/sbin: Cannot open: Die Datei existiert bereits
/home/gm/myfreetz/freetz3498/freetz-trunk/./tools/tar: Error exit delayed from previous errors
make: *** [firmware-nocompile] Fehler 1
Statt das binary ngircd in das Verzeichnis "/packages/ngircd-14.1/root/usr/sbin" zu kopieren, wird das binary in das Verzeichnis "/packages/ngircd-14.1/root/usr" kopiert und in "sbin" umbenannt.
EDIT3:
Das Anpassen der Zeile "$(PKG)_TARGET_BINARY:=$($(PKG)_DEST_DIR)/usr/sbin/ngircd" in der Datei "make/ngircd.mk" hat diesen Fehler behoben. Das Freetz-Image wird mit dem Paket "ngircd" erstellt:
Code:
installing packages
  fstyp-0.1
  haserl-0.9.25
  modcgi-0.2
  [B]ngircd-14.1[/B]
invoking custom script
stripping unstripped AVM binaries
  build/modified/filesystem/bin/usbcfgctl
  build/modified/filesystem/lib/libusbcfg.so.1.0.0
  build/modified/filesystem/lib/libled2.so.2.2.0
  build/modified/filesystem/lib/libpop3lib.so.1.0.0
  build/modified/filesystem/lib/libmaillib.so.2.0.0
  build/modified/filesystem/lib/libacgenusb.so.1.0.0
  build/modified/filesystem/usr/share/ctlmgr/libctlusb.so
done.

STEP 3: PACK
  Checking for left over Subversion directories
squashfs blocksize
  root filesystem: 65536
packing var.tar
creating filesystem image
merging kernel image
  kernel image size: 7312640 (max: 7798784, free: 486144)
  Aproximately free time for the answering machine: 125s (2min 5s)
packing 7170_04.70freetz-devel-3498M.de_20090726-100721.image
Image files can be found in the ./images/ subfolder
[B]done.[/B]

FINISHED
EDIT4:
Die Konfigurationsdatei "ngircd.conf" (siehe sample-ngircd.conf) habe ich auf den USB-Stick ausgelagert und ein Symlink nach "/var/tmp/flash/mod" gemacht. Den ngircd starte ich über Freetz:rc.custom mit "/usr/sbin/./ngircd -p -f /var/tmp/flash/mod/ngircd.conf".
 

Anhänge

  • Config_in.txt
    437 Bytes · Aufrufe: 8
  • Makefile_in.txt
    66 Bytes · Aufrufe: 8
  • ngircd_mk.txt
    1 KB · Aufrufe: 6
  • ngircd.tar
    110 KB · Aufrufe: 8
Zuletzt bearbeitet:
Sieht doch gut aus. So schnell kommt man von "Kenntnisse nicht ausreichend" zu "habe es gemacht".

Wenn Du jetzt noch die Stellen, wo Du Probleme hattest, im Wiki so ergänzen würdest, daß der Nächste diese Probleme nicht mehr hat, dann wäre es perfekt.
 
Wenn Du jetzt noch die Stellen, wo Du Probleme hattest, im Wiki so ergänzen würdest, daß der Nächste diese Probleme nicht mehr hat, ...

OK, muss mich erst mal einlesen, wie man Änderungen im Wiki macht.
Probleme hatte ich mit dem Verzeichnis (Zeile: $(PKG)_BINARY:=$($(PKG)_DIR)/) in der .mk-Datei.
 
ngircd kann jetzt auch mit tcp-wrappers (hosts.allow, hosts.deny), als Option kompiliert werden.
 

Anhänge

  • ngircd.tar
    10 KB · Aufrufe: 3
Hallo,
ich bin gerade dabei ein Freetz-Image mit Stinkylinux zu kompilieren. Ich frage mich wie ich den IRC-Server integrieren kann.

Evtl. steht es bereits irgendwo, aber dann habe ich offensichtlich Tomaten auf den Augen.
 
Im aktl. trunk, make menuconfig, packages, menu "Testing".
Siehe hier.
 
Ja, in freetz-1.1 ist der ngircd nicht beinhaltet. Nur im trunk.
 
Und wo bekomme ich diesen Trunk her? Und wie binde ich den ein?
 
Bitte im Wiki lesen. Diese Frage wurde nun schon _so_ oft allen möglichen Leuten beantwortet. Sogar die Forensuchfunktion hilft dabei....
 
Danke, das hat mir geholfen. :)

Allerdings spuckt mir ein "make" am Ende Folgendes aus:

make: *** [dl/fw/FRITZ.Box_Fon_WLAN_7170.Labor.29.04.99-14119.image] Fehler 3


Kann man irgendwo nachlesen welche Fehler das sind? Ich habe nämlich keine Lust die ganze Zeit vor der Konsole zu sitzen um auf entsprechende Meldungen zu lauern.
 
Wie schon Silent-Tears oben geschrieben hat:
Bitte im Wiki lesen. Diese Frage wurde nun schon _so_ oft allen möglichen Leuten beantwortet. Sogar die Forensuchfunktion hilft dabei....
 
@Baumhouse:

Siehe hier.(Please copy the following file into the 'dl/fw' sub-directory manually...)

Ergänzung:
Beispiel für eine ngircd.conf
[Global]
Name = <dyndns-Adresse>
Info = Mein IRC-Server
Password = <IRC-Server-Passwort>
;AdminInfo1 = Description
;AdminInfo2 = Location
;AdminEMail = [email protected]er
Ports = 6667
Listen = 0.0.0.0
MotdPhrase = "Hello world!"
ServerUID = nobody
ServerGID = nobody
PingTimeout = 120
PongTimeout = 40
PredefChannelsOnly = yes
NoDNS = no
NoIdent = yes
MaxConnections = 0
MaxConnectionsIP = 5
;MaxJoins = 10
;MaxNickLength = 9
[Operator]
;Name = TheOper
;Password = ThePwd
[Operator]
# More [Operator] sections, if you like ...
[Server]
Passive = yes
[Server]
# More [Server] sections, if you like ...
[Channel]
Name = &chatroom_nr_1
Topic = Diverse
Modes = tnkpslai
Key = <meinpasswortfuerdenchatroom_nr_1>

MaxUsers = 20
[Channel]
# More [Channel] sections, if you like ...
# -eof-

ACHTUNG: Der ngircd funktioniert auf der FritzBox, nur als daemon. Bitte die Option -n (nodaemon) nicht verwenden.
 
Zuletzt bearbeitet:
Hi
Ich habe das Problem, dass der Server sich ständig selbst beendet und auch Benutzer getrennt werden. Hier einige Infos:

- Ich habe eine FRITZ!Box Fon WLAN 7141
- das ist meine config:
[Global]
Name = irc.M1kka
Info = M1kka's Chat-Server@Fritz!Box
AdminInfo1 = M1kka
AdminInfo2 = Deutschland
AdminEMail = [email protected]
Ports = 6667
MotdPhrase = "xxxx"
ServerUID = 1
ServerGID = 1
OperCanUseMode = yes
[Operator]
Name = xxxx
Password = xxxx
[Channel]
Name = #Home
Topic = xxxxxxxxxxxxxxxx
MaxUsers = 20

- das ist die Meldung, die beim Start kommt:
Oct 20 22:55:57 ngircd[1246]: ngircd 14.1-SYSLOG+TCPWRAP+IRCPLUS-mipsel/unknown/linux-gnu started.
Oct 20 22:55:57 ngircd[1246]: Reading configuration from "/var/tmp/ngircd.conf" ...
Oct 20 22:55:57 ngircd[1247]: Running as user ftp(1), group users(1), with PID 1247.
Oct 20 22:55:57 ngircd[1247]: Not running with changed root directory.
/var/tmp # Oct 20 22:55:57 ngircd[1247]: Created pre-defined channel "#Home"
Oct 20 22:55:57 ngircd[1247]: IO subsystem: epoll (hint size 100, initial maxfd 100, masterfd 3).
Oct 20 22:55:57 ngircd[1247]: Now listening on [0.0.0.0]:6667 (socket 4).

- ich benutze den server übers internet
- Im SSH sehe ich, dass er ständig die folgende Meldung wiederholt ausgibt:
Can't accept connection: Resource temporarily unavailable!

- manchmal werden auch Benutzer mit folgender Meldung geschmissen:
User "USERNAME" unregistered (connection 7)": Receive buffer overflow!


Ich hoffe ihr habt eine Lösung zu meinem Problem.
Danke im Vorraus
 
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.