PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : telnetdaemon alle 30 Sekunden Zeit ausgeben



JasonPat
18.10.10, 10:14
Hallo,

ich bräuchte für ein anderes Projekt von mir zum testen einen Telnetdaemon,
der mir ann alle die sich auf den PC per telnet verbinden die Zeit (oder auch was anderes) alle 15 Sekunden aus gibt.

ist sowas einfach (wie) möglich ?

muell200
18.10.10, 11:13
ist sowas einfach (wie) möglichath ?

ja - auf die schnelle faellt mir folgendes ein

script erstellen z.b.:
eine grep auf messages und auslesen wer sich eingeloggt ...

JasonPat
19.10.10, 11:12
script erstellen z.b.:
eine grep auf messages und auslesen wer sich eingeloggt ...

Sorry, versteh grad garnichts.
Wie leite ich das dann so um, dass jede Verbindung per Telnet mit der aktuellen Zeit gefüttert wird.

Hät das gerne so, das ich eben von einem Anderen System (PC/device,...) wenn ich sowas wie
telnet ip.ip.ip.ip PORT
mache, dass ich dan auf diesem kanal eben im 15 Sekunden Takt "YYYY-MM-dd HH:mm:ss" oder so bekomme.

Roger Wilco
19.10.10, 18:45
Das kannst du mit einem einfachen Shellskript und (x)inetd erledigen.

Das Skript gibt alle 15 Sekunden die aktuelle Uhrzeit aus (while-Schleife, `date`, sleep 15) und über (x)inetd wird das Skript über Netzwerk verfügbar gemacht.

JasonPat
20.10.10, 13:30
Also das Script würde dann so aussehen:


#!/bin/bash
while 1 ; do
echo "Hier kommt die Zeit:"
date +%Y%m%d%H%M%S
sleep 15s
done

aber wie das mit der "zur Verfügung stellen" klappen soll versteh ich nicht ganz.
bei telnet melden die sich ja nicht an oder ?

Bin was dieses Sachen angeht noch nicht wirklich sattelfest, daher auch meine Fragen.

Los_Andros
21.10.10, 13:44
Also ein Telnet Daemon .... möp, das verwendet man nicht, auch nicht zum testen. Telnet wird niemals verwendet.

Du möchtest, dass einem Benutzer, der sich per Netzwerk anmeldet alle 15 Sekunden die Zeit angezeigt wird?

Dann nimmst Du das Skript von oben und lässt es über die /etc/profile starten.

Roger Wilco
21.10.10, 14:51
Immer dieser Beißreflex…

Loas Andros, was ist deiner Meinung nach besser: Ein lokales Benutzerkonto mit interaktiver Shell (so dass /etc/profile überhaupt ausgewertet wird) oder ein generischer Dienst auf irgendeinem unpriviligierten Port, der keinerlei Eingaben entgegennimmt und einfach nur alle 15 Sekunden die aktuelle Uhrzeit und Datum ausgibt?

JasonPat
21.10.10, 23:13
Also ein Telnet Daemon .... möp, das verwendet man nicht, auch nicht zum testen. Telnet wird niemals verwendet.

Du möchtest, dass einem Benutzer, der sich per Netzwerk anmeldet alle 15 Sekunden die Zeit angezeigt wird?

Dann nimmst Du das Skript von oben und lässt es über die /etc/profile starten.

nein, von Anmelden hab ich eigentlich nix gesagt.
Ich gebe 'telnet 192.123.1.123 123456' ein.
es öfnnet sich die telnet verbindung und ich erhalte gleich ein.
"Hallo du bist mit diesem Service verbunden ..." und es kommen einfach die Informationen ohne noch irgend was anderes von der einen seite zu fordern.
Was anderes geht eigentlich nicht.

Kann ja nicht "die andere Seite" neu Programmieren ...

eule
21.10.10, 23:30
Reicht da nicht daytime?

Los_Andros
23.10.10, 00:25
Das ist aber kein Telnet Daemon, sondern das wäre ein eigener Daemon, der mit dem Telnet Daemon nichts zu tun hat.

Und ja, ein eigener Account auf einem System ist in meinen Augen besser, weil:
Mit einem eigenen unprivilegierten Account kann man exakt identifizieren, Wer, Wann, Was gemacht hat, wenn dieser Wer den eigenen Service in irgendeiner Form ausnutzt, ist dies nachvollziehbar.

Ist keine Anmeldung in irgendeiner Form notwendig, ist das Wer, Wann, Was nicht mehr gewährleistet und man hat damit ein erhöhtes Risiko. Ein Netzwerkdienst ohne Authentifizierung ist immer ein Risiko und die Aufgabe mit einem Dienst wie SSH zu lösen ist keine Kunst, zumindest ist es einfacher, als einen Telnet-Server-Verschnitt zu basteln.

Es ist zwar etwas Lehrerhaft, aber die Frage war, ob wir einen Telnet Daemon kennen, der die Zeit alle 15 Sekunden ausgeben kann. Der Telnet Daemon hat mit dem Telnet Client nur bedingt etwas zu tun.


Deshalb glaube ich, am schnellsten ist man da mit einem /etc/profile Profil.

JasonPat
23.10.10, 01:30
Reicht da nicht daytime?

Hmmm weiß nicht, aber ich brauch die daten auf telnet ...

derguteweka
23.10.10, 09:19
Moin,


ist sowas einfach (wie) möglich ?

Ich wuerde sagen: Ja.
Hab's grad' mal mit utelnetd ausprobiert, wird aber mit anderen auch funktionieren:
Du nimmst dein Script, machst die Fehler raus und speicherst es irgendwo unter z.b. unter /usr/bin/blatime

Dann aenderst du das login programm, das dein telnetd standardmaessig aufruft auf diesen Namen ab. Beim utelnetd ist's hart codiert im Makefile, bei anderen wird's wohl leichter gehen.
Schon isses fertig. Sieht dann zb. so aus:

telnet 127.0.0.1
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Hier kommt die Zeit:
20101023091633
Hier kommt die Zeit:
20101023091648

Gruss
WK

Los_Andros
23.10.10, 14:21
Moin,



Ich wuerde sagen: Ja.
Hab's grad' mal mit utelnetd ausprobiert, wird aber mit anderen auch funktionieren:
Du nimmst dein Script, machst die Fehler raus und speicherst es irgendwo unter z.b. unter /usr/bin/blatime

Dann aenderst du das login programm, das dein telnetd standardmaessig aufruft auf diesen Namen ab. Beim utelnetd ist's hart codiert im Makefile, bei anderen wird's wohl leichter gehen.
Schon isses fertig. Sieht dann zb. so aus:

telnet 127.0.0.1
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Hier kommt die Zeit:
20101023091633
Hier kommt die Zeit:
20101023091648

Gruss
WK


Und falls Du Dich doch für eine sicherer Variante entscheiden solltest (z.B. SSH).
Jeder Benutzer wird im System angelegt und als Login Shell für die Benutzer nimmst Du wiederum dieses /usr/bin/blatime.

Der Effekt ist dann exakt der selbe, die Authentifizierung kann man auch leicht verskripten oder mit Zertifikaten arbeiten.

ThorstenHirsch
23.10.10, 15:16
Bin schon die ganze Zeit am rätseln, wie man etwas hacken will, das keine Eingabe entgegennimmt, sondern nur die Uhrzeit ausgibt. Also ich glaub ich hätte das ohne lokalen Account gelöst.

Los_Andros
23.10.10, 16:27
z.B. indem man Schwachstellen ausnutzt, wie z.B. jegliche ** Overflow Szenarien.

Wenn man in /usr/bin/blatime ein eigenes Programm ablegt, dann muss dieses Programm sauber programmiert sein, denn jeder im Netz kann beliebig oft probieren einen Angriff zu starten.

Mit vorheriger Authentifizierung ist hier schonmal der Kreis der Angreifer erheblich eingeschränkt und die Aktionen bleiben auch nachvollziehbar, da man dann mitprotokollieren kann.


Jeder erreichbare Netzwerkport ist erstmal ein Sicherheitsrisiko.

ThorstenHirsch
23.10.10, 17:14
Diese Binsenweisheiten sind mir klar. Aber hier geht's um ein Skript, das nur dir Zeit ausgibt und keinerlei Eingaben entgegennimmt. IMHO entfallen hier jegliche Overflow-Szenarien.

Los_Andros
23.10.10, 19:17
Ok, das ist schon richtig, aber es sind nicht unbedingt Binsenweisheiten, ich finde es nicht gerade schick, einen telnet daemon zu verwenden, um Zugriff von außen überhaupt zu ermöglichen. Das riecht einfach nach Ultragefrickel. Der SSH ist eh schon installiert und ich sehe keinen Nachteil darin, SSH + Accounts zu verwenden. Das Ergebnis ist das Selbe.

Auch sehe ich keinen Nachteil darin, ob ich jetzt dem Telnet ein eigenes Homeverzeichnis + /usr/bin/blastime zuweise, oder jedem Benutzer exakt dieses Homeverzeichnis + /usr/bin/blatime zuweise. Der Vorteil ist hier für mich aber, dass ich den Zugriff einschränken kann.
Einen Nachteil sehe ich ehrlich gesagt nicht.

JasonPat
28.10.10, 01:44
Also für mich besteht wie bereits erwähnt gar nicht die möglichkeit etwas anderes als telnet zu verwenden.
Außerdem kommt die Anwendung nur in geschlossenen Netzwerken zum Einsatz.

Werde das jetzt auch mal so testen und hoffe es klappt.

Noch eine Frage hätte ich.
Ist es möglich auf der Linuxbox die eine Telnet Verbindung zum Server herstellt diese Kommunikation per rsyslog zwecks debugging mit zu loggen?
Geht sowas einfach damit? Habe so etwas (glaube ich) bei einem anderen Protokoll gesehen, nur hatt eine Anpassung auf telnet nicht geklappt.

403
28.10.10, 07:06
moins,

also ich hätte das Script noch um Folgendes erweitert:


Also das Script würde dann so aussehen:


#!/bin/bash
env -i
exec 0>/dev/null

while [ 1 ] ; do
echo "Hier kommt die Zeit:"
date +%Y%m%d%H%M%S
sleep 15s
done


aber wie das mit der "zur Verfügung stellen" klappen soll versteh ich nicht ganz.
bei telnet melden die sich ja nicht an oder ?


Hm, daytime scheint wie dafür gemacht zu sein ;)


Gruss
403