sshd und andere Ports absichern
bsox 10.02.2015 - 10:28 2125 11
bsox
Schwarze Socke
|
fail2ban habe ich schon seit Jahren laufen und ebenso ein Script, dass ganze IP Netze per iptables aussperrt. Letztens habe ich aber eine, meiner Meinung nach elegantere Methode entdeckt, um nicht zig Firewall Statements laden zu müssen. Im OSI stack ziehen die Firewall Regeln zwar früher, aber für den Heimgebrauch sollte hosts.deny|hosts.allow ausreichen. geolockip und hosts.deny, beziehungsweise hosts.allowIch brauch ja wirklich nicht ssh Zugriff aus der ganzen Welt, sondern im allgemeinen nur aus Österreich. Daher kann ich im Regelfall ruhig alle anderen Länder aussperren: hosts.deny sshd: ALL
hosts.allow sshd: 192.168.xx.0/255.255.255.0, 10.0.xx.0/255.255.255.0 # LAN zu Hause und VPN range
sshd: ALL: aclexec /tools/sshfilter.sh %a # geolockip helper file
In der Theorie könnte ich auch nur das Netz von der Firma, meinen Handyprovider und vielleicht UPC, Kabsi zulassen. Aber das wäre vielleicht zu viel des Guten und schränkt mich genau dann ein wenn ich rasch und unkompliziert einen ssh Zugang brauche. sshfilter.sh #!/bin/bash
# UPPERCASE space-separated country codes to ACCEPT
[b]ALLOW_COUNTRIES="AT" #nur Österreich darf ssh spielen[/b]
if [ $# -ne 1 ]; then
echo "Usage: `basename $0` <ip>" 1>&2
exit 0 # return true in case of config issue
fi
COUNTRY=`/usr/bin/geoiplookup $1 | awk -F ": " '{ print $2 }' | awk -F "," '{ print $1 }' | head -n 1`
[[ $COUNTRY = "IP Address not found" || $ALLOW_COUNTRIES =~ $COUNTRY ]] && RESPONSE="ALLOW" || RESPONSE="DENY"
if [ $RESPONSE = "ALLOW" ]
then
exit 0
else
logger "$RESPONSE sshd connection from $1 ($COUNTRY)"
exit 1
fi
Und dann natürlich noch die geo-ip Datenbank regelmäßig per cron aktualisieren. Alles beschrieben unter: http://www.axllent.org/docs/view/ss.../#lock-down-sshWie sichert ihr eure im Internet exponierten (ssh) daemons ab? Oder stören euch die allgegenwärtigen Portscans und Loginversuche nicht? Ist die oben beschriebene Methode doch nicht zielführend und sollte ich bei den Firewall Regeln bleiben? So könnte ich halt einfach zusätzliche Ports mit Hilfe der hosts.* Configs "aus der Schusslinie nehmen".
|
AdRy
Auferstanden
|
ssh login per passwort deaktivieren und (nur) per private key-file einloggen. Das file muss man eben backupen sonst kommst nie wieder rein falls du es verlierst. Ist imho eine standardmethode.
|
-=Willi=-
The Emperor protects
|
Mach ich auch so. Bei irgendwelche unwichtigen VMs kann man sich als root aber nur mit einem Key einloggen. Bei den "wichtigeren" VMs kann man sich nur als user+key einloggen und muss dann `sudo` benutzen (sudo-File is dann auch angepasst welche Befehle ausgeführt werden dürfen) oder was auch immer. Das sind aber alles private VMs.
Mit IP-Sperren ersparst du fail2ban aber auf jeden Fall schon mal Arbeit schätz ich. Für mich ist allerdings Key-Only-Auth ausreichend. Manchmal ändere ich noch den Standardport von 22 auf irgendwas > 16.000 damit ich nicht direkt im Schussfeld von Bots stehe.
|
othan
Layer 8 Problem
|
Port geändert und Login nur noch für 2 User erlaubt.
Damit konnte ich das Thema von ein paar hundert erfolglosen Login Versuchen am Tag auf eine Handvoll Versuche pro Woche entschärfen.
Für die Private-Key Geschichte bin ich zu "faul" :/
|
Luka
Administrator...
|
Das Script /tools/sshfilter.sh läuft als root. Ich kann mir nicht vorstellen, dass das deinen Server sicherer macht. Btw: OpenSSH 6.7 hat die Unterstützung für tcpwrappers/libwrap (hosts.deny, hosts.allow) entfernt.
|
COLOSSUS
AdministratorGNUltra
|
Für die Private-Key Geschichte bin ich zu "faul" :/ Wtf? Dank libpam-ssh und agent-forwarding DAS Komfort-Feature ueberhaupt von SSH.
|
othan
Layer 8 Problem
|
Da ich mich häufiger von unterschiedlichen Rechnern aus einlogge, muss ich dazu jedes mal schauen, dass ich das Keyfile zur Hand habe. Dazu kommt, dass ich dauernd USB Sticks verliere. Username und Kennwort habe ich dagegen immer dabei. Deswegen "faul"
|
wergor
connoisseur de mimi
|
bin ich ausserhalb meines lan muss ich erst eine vpn verbindung aufbauen, port 22 lässt mein router nicht durch.
|
GrandAdmiralThrawn
XP Nazi
|
Den Key auf einem USB Stick? Da graut mir, liegen überall in der Gegend deine Keys rum und kannst erst wieder dauernd neue Keypairs erzeugen?
Also ich hab keine Keys auf mobilen Geräten, das ist mir zu haarig, nur auf stationären Maschinen nutze ich das. Unterwegs Passwort.
Port umstellen um dem ärgsten Gehämmer auszuweichen und halt die fail2ban Tarpit in meinem Fall.
|
othan
Layer 8 Problem
|
Den Key auf einem USB Stick? Da graut mir, liegen überall in der Gegend deine Keys rum und kannst erst wieder dauernd neue Keypairs erzeugen? Solangs den Truecrypt Container nicht aufbringen, sollten die Daten sicher sein.
|
GrandAdmiralThrawn
XP Nazi
|
Ah ok, verstehe.
So machts natürlich Sinn.
|
Valera
Here to stay
|
außerhalb des eigenen lans nur per vpn bzw port geändert (ersteres ist mir aber lieber) root login verboten login nur für 2 user erlaubt login nur per private-key-file private-key-file nur auf verschlüsselten systemen gespeichert
|