Beiträge mit Tag ‘ssh’

Merker: Fail2Ban Status ausgeben

Um schnell den Status aller Fail2Ban „Blocklisten“ auszugeben kann folgender Einzeiler verwendet werden:

fail2ban-client status | sed -n 's/,//g;s/.*Jail list://p' | xargs -n1 fail2ban-client status

Linux – Meldung vor Passwort Prompt ausgeben

Man kann unter Linux die Datei /etc/issue.net dazu verwenden, vor dem eigentlichen Passwort Prompt, eine Meldung auszugeben. Diese kann z.B. Nutzer warnen ein Login durchzuführen sofern sie nicht dazu berechtigt sind.

Die Umsetzung ist denkbar einfach. Zuerst müssen wir uns natürlich korrekt auf dem System anmelden und im Anschluss die Datei /etc/issue.net editieren.

pico /etc/issue.net

Dort kann man die gewünschte Meldung eingeben und entsprechend speichern. Im Anschluss müssen die den SSH-Daemon dazu bringen diese auch zu verwenden. Dazu editieren wie die Datei /etc/ssh/sshd_config und suchen nach der Zeile Banner

pico /etc/ssh/sshd_config

Diese dann wie folgt einstellen. (In der Regel ist die Zeile auskommentiert)

# no default banner path

Banner /etc/issue.net

Nach dem Neustart des SSH-Daemon wird bei der Anmeldung vor dem Passwort Prompt die Meldung ausgegeben. (Siehe Bild oben)

service ssh restart

Bei der Authentifizierung mittels SSH-Keys (welches ich empfehle und bevorzuge), gibt es natürlich kein Passwort Prompt. Die Meldung wird dann aber trotzdem ausgegeben.

Python-Paramiko Versionsproblem

Mit dem Modul Python-Paramiko kann man via Python SSH Befehle auf einem anderen Host ausführen lassen.
Bei manchen Scripten, wie zum Beispiel Duply, werden neuere Versionen verlangt. Es kommt dann zu folgenden Fehlermeldungen:

/usr/lib/python2.7/dist-packages/paramiko/ecdsakey.py:164: CryptographyDeprecationWarning: Support for unsafe construction of public numbers from encoded data will be removed in a future version. Please use EllipticCurvePublicKey.from_encoded_point
 self.ecdsa_curve.curve_class(), pointinfo
/usr/lib/python2.7/dist-packages/paramiko/kex_ecdh_nist.py:39: CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.

Abhilfe schafft das Python Modul aus den Buster Backports zu verwenden. Dazu muss entsprechend die sources.list bearbeitet werden.

pico /etc/apt/sources.list

Und eine weitere Zeile (sofern nicht schon vorhanden) hinzugefügt werden:

deb http://ftp.debian.org/debian buster-backports main

Wie immer müssen dann die Sourcen neu geladen werden und anschließend kann man von den Backports das aktuellere Modul installieren.

apt update && apt -t buster-backports install "python-paramiko"

Zurücksetzen und aktualisieren eines UBNT AP

Um einen Accesspoint von Ubnt/Unifi zurückzusetzen kann wie folgt vorgegangen werden. Ich beschreibe hier einmal das zurücksetzen und anschliessend das aufspielen einer neuen Firmware mittels ssh.

Zuerst machen wir den Accesspoint stromlos. Anschliessend drücken wir den Reset-Pin und halten diesen gedrückt während wir den AP wieder mit Strom versorgen. Nach ca. 10 Sekunden sollte man den Reset-Pin los lassen. Die LED am Accesspoint hören kurz auf zu leuchten.
Während des Neustarts sollte man das Gerät nicht ausschalten!

Nach dem Reset hat der Accesspoint die IP Adresse 192.168.1.20 sofern im Netz kein DHCP läuft. Benutzername/Passwort lautet: ubnt/ubnt .

Unter dem Downloadportal von Unifi ( https://www.ui.com/download/ ) kann man sich z.B. mit wget eine aktuelle Firmware passend zum eigenen Produkt herunter laden. Dieses kann man anschliessend mittels scp auf den Accresspoint speichern.

scp BZ.ar7240.v4.0.15.9872.181229.0259.bin ubnt@192.168.1.20:/tmp/fwupdate.bin

Nach dem Upload kann man sich mittels ssh aus den Accesspoint Verbindung und folgenden Befehl eingeben:

syswrapper.sh upgrade2 &

Nach dem Neustart ist die Firmware aktuell.

Termux: Nützliche Pfade in der Termux Terminalemulation

Auf meinem Android Handy (zur Zeit Oneplus 3T Midnight Black) habe ich Termux installiert um eine Terminalemulation für unterwegs zu haben.

Bei dieser Terminalemulation sind die Pfade „natürlich“ unterschiedlich als zu einer „normalen“ Bash. Hier mal ein paar nützliche Pfade die ich bisher benötigt habe:

/etc -> /data/data/com.termux/files/usr/etc/
/etc/profile -> /data/data/com.termux/files/usr/etc/profile
/etc/motd -> /data/data/com.termux/files/usr/etc/motd
/bin -> /data/data/com.termux/files/usr/bin/
~ -> /data/data/com.termux/files/home
SD-Karte/Handyspeicher -> /sdcard
#!/bin/bash -> #!/data/data/com.termux/files/usr/bin/bash