Odpověď Ne, není to triviálně nejisté, ale stále to není ideální.
Spravuji několik instancí AWS a zatímco většina z nich má skupiny zabezpečení omezující příchozí přístup SSH, existuje obchodní potřeba, aby jeden z nich naslouchal na portu 22 pro všechna připojení.
Jako takový je tento hostitel každý den zasažen tisíci skriptovaných (skiddy) připojení. To je při přihlášení označeno zprávami MOTD jako
Poslední přihlášení: Pá 19. června 23:17:36 UTC 2020 na bodech / 2 Poslední neúspěšné přihlášení: So 27. června 01:00:44 UTC 2020 od 120.70.103.239 na ssh: notty Od posledního úspěšného přihlášení došlo k 21655 neúspěšným pokusům o přihlášení. Host1234 ~ # dateSat 27. června 01:12:18 UTC 2020
Takže to je zhruba 2500 denně sto za hodinu. Určitě většina z nich bude jednoduše automatizovaná sonda, ale co se stane, když bude nalezena a zneužita zranitelnost nulového dne?
Omezením expozice snížíte riziko.
Řešení zahrnují jedno / některé / všechny:
- Použít skupiny zabezpečení AWS k povolení připojení pouze ze specifických IP adres na internetu
- Použít VPN řešení a vyžadují, aby SSH bylo provedeno přes VPN. VPN může poslouchat všechny zdroje, mít certifikáty a 2FA a obecně přidávat další vrstvy. OpenVPN funguje dobře, nebo existuje několik nabídek AWS, které provádějí stejný úkol.
- Přesuňte SSH na jiný port - není to žádné přidané zabezpečení, ale tím se sníží počet pokusů o připojení ssh, a proto hluk. Kdokoli, kdo si stojí za svou sůl, prohledá stejně všechny porty, nejen výchozí.
- Pokud MUSÍTE poslouchat SSH promiskuitně, prozkoumejte řešení jako který přidá zdroje do
/etc/hosts.deny
, pokud selžou více než Xkrát za Y minuty, a může je po nějakém dni znovu odstranit. - Prozkoumejte IPv6 - jako změnou naslouchacího portu IPv6 prodlužuje čas potřebný na skenování, takže kluzáci mají více prostoru pro vyhledávání. Prohledávání v6 se však stále děje.
Sshing-in zařízení je pro mě hardware, takže mají platný uživatelský certifikát a vždy se úspěšně ověřují. Napsali jsme skript, který prohledá / var / log / secure
a vyhledá výraz „uživatel nebyl nalezen“ nebo podobný a okamžitě tyto zdroje trvale přidá do souboru hosts.deny.
Uvažovali jsme o tom, že bychom to rozšířili tak, aby blokovaly celé podsítě na základě vyhledávání, ale to ještě nebylo potřeba.
Aktuálně blokujeme:
host1235 ~ # grep -ci all /etc/hosts.*/etc/hosts.allow:79/etc/hosts.deny:24292
Nebudu sdílet seznam špatných zdrojových IP adres , protože některá místa považují adresy IP za osobně identifikovatelné informace (nebo PII).
Upozorňujeme, že naše adresy IP Office jsou v hosts.allow
, které trumfují hosts.deny
soubor, takže pokud někdo selže při přihlášení z kanceláře, pak to nezablokuje lidské uživatele.
Požádejte o vysvětlení - vím, že jsem dal mnoho detailů rukou.