kostenloser Webspace werbefrei: lima-city


Probleme mit ncat und ssl

lima-cityForumHeim-PCBetriebssysteme

  1. Autor dieses Themas

    noxious

    Kostenloser Webspace von noxious

    noxious hat kostenlosen Webspace.

    Hallo,

    ich versuche eine (bzw. viele) Dateien via ncat zu versenden. Dabei sind eine vielzahl von Problemen aufgetaucht, welche ich nach und nach lösen konnte, bis auf eines: Wenn ich SSL verwende, gibt es ab einer gewissen (unbestimmten) größe der Datei Probleme. Aber zurück auf Anfang.


    Das erste Problem war, dass ich viele Dateien empfangen wollte, ncat aber prinzipiell alles in eine Datei schreiben will. (Bzw. ins Terminal) Eine lösung wäre gewesen, ein Bash-Script zu schreiben, welches ncat ohne keep-open-flag startet, das ganze in einen zufallsgenerierten dateinamen packt und das ganze dann in einer Schleife macht. Problem dabei ist, dass es in der schleife (und beim starten eines neuen Server-Prozesses) immer wieder zu einer geringfügigen Verzögerung kommt, woraufhin auf Clientseite die Verbindung scheitert und Dateien verworfen werden.
    Der keep-open-flag ist also quasi zwingend nötig, was das Problem mit mehreren Dateien aufwarf. Dieses ließ sich lösen, durch die implementierung eines äußerst rudimentären Protokolls, welches die versendeten Dateien in base64 kodiert und dann mit führenden und folgenden Linebreak sendet.
    echo -e "\n$(base64 -w 0 file)\n" | ncat -C host port
    . Dann kann am Ende die Datei mit einem einfachen Script in viele, kleine Dateien zerlegt werden.

    Dann folgte die Idee, das ganze mit SSL laufen zu lassen. Und dort fingen die Probleme an. Erstmal schnell mit openssl schlüssel/zertifikat erzeugt (
    openssl req  -nodes -new -x509  -keyout key.pem -out cert.pem;
    ), den Server via
    ncat -k --listen --ssl-key ssl/key.pem --ssl-cert ssl/cert.pem host port > incoming/filelist
    gestartet - schien zu laufen. Wenn nun der Client via
    echo -e "\n$(base64 -w 0 file)\n" | ncat --ssl -C host port
    eine kleine Datei sendet (wenige Byte) funktioniert auch noch alles wunderbar, aber ab einer gewissen Größe bekomme ich nur noch die Meldung
    Ncat: Input/output error.
    (Auf Clientseite) - was bei
    -vvv
    doch recht wenig ist. Beim Server erhalte ich
    Ncat: Connection from host.
    Ncat: Connection from host:45310.
    NCAT DEBUG: Added fd 4 to list, nfds 3, maxfd 4
    NCAT DEBUG: selecting, fdmax 4
    NCAT DEBUG: select returned 1 fds ready
    NCAT DEBUG: fd 4 is ready
    NCAT DEBUG: selecting, fdmax 4
    NCAT DEBUG: select returned 1 fds ready
    NCAT DEBUG: fd 4 is ready
    NCAT DEBUG: selecting, fdmax 4
    NCAT DEBUG: select returned 1 fds ready
    NCAT DEBUG: fd 4 is ready
    NCAT DEBUG: Added fd 4 to list, nfds 1, maxfd 4
    NCAT DEBUG: selecting, fdmax 4
    NCAT DEBUG: select returned 1 fds ready
    NCAT DEBUG: fd 4 is ready
    NCAT DEBUG: selecting, fdmax 4
    NCAT DEBUG: select returned 1 fds ready
    NCAT DEBUG: fd 4 is ready
    NCAT DEBUG: Closing connection.
    NCAT DEBUG: Swapping fd[2] (4) with fd[2] (4)
    NCAT DEBUG: Removed fd 4 from list, nfds 2, maxfd 3
    NCAT DEBUG: Swapping fd[0] (4) with fd[0] (4)
    NCAT DEBUG: Removed fd 4 from list, nfds 0, maxfd -1
    NCAT DEBUG: selecting, fdmax 3


    Die Frage ist nun: Wo habe ich was falsch gemacht? Hat da jemand eine Idee?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!