ssh scanner ärgern

Posted on Mo 17 Januar 2022 in Computer & Electronics

Eigentlich schützt Euch ja die Firewall in der Fritzbox, oder was auch immer Ihr für einen Router habt, vor unliebsamen Zugriffen aus dem großen bösen Internet. Aber was, wenn ich selber so ein klitzekleines Bisschen Zugriff von außen haben will? Z.B. über ssh? Na ist ja nicht so tragisch – dann muss man halt eine Portfreigabe im Router erstellen und aufpassen, dass der sshd vernünftig konfiguriert ist. Ich deaktiviere standardmäßig root-logins und lasse nur key-authentication zu. Also ist es nix mit Passworte durchprobieren.

Erwartungsgemäß probieren immer wieder böse Buben, ob ich nicht vielleicht ein dusseliges Passwort verwende, oder vergessen habe, irgendeinen Default-login zu deaktivieren:

❯ grep "Invalid user" /var/log/auth.log
Jan 15 00:21:35 hal sshd[185621]: Invalid user test from 107.189.1.92 port 46106
Jan 15 00:21:36 hal sshd[185626]: Invalid user ubuntu from 107.189.1.92 port 46734
Jan 15 00:21:36 hal sshd[185628]: Invalid user test from 107.189.1.92 port 47018
Jan 15 00:21:37 hal sshd[185632]: Invalid user postgres from 107.189.1.92 port 47552
Jan 15 00:21:38 hal sshd[185636]: Invalid user ansible from 107.189.1.92 port 49096
Jan 15 00:21:38 hal sshd[185638]: Invalid user oracle from 107.189.1.92 port 49356
Jan 15 04:00:30 hal sshd[190959]: Invalid user admin from 185.217.1.246 port 15521
Jan 15 04:01:41 hal sshd[190985]: Invalid user 0 from 185.217.1.246 port 29103
Jan 15 04:02:37 hal sshd[191037]: Invalid user !root from 185.217.1.246 port 53051
Jan 15 06:58:18 hal sshd[195374]: Invalid user test from 209.141.35.132 port 34914
Jan 15 06:58:21 hal sshd[195379]: Invalid user ubuntu from 209.141.35.132 port 37472
Jan 15 06:58:22 hal sshd[195381]: Invalid user test from 209.141.35.132 port 38736
Jan 15 11:51:10 hal sshd[203732]: Invalid user admin from 36.110.228.254 port 18399
Jan 15 11:51:15 hal sshd[203736]: Invalid user admin from 36.110.228.254 port 41074
Jan 15 12:07:03 hal sshd[204138]: Invalid user admin from 185.246.130.20 port 12404
Jan 15 12:07:12 hal sshd[204145]: Invalid user 0 from 185.246.130.20 port 28684
Jan 15 12:07:18 hal sshd[204147]: Invalid user !root from 185.246.130.20 port 17496
Jan 15 12:26:48 hal sshd[204774]: Invalid user test from 205.185.120.140 port 53702
Jan 15 12:26:50 hal sshd[204778]: Invalid user ubuntu from 205.185.120.140 port 55166
Jan 15 12:26:52 hal sshd[204780]: Invalid user test from 205.185.120.140 port 56554
Jan 15 12:26:54 hal sshd[204785]: Invalid user postgres from 205.185.120.140 port 58614
Jan 15 12:26:56 hal sshd[204789]: Invalid user ansible from 205.185.120.140 port 32904
Jan 15 13:08:20 hal sshd[205817]: Invalid user test from 107.189.14.180 port 45476
Jan 15 13:08:21 hal sshd[205821]: Invalid user ubuntu from 107.189.14.180 port 45780
Jan 15 13:08:21 hal sshd[205823]: Invalid user test from 107.189.14.180 port 45972
Jan 15 13:08:21 hal sshd[205827]: Invalid user postgres from 107.189.14.180 port 46282
Jan 15 13:08:22 hal sshd[205831]: Invalid user ansible from 107.189.14.180 port 46590
Jan 15 13:08:22 hal sshd[205833]: Invalid user oracle from 107.189.14.180 port 46756
Jan 15 13:25:26 hal sshd[206276]: Invalid user  from 64.62.197.122 port 53472
Jan 15 14:53:57 hal sshd[208592]: Invalid user test from 107.189.29.142 port 58866
Jan 15 14:53:58 hal sshd[208596]: Invalid user ubuntu from 107.189.29.142 port 59282
Jan 15 14:53:58 hal sshd[208598]: Invalid user test from 107.189.29.142 port 59418
Jan 15 14:53:58 hal sshd[208602]: Invalid user postgres from 107.189.29.142 port 59722
Jan 15 14:53:59 hal sshd[208606]: Invalid user ansible from 107.189.29.142 port 60190
Jan 15 14:53:59 hal sshd[208608]: Invalid user oracle from 107.189.29.142 port 60416
Jan 15 14:58:44 hal sshd[208736]: Invalid user admin from 51.89.77.27 port 41136
Jan 15 14:58:44 hal sshd[208738]: Invalid user admin from 51.89.77.27 port 41174
Jan 15 15:20:29 hal sshd[209298]: Invalid user pi from 71.187.69.52 port 37960
Jan 15 15:20:29 hal sshd[209299]: Invalid user pi from 71.187.69.52 port 37964
Jan 15 15:52:18 hal sshd[210060]: Invalid user user from 94.255.228.237 port 36390
Jan 15 15:52:22 hal sshd[210062]: Invalid user admin from 101.205.144.60 port 37998
Jan 15 15:52:28 hal sshd[210084]: Invalid user support from 58.22.132.50 port 40725
Jan 15 15:52:30 hal sshd[210086]: Invalid user User from 136.52.3.49 port 57176
Jan 15 15:52:33 hal sshd[210090]: Invalid user admin from 96.38.146.117 port 52568
Jan 15 15:52:35 hal sshd[210093]: Invalid user admin from 70.163.218.23 port 56940
Jan 15 15:52:39 hal sshd[210097]: Invalid user admin from 178.115.225.144 port 48076
Jan 15 15:52:41 hal sshd[210099]: Invalid user admin from 72.175.211.181 port 42469
Jan 15 15:52:43 hal sshd[210102]: Invalid user admin from 201.173.250.21 port 57601
Jan 15 15:52:50 hal sshd[210104]: Invalid user admin from 122.96.238.19 port 59202
Jan 15 15:52:54 hal sshd[210106]: Invalid user admin from 101.205.151.22 port 44024
Jan 15 15:52:59 hal sshd[210110]: Invalid user engineer from 124.88.248.142 port 40133
Jan 15 15:53:07 hal sshd[210117]: Invalid user squid from 177.99.235.37 port 45643
Jan 15 15:53:09 hal sshd[210119]: Invalid user admin from 45.20.25.125 port 36426
Jan 15 15:53:12 hal sshd[210122]: Invalid user ubnt from 172.115.148.192 port 55202
Jan 15 15:53:18 hal sshd[210124]: Invalid user telecomadmin from 45.23.234.228 port 59974
Jan 15 15:53:20 hal sshd[210126]: Invalid user <empty> from 104.157.37.95 port 53962
Jan 15 15:53:21 hal sshd[210128]: Invalid user <empty> from 2.202.216.226 port 34346
Jan 15 16:21:42 hal sshd[210880]: Invalid user pi from 93.96.81.152 port 51342
Jan 15 16:21:43 hal sshd[210882]: Invalid user pi from 93.96.81.152 port 51350
Jan 15 17:40:25 hal sshd[212791]: Invalid user test from 209.141.40.109 port 49130
Jan 15 17:40:28 hal sshd[212795]: Invalid user ubuntu from 209.141.40.109 port 51232
Jan 15 17:40:29 hal sshd[212797]: Invalid user test from 209.141.40.109 port 52306
Jan 15 17:40:32 hal sshd[212801]: Invalid user postgres from 209.141.40.109 port 54444
Jan 15 17:40:35 hal sshd[212824]: Invalid user ansible from 209.141.40.109 port 56526
Jan 15 20:51:35 hal sshd[217570]: Invalid user ubnt from 171.247.46.2 port 18441
Jan 15 20:52:23 hal sshd[217642]: Invalid user admin from 45.141.84.10 port 6463
Jan 15 20:52:29 hal sshd[217652]: Invalid user 0 from 45.141.84.10 port 45173
Jan 15 20:52:33 hal sshd[217656]: Invalid user !root from 45.141.84.10 port 19301
Jan 15 20:52:48 hal sshd[217678]: Invalid user admin from 171.247.46.2 port 20337
Jan 15 20:52:50 hal sshd[217681]: Invalid user admin from 171.247.46.2 port 20363
Jan 15 20:52:52 hal sshd[217683]: Invalid user admin from 171.247.46.2 port 20497
Jan 15 20:52:55 hal sshd[217685]: Invalid user admin from 171.247.46.2 port 20553
Jan 15 21:08:54 hal sshd[218095]: Invalid user ubnt from 82.15.89.15 port 40376
Jan 15 21:09:08 hal sshd[218183]: Invalid user admin from 82.15.89.15 port 41178
Jan 15 21:09:08 hal sshd[218185]: Invalid user admin from 82.15.89.15 port 41206
Jan 15 21:09:09 hal sshd[218187]: Invalid user admin from 82.15.89.15 port 41210
Jan 15 21:09:09 hal sshd[218189]: Invalid user admin from 82.15.89.15 port 41234

77 Versuche in 24 Stunden – nicht schlecht. Und es wären eigentlich viel mehr, denn ich habe zudem noch fail2ban laufen, um die hartnäckigen Skripte in die Schranken zu weisen: nach ein paar Versuchen werden die entsprechenden IP Adressen geblockt:

❯ grep "Ban" /var/log/fail2ban.log
2022-01-15 00:21:38,387 fail2ban.actions        [721]: NOTICE  [sshd] Ban 107.189.1.92
2022-01-15 04:02:38,438 fail2ban.actions        [721]: NOTICE  [sshd] Ban 185.217.1.246
2022-01-15 11:51:15,822 fail2ban.actions        [721]: NOTICE  [sshd] Ban 36.110.228.254
2022-01-15 12:07:18,717 fail2ban.actions        [721]: NOTICE  [sshd] Ban 185.246.130.20
2022-01-15 12:26:57,248 fail2ban.actions        [721]: NOTICE  [sshd] Ban 205.185.120.140
2022-01-15 13:08:22,238 fail2ban.actions        [721]: NOTICE  [sshd] Ban 107.189.14.180
2022-01-15 14:53:59,716 fail2ban.actions        [721]: NOTICE  [sshd] Ban 107.189.29.142
2022-01-15 14:58:44,637 fail2ban.actions        [721]: NOTICE  [sshd] Ban 51.89.77.27
2022-01-15 17:40:35,500 fail2ban.actions        [721]: NOTICE  [sshd] Ban 209.141.40.109
2022-01-15 20:52:33,700 fail2ban.actions        [721]: NOTICE  [sshd] Ban 45.141.84.10
2022-01-15 20:52:55,733 fail2ban.actions        [721]: NOTICE  [sshd] Ban 171.247.46.2
2022-01-15 21:09:10,049 fail2ban.actions        [721]: NOTICE  [sshd] Ban 82.15.89.15

Mit diesen Maßnahmen fühle ich mich eigentlich ganz sicher.

Aber irgendwie wäre es lustiger, die Skript-Kiddies wenigstens ein bisschen zu ärgern. Und so habe ich mir endlessh installiert und lasse das auf Port 2222 lauschen. Im Router habe ich dann die Portfreigabe so eingerichtet, dass Anfragen auf Port 22 auf endlessh umgeleitet werden. Den echten ssh Port gebe ich dann auf einem anderen externen Port frei. Auf diese Weise dürfte der Großteil der ssh Anfragen bei endlessh landen.

Fritzbox Dialog für Portfreigabe: Port 22 (extern) auf Port 2222 (intern)

endlessh ist ein ssh tarpit – d.h. es nimmt Connection-Anfragen entgegen und tritt dann in einen quälend langsamen Dialog mit dem Client – bis dieser keine Lust mehr hat. Auf diese Weise wird quasi ein wenig Sand ins Getriebe der ssh Attacke gestreut. Wirklich viel bringt es nicht, spricht aber das allzu menschliche Rachebedürfnis an.

Ich lass das jetzt mal eine Weile so laufen, bis mir eine noch unterhaltsamere Idee kommt.