Portál AbcLinuxu, 31. května 2024 07:28


Dotaz: SSH a DDoS - kex_exchange_identification

22.9.2023 19:53 Petr
SSH a DDoS - kex_exchange_identification
Přečteno: 460×
Odpovědět | Admin
Ahoj.
Od rána mě trápí masivní útok na SSH vedený na můj server.
Projevuje se to tak, že jednou se přihlásím a pak třeba 4x ne. Když se připojení nezdaří, dostanu chybovou hlášku viz. níže. Server a SSH je chráněn přes fail2ban.
kex_exchange_identification: read: Connection reset by peer
Connection reset by 195.47.xxx.yyy port 22
Měl by někdo nápad, co s tím a jak případně a lépe bojovat ?
Fail2Ban má u SSH aktuálně nastavený mode = ddos.

Díky,
Petr
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.9.2023 21:06 ewew | skóre: 40 | blog: ewewov_blog
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Odpovědět | | Sbalit | Link | Blokovat | Admin

Najjednoduchšie riešenie je zablokovať ip rozsah z ktorého ide útok. Týmto zamedzíš aplikácii limitu na neoverené súčasne pripojenia MaxStartups. Môžeš tiež znížiť čas po ktorý ssh čaká na úspešne pripojenie LoginGraceTime Ďalej je možnosť nahlásiť dané ip hostingu alebo IPS cez ktorého je server pripojený.

Nenapísal si akou metódou sa prihlasuješ. Heslo, kľúč alebo certifikát ?

Root v linuxe : "Root povedal, linux vykona."
22.9.2023 21:21 X
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nekonecny pribeh. a] Nepouzivej port 22. NIKDY! + POUZE prihlasovani klicem(ed25519)!, nebo VPN(wireguard,ipsec,openvpn)..
22.9.2023 21:39 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Inak s tou VPN je to dobrý vtip. To len prenesie tento problém zo SSH na VPN.
22.9.2023 21:59 X
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Brute-force na VPN? Jak? Klidne se necham poucit.
23.9.2023 08:23 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Tak isto, zahltenie požiadavkami na pripojenie (skúšanie hesiel alebo kľúčov) až sa prípojnému bodu vyčerpajú zdroje.
22.9.2023 21:36 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bežné chovanie botnetu ktorý skúša či ukradnuté kľúče pasujú do tvojich dverí. Máš veľa internetových rozsahov z ktorých sa pripájaš na ten server? Ak nie, tak to obmedz firewallom cez geofence.
23.9.2023 11:51 Petr
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Odpovědět | | Sbalit | Link | Blokovat | Admin
No, v podstatě jde o to, že na tom serveru běží webhosting. Pro upload / download souborů se používá SFTP. Autorizace pro SSH je pouze na úrovni SSH klíčů - tedy přes jméno a heslo se k SSH jako takovému nelze přihlásit. Autorizace pro SFTP přístup "běžných uživatelů" je přes jméno / heslo s následným chrootem.
cat /etc/ssh/sshd_config
Port 22
AddressFamily inet
SyslogFacility AUTH
LogLevel INFO
MaxAuthTries 3
MaxSessions 20
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
MaxStartups 1:30:100
AcceptEnv LANG LC_*

Subsystem sftp internal-sftp
AllowGroups group1 group2 group3

Match group group1
        ChrootDirectory /var/www/%u
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

Match group group2
        ChrootDirectory /var/www2/%u
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

...

A tady konfig Fail2Ban
cat /etc/fail2ban/jail.local
#
# JAILS
#

#
# SSH servers
#

[sshd]

# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
mode   = ddos
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
enabled = true


[dropbear]

port     = ssh
logpath  = %(dropbear_log)s
backend  = %(dropbear_backend)s


[selinux-ssh]

port     = ssh
logpath  = %(auditd_log)s
Fail2Ban jako takový funguje, viz...
iptables -L -v -n
...
Chain f2b-sshd (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     all  --  *      *       106.52.183.129       0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.52.181.142       0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.52.145.100       0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.52.125.223       0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.52.107.254       0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.52.107.123       0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.51.3.214         0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.51.168.98        0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.37.72.112        0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.252.20.88        0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.251.237.171      0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.248.231.66       0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.246.224.154      0.0.0.0/0            reject-with icmp-port-unreachable
    0     0 REJECT     all  --  *      *       106.241.54.211       0.0.0.0/0            reject-with icmp-port-unreachable
...
Nějaký nápad ?

Jak doporučuje "X" - bohužel, v tuto chvíli nemohu změnit port SSH a ani SSH omezit na určitou skupinu IP.
Bohužel, potřebujeme to mít v tuto chvíli vystavené do internetu.

Díky,
Petr
23.9.2023 12:36 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
A okolo toho riadku s danou IP je čo?

U mňa je tam obvykle napr:
no matching key exchange method found. Their offer: (prastaré blbiny)
Je to kvôli používaniu starých sftp klientov.
23.9.2023 12:41 Petr
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
nezaměňujte prosím s
kex_exchange_identification
23.9.2023 12:46 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Ak chceme vyriešiť následok, potrebujeme poznať príčinu.

Tá príčina je obvykle o kúsok skôr ako sa objaví následok. Následok bol že sa klient odpojil u mňa po cca 5 sekundách po pokuse o výmenu kľúčov nepodporovaným spôsobom.

To asi nebol dôvod prečo som sa pýtal čo je v logu okolo toho. Že nie? A že sa to tak nikdy nerobí že by sa odstránila príčina aby zmizli jej následky?

23.9.2023 14:18 X
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Palati druha varianta. Instalujte VPN a to SSH zruste a budete mit klid. Vas boj.
24.9.2023 11:35 Petr
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyřešeno úpravou konfigurace SSH a Fail2Ban.

Petr
24.9.2023 12:04 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
mode normal namiesto ddos?
24.9.2023 13:37 X
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Jak?
24.9.2023 14:00 Petr
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
Odpovědět | | Sbalit | Link | Blokovat | Admin
sshd_config
...
MaxSessions 50
MaxStartups 100
Match Address **************
...
jail.local
...
bantime  = 1440m
findtime  = 30m
maxretry = 3
...
24.9.2023 19:28 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: SSH a DDoS - kex_exchange_identification
To zníženie maxretry je dosť rozumné. Boti stále rátajú s 5, a distribuujú pokusy.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.