Weshalb ist OpenVPN nicht performant / so langsam?
- TCP-over-TCP!
- CPU, RAM, Bandwidth sind nicht das Problem
OpenVPN performance, throughput odd/bad.
Just another Techblog
Weshalb ist OpenVPN nicht performant / so langsam?
OpenVPN performance, throughput odd/bad.
In meinem letzten Blog-Post habe ich mich mit OpenSSH (ab Version 7.0) und dem SSH-Login bei MikroTik beschäftigt, genauer gesagt mit dem DSA-Algorithmus. Dieser wurde bei OpenSSH neuerdings deaktiviert. Nachdem ich den „Workaround“ eingerichtet und geposted hatte, habe ich mich auf die Suche nach dem RSA Support in der Feature-Liste für die nächsten RouterOS Versionen gemacht. Hätte ich mal lieber im Changelog gesucht, wäre ich auch fündig geworden. Seit RouterOS 6.33 wird RSA beim SSH-Login mit 2048 Bit unterstützt. Das zum Thema „Wer lesen kann ist klar im Vorteil“ oder auch #RTFM, wobei im MikroTik Manual an entsprechender Stelle auch nur DSA erwähnt wird.
Und wenn ich schon dabei bin, teste ich doch gleich mal meinen 4096-bitigen Schlüssel, welchen ich generell für Backups schon erzeugt habe. Funktioniert zu meiner Überraschung.
Und wenn ich eh schon beim „Hardening“ angekommen bin, habe ich noch zwei optionale Parameter für RouterOS gesetzt, welche ich euch ebenfalls empfehlen würde auf dem Terminal zu setzen:
/ip ssh set host-key-size=4096 strong-crypto=yes
UPDATE: Diese Information ist nur noch für ältere RouterOS Versionen vor 6.33 gültig, für neuere Versionen gibt es hier eine ordentliche Lösung.
Nachdem ich vor Kurzem meinen Backup-Server auf das aktuelle Debian 9.0 (stretch) aktualisiert habe, läuft mein Backup-Script für meine MikroTiks nicht mehr. Kein Ein Fall für eine akute Fehlersuche. Meine RouterOS-Config ist im Moment recht statisch, denoch wichtig genug um ein paar Minuten am Wochenende dafür zu opfern. Denn wie heißt es so schön im Buch „Zeitmanagement für Systemadministratoren“ — „Backups, Backups und Backups…“.
Das Backup läuft über SSH mit Key-Authentication mit einem eigenen Script:
#!/bin/bash
MT_HOSTS="mikrotik01.example.com mikrotik02.example.com"
MT_PORT=22
MT_USER=backup
MT_KEY="/root/.ssh/id_dsa"
MT_DIR="/backup/mikrotik"
MT_DATE=$(date +"%Y%m%d-%H%M")
for MT in ${MT_HOSTS}; do
[ ! -d ${MT_DIR}/${MT} ] && mkdir -p ${MT_DIR}/${MT}
ssh -p ${MT_PORT} -i ${MT_KEY} ${MT_USER}@${MT} "/export file=${MT}.rsc"
scp -P ${MT_PORT} -i ${MT_KEY} -B -q ${MT_USER}@${MT}:${MT}.rsc ${MT_DIR}/${MT}/${MT}_${MT_DATE}.rsc
done
Leider akzeptiert MikroTik bisher nur DSA und keine RSA-Keys. Hier liegt auch schon der Fehler: Debian stretch verwendet OpenSSH 7.4 und ab OpenSSH 7.0 wird der DSA-Algorithmus als „weak“ nicht mehr unterstützt. Solange MikroTik keinen RSA-Support implementiert, kann man den DSA-Algorithmus explizit wieder erlauben. Hierfür hab ich im Home-Directory meines Backup-Servers die Config-Datei (~/ssh/config) mit folgender Zeile ergänzt:
PubkeyAcceptedKeyTypes +ssh-dss
Ab dann funktioniert der SSH-Login per PublicKey (und damit mein Backup) wieder tadellos. Alternativ kann auch die Option nur bei dem BackupScript mitgegeben werden. Dafür müssen die SSH Aufrufe im Script mit folgender Option ergänzt werden:
ssh -oHostKeyAlgorithms=+ssh-dss
Quellen:
OpenSSH
Safemode aktivieren / deaktivieren:
Safemode statt über Winbox im Terminal mit Strg + x aktivieren / deaktivieren.
Vor dem Ausloggen Safemode beenden! Sonst werden alle geänderten Einstellungen rückgängig gemacht.
Serielles Kabel + Nullmodem-Adapter.
Neuere Modelle (bspw. der Serie CRS), deren Konsole als RJ45-Anschluss ausgeführt sind, funktionieren auch mit einem Cisco- oder HP-Konsolenkabel. Ein Nullmodem-Adapter wird dann nicht benötigt.
Bei neueren Modellen mit D-Sub-Buchse ist der Nullmodem-Adapter jedoch weiterhin erforderlich.
115200
8 data bit
1 stop
flow control: none
sudo cu -l /dev/cu.usbserial -s 115200
cu-Session beenden:
~. (also auf dem Mac Alt+n gefolgt von .)
screen /dev/cu.usbserial 115200
Screen-Session beenden (funktioniert auf macOS leider nicht zuverlässig, so dass alte Sessions hängen bleiben und der USB/Serial-Port nicht freigegeben wird):
Ctrl-A, dann Ctrl-\ (also auf dem Mac Ctrl+Alt+Shift+7)
oder
Ctrl-A, dann Ctrl-K