Vraagje voor de Linux-kenners

Windows, Android, iOS, Linux, Chrome OS, ...
Plaats reactie
Gebruikersavatar
honda4life
Moderator
Moderator
Berichten: 6008
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 207 keer
Bedankt: 376 keer
Recent bedankt: 2 keer

Hallo iedereen,

Ik ben weer bezig met de telnet daemon in de FritzBox 06.30 er terug in te steken.
Ze hebben deze functionaliteit er uit gehaald helaas.
Ik heb het reeds werkende gekregen maar ik begrijp niet 100% waar hoe en waarom en denk dat het beter kan.

Op 06.20 ziet het er als volgt uit in de /usr/sbin directory:

Code: Selecteer alles

lrwxrwxrwx 1 freetz freetz   17 Jan 31 14:56 telnetd -> ../../bin/busybox
Op 06.30 ziet het er als volgt uit in de /usr/sbin directory:
Link verdwenen

Zoals je ziet ligt er een link, gaan we naar deze directory:

Code: Selecteer alles

-rwxr-xr-x  1 freetz freetz    0 Feb  3 18:24 busybox
Op wat slaagt die link nu eigenlijk?
Bestandsgrootte?

Kopieer ik dan telnetd en busybox naar m'n home directory:

Code: Selecteer alles

-rwxr-xr-x  1 freetz freetz 412K Feb  3 18:57 busybox
-rwxr-xr-x  1 freetz freetz 412K Feb  3 18:58 telnetd
Beiden zijn dan die busybox van hierboven?
Bestandsgrootte?

Zie hier ook het ene of het andere scriptje dat ik gevonden heb om telnetd eenmalig te lanceren, ook hier begrijp ik niet alles.
Eerst een kopie van de sbin directory in een tijdelijke directory.
Dan mounten ze deze directory terug naar diezelfde directory, waarom?
Dan creëren ze alle links opnieuw...

Code: Selecteer alles

export PATH=/bin:/sbin:/usr/bin:/usr/sbin
cd /var/tmp
cp -R /usr/sbin /var/tmp/usersbin
mount -o bind usersbin /usr/sbin
ln -sf /bin/busybox usersbin/telnetd
ln -sf /bin/busybox usersbin/inetd
ln -sf /bin/busybox usersbin/brctl
ln -sf /bin/busybox usersbin/chroot
/usr/sbin/telnetd -l /sbin/ar7login -p 23
Nu kan ik vrij goed m'n plan trekken in linux, maar dit gaat toch even m'n petje te boven.
Bedankt voor de hulp alvast.
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Mathy
Elite Poster
Elite Poster
Berichten: 842
Lid geworden op: 17 feb 2010, 11:09
Uitgedeelde bedankjes: 35 keer
Bedankt: 74 keer

Heel veel tools onder Linux maken gebruik van éénzelfde binary om verschillende functionaliteiten te voorzien. Er worden dan symlinks naar dezelfde binary gelegd en de binary zelf kijkt bij het opstarten met welk cli-commando het opgestart is om vervolgens die bepaalde functionaliteit uit te voeren.

Busybox is zo een voorbeeld en bevat zowat alles wat je nodig hebt om in een shell te kunnen werken in 1 statisch gelinkte binary. Het bevat ook wat extra's zoals bijvoorbeeld filesystem-checkers en telnetd. Het kan echter wel zijn dat ze in deze versie telnetd niet mee ingecompileerd hebben waardoor het niet zal uitmaken of je die link legt of niet, het zal niet werken.

Jij hebt nu het bestand gekopieerd, dat kan ook maar neemt gewoon meer plek in op de opslagruimte dan een soft link die in het scriptje gemaakt wordt met de ln -sf call.

De reden dat ze die bestanden in het scriptje terug kopiëren is omdat ze een tijdelijke directory maken, en die over de bestaanden /usr/sbin directory mounten, waardoor de originele bestanden in die directory verborgen raken en het originele filesysteem niet wijzigt. Hierdoor is na een reboot het originele filesysteem weer zichtbaar.
Skynet Generation Internet

http://mathy.vanvoorden.be
Gebruikersavatar
honda4life
Moderator
Moderator
Berichten: 6008
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 207 keer
Bedankt: 376 keer
Recent bedankt: 2 keer

Hartelijk dank.
Als ik me niet vergis is het originele filesysteem helemaal niet aanpasbaar en komt terug op originele stand na reboot.
Dat laaste klopt dus niet helemaal denk ik.
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Gebruikersavatar
bitbite
Premium Member
Premium Member
Berichten: 558
Lid geworden op: 18 dec 2012, 14:01
Uitgedeelde bedankjes: 38 keer
Bedankt: 42 keer

honda4life schreef:Op 06.30 ziet het er als volgt uit in de /usr/sbin directory:
Link verdwenen
Was dit toevallig na een reboot? Misschien dat ze periodiek expres die telnetd weghalen.
honda4life schreef: Zoals je ziet ligt er een link, gaan we naar deze directory:

Code: Selecteer alles

-rwxr-xr-x  1 freetz freetz    0 Feb  3 18:24 busybox
Op wat slaagt die link nu eigenlijk?
Bestandsgrootte?
Dit is een binary, maar waarom die 0 bytes is is me even een raadsel.

Het enige wat je moet doen is een

Code: Selecteer alles

ln -s /usr/sbin/busybox telnetd
in je homedir ofzo, en dan die expliciet oproepen (/home/freetz/telnetd). Het zou me sterk lijken dat ze het hele filesystem afscannen op zoek naar telnetd.
Wat je ook kan doen is telnetd lanceren met

Code: Selecteer alles

busybox telnet
, die symlink is vooral voor het gemak.
Gebruikersavatar
honda4life
Moderator
Moderator
Berichten: 6008
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 207 keer
Bedankt: 376 keer
Recent bedankt: 2 keer

Nee, ze hebben de functionaliteit geschrapt na een firmware update.
Niet onterecht natuurlijk want je kan zo veel foefelen, als mensen dan komen klagen "het werkt niet" door hun eigen fout...

De link heb ik inmiddels gemaakt, ik had zoal het vermoeden.
Of je telnet nog kan activeren via de telefoon dat betwijfel ik, maar ik weet gelukkig hoe dat gestart kan worden.
Een hele hoop BLOB's maar de textfiles zijn wel interessant :-)

Code: Selecteer alles

#never uncomment the telnetd lines unless you know what you do
#start telnetd
echo '/usr/sbin/telnetd -l /sbin/ar7login' > /var/flash/debug.cfg
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Gebruikersavatar
xming
Pro Member
Pro Member
Berichten: 434
Lid geworden op: 06 okt 2005, 10:35
Uitgedeelde bedankjes: 9 keer
Bedankt: 47 keer

telnet daemon nooit activeren behalve om initiële toegang te verkrijgen, eens je toegang hebt en sshd hebt zet telnetd aub onmiddellijk af.

Zoals Mathy zei, busybox maakt gebruik van argv[0] zodoende door middel van een symlink (hard of soft) of copy dat je verschillende functionaliteiten verkrijgt op voorwaarde dat die ingebakken zijn tijdens de compilatie, dit is een manier om disk space te sparen.
Gebruikersavatar
honda4life
Moderator
Moderator
Berichten: 6008
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 207 keer
Bedankt: 376 keer
Recent bedankt: 2 keer

Volledig met eens dat ssh beter is, maar gezien het beperkte vrije flashgeheugen denk ik niet dat dat een optie is.
Deze poort staat uiteraard niet open naar de buitenwereld toe.
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Gebruikersavatar
xming
Pro Member
Pro Member
Berichten: 434
Lid geworden op: 06 okt 2005, 10:35
Uitgedeelde bedankjes: 9 keer
Bedankt: 47 keer

ik heb een 7360 v1 hier met freetz erop, een hoop onnodige zaken eruit gegooid en er is genoeg plaats voor sshd (dropbear).
Gebruikersavatar
honda4life
Moderator
Moderator
Berichten: 6008
Lid geworden op: 03 jan 2010, 21:42
Locatie: 127.0.0.1
Uitgedeelde bedankjes: 207 keer
Bedankt: 376 keer
Recent bedankt: 2 keer

Moet ik nog eens in detail bekijken.
Fritzbox doet wat hij moet doen, heb een Raspberry Pi draaien waar de rest op loopt.
✂ – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
GuntherDW
Elite Poster
Elite Poster
Berichten: 1139
Lid geworden op: 11 mei 2007, 14:00
Locatie: zwijndrecht
Uitgedeelde bedankjes: 11 keer
Bedankt: 78 keer
Contacteer:

Ook een kleine nota, als ze hun toolchain e.d. nog niet hebben aangepast that is.
Maar een fritzbox draait niet op Linux. Deze draaien op FreeBSD.

In simpele termen lijkt het op linux, maar is het helemaal geen Linux.
Dit vertaalt zich dan in kleine dingen die anders zijn dan je zou verwachten als je van die "kant en klare" linux tutorials zou volgen.
Gebruikersavatar
xming
Pro Member
Pro Member
Berichten: 434
Lid geworden op: 06 okt 2005, 10:35
Uitgedeelde bedankjes: 9 keer
Bedankt: 47 keer

GuntherDW schreef:Ook een kleine nota, als ze hun toolchain e.d. nog niet hebben aangepast that is.
Maar een fritzbox draait niet op Linux. Deze draaien op FreeBSD.

In simpele termen lijkt het op linux, maar is het helemaal geen Linux.
Dit vertaalt zich dan in kleine dingen die anders zijn dan je zou verwachten als je van die "kant en klare" linux tutorials zou volgen.
LOL

Dan is het wel een heeeel bizarre BSD, die zich overal als Linux voordoet en een Linux toolchain gebruikt :D
$ ./freetz-trunk/toolchain/target/mips-linux-uclibc/bin/gcc -v
Using built-in specs.
COLLECT_GCC=./freetz-trunk/toolchain/target/mips-linux-uclibc/bin/gcc
Target: mips-linux-uclibc
Configured with: /home/gene/freetz/freetz-trunk-dev/source/toolchain-mips_gcc-4.6.4_uClibc-0.9.32.1/gcc-4.6.4/configure --prefix=/home/gene/freetz/freetz-trunk-dev/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc --with-sysroot=/home/gene/freetz/freetz-trunk-dev/toolchain/build/mips_gcc-4.6.4_uClibc-0.9.32.1/mips-linux-uclibc/usr/ --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=mips-linux-uclibc --enable-languages=c,c++ --enable-shared --enable-threads --with-gmp=/home/gene/freetz/freetz-trunk-dev/tools/build --with-mpfr=/home/gene/freetz/freetz-trunk-dev/tools/build --with-mpc=/home/gene/freetz/freetz-trunk-dev/tools/build --with-gnu-ld --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --disable-multilib --disable-tls --disable-fixed-point --with-float=soft --enable-cxx-flags=-msoft-float --disable-libssp --with-march=24kc --disable-nls --with-mips-plt --disable-decimal-float
Thread model: posix
gcc version 4.6.4 (GCC)
root@fritz:/var/mod/root# uname -a
Linux fritz.fonwlan.box 2.6.32.60 #1 SMP Tue Apr 15 16:18:58 CEST 2014 mips GNU/Linux
GuntherDW
Elite Poster
Elite Poster
Berichten: 1139
Lid geworden op: 11 mei 2007, 14:00
Locatie: zwijndrecht
Uitgedeelde bedankjes: 11 keer
Bedankt: 78 keer
Contacteer:

freetz is niet de standaard firmware he :p.
Alsnog, ik zei "als ze hun toolchain nog niet aangepast hebben" that is, dwz dat het dus mogelijk is dat het al aangepast was...

EDIT: heb ook even de wikipedia bekeken, en wat rond gegoogled. Hmm. Dacht altijd dat ze een FreeBSD derivate draaiden, raar. Waar heb ik dat van mee gekregen dan...
Color me wrong dus :D.
Gebruikersavatar
xming
Pro Member
Pro Member
Berichten: 434
Lid geworden op: 06 okt 2005, 10:35
Uitgedeelde bedankjes: 9 keer
Bedankt: 47 keer

freetz is niet de standaard firmware, maar freetz is ook niet een volledige andere OS. Freetz gebruikt nl. ook de vdsl kernel module van AVM, een cross architectuur/platform kernel module is niet vanzelf sprekend.

Je verwarring komt waarschijnlijk door dat AVM/Freetz geen glibc based is, maar uclibc.
Gebruikersavatar
Sub Zero
Administrator
Administrator
Berichten: 6181
Lid geworden op: 15 sep 2002, 12:14
Locatie: Herzele
Uitgedeelde bedankjes: 74 keer
Bedankt: 121 keer

Ik denk dat de 0 bytes komt van het feit dat ze een hard symlink gebruikt hebben ipv een softlink. Je moet maar eens googlen naar het verschil.
Plaats reactie

Terug naar “Software en apps”