Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY

Řeším v korporátu přístup z Win10 stanice na Linux server přes SSH.
Nastavení sshd na straně serveru je celkem jasné, přístup certifikátem, omezení na uživatele, firewal, etc.

Z Win10 (pokud se nepletu) můžu použít PuTTY nebo WSL. Otázka zní, zda je vůbec možné rozumně zajistit, aby přístupové údaje nebylo možné ukrást/zneužít pokud nejsem jediný správce W10 stanice.
A pokud to nejde na straně Win10, nešlo by použít nějakou sekundární autentizaci na straně Linuxu (teď neuvažuji, že ve Win bude instalován keylogger).
Jinou možnost kontaktovat Linux server (ověření postranním kanálem, SMS,..) neexistuje.
PMD85 -> Didaktik Gama -> PC XT -> ... x86/x51/ARM
Basic -> Turbo Pascal -> C++ -> Turbo ASM -> C# -> PHP -> Bash :-)


M_D

  • ***
  • 109
    • Zobrazit profil
    • E-mail
Re:Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY
« Odpověď #1 kdy: 28. 10. 2020, 09:58:41 »
Nu, možno použít nějaký TOTP jako druhý kanál, pokud bych chtěl řešit sekundární ověřovací kanál. Je otázkou, kde ty servery jsou a kolik jich je, dle toho pak plyne jak gigo OTP server část použít a případně i pro co dalšího, než je jen SSH - např LinOTP. (U klienta třeba FreeOTP do mobilu, jsou implemeetace pro jablko i androuše, pokud nechci vyloženě specializovanou krabičku typu Feitian C-200.)
Druhý pohled na věc je, zda by nešel použít Kerberos? Pokud ta W10 stanice je v nějaké korporátní doméně, pokud pro ten linux můžu vygenerovat doménový SPN a patřičný keytab, tak pak můžu ze stanice používat SSO a neřešit, co když mi to někdo lokálně ukradne (v tom případě ukradne i ty W10 přihlašovací údaje, pokud se používá jméno/heslo do woken). A pak jen v AD nastavím, zda pro daný linux server a/nebo uživatele případně povolím i forward Kerberos ticketů dál do linux světa pro případné pokračování Kerberosem někam dál.

Re:Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY
« Odpověď #2 kdy: 28. 10. 2020, 10:20:00 »
Přiznávám, že část těchto zkratek mi nic moc neříká, ve Win/AD se nijak hluboce neorientuju  :-[
Situace je taková, že v této době řeším HomeOffice a do práce mám zřízený VPN přístup pouze na pracovní Win stanici. Ovšem mimo to tam mám "svoje" Linux servery a stanice, které používám a spravuju výhradně ve vlastní režii. Řeším jak se k nim bezpečně protlouct z widlí. Linux subsystém je izolován v interní podsíti a není zvenku přístupný, ani nemá sám přístup na net.
PMD85 -> Didaktik Gama -> PC XT -> ... x86/x51/ARM
Basic -> Turbo Pascal -> C++ -> Turbo ASM -> C# -> PHP -> Bash :-)

Re:Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY
« Odpověď #3 kdy: 28. 10. 2020, 10:20:16 »
Jediná možnost, pokud nevěříte klientské stanici, je použít autentizaci jednorázovým heslem. Na druhou stranu, pokud té stanici opravdu tak nevěříte – co když tam bude podvržené Putty, které si počká, až se přihlásíte, a pak na pozadí provede škodlivý kód?

Re:Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY
« Odpověď #4 kdy: 28. 10. 2020, 10:59:34 »
Není pravděpodobné, že se někdo ve firmě bude pokoušet instalovat hacky, nebo spyware. Spíš mi jde o to, aby soukromé klíče a hesla necestovaly kam nemají a nemohl si je vytáhnout někdo kdo má přístup.

Napadá mě ještě jedna triviální možnost.. Co se přihlásit prostě na pomocný účet bez oprávnění a pak si je lokálně eskalovat přes su? Předpokládám, že to bude těžko zachytitelné přes VPN. Při úniku prvotního klíče/hesla se taky nic neděje.
PMD85 -> Didaktik Gama -> PC XT -> ... x86/x51/ARM
Basic -> Turbo Pascal -> C++ -> Turbo ASM -> C# -> PHP -> Bash :-)


Re:Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY
« Odpověď #5 kdy: 28. 10. 2020, 11:04:47 »
Z Win10 není možnost jen PuTTY a WSL. Windows 10 mají nativního klienta (i SSH server).
Na druhou otázku je jednoduchá odpověď: pokud máte uložené přístupové údaje, pak vždy existuje cesta, třeba náročná, jak se k nim dostat. Na Vás je, abyste poměřil rizika, že se to stane, a jaké úsilí by musel někdo jiný ve firmě vynaložit, aby se mu to povedlo.

Re:Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY
« Odpověď #6 kdy: 28. 10. 2020, 12:04:43 »
Pokud se na SSH server uživatel může přihlásit pouze pomocí privátního klíče, stačí, aby tento klíč byl chráněn dostatečně složitým heslem, které nebude na stroji uloženo.

Asi by bylo možné najít bezpečnostní řešení, které vám dovolí definovat přístupy na bázi aplikací (ne uživatelů a úrovní integrity). Pár jsem jich v minulosti viděl, ale již je tomu dost let.

Re:Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY
« Odpověď #7 kdy: 28. 10. 2020, 12:19:22 »
Spíš mi jde o to, aby soukromé klíče a hesla necestovaly kam nemají a nemohl si je vytáhnout někdo kdo má přístup.
Soukromý klíč bude tam, kam ho uložíte. Pokud ho neuložíte do uživatelského profilu, který se může ukládat i na síti, ale klíč bude uložený jen na lokálním počítači, nikam cestovat nebude. Heslo se neukládá nikam, to jenom napíšete při přístupu ke klíči.

M_D

  • ***
  • 109
    • Zobrazit profil
    • E-mail
Re:Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY
« Odpověď #8 kdy: 28. 10. 2020, 21:44:46 »
To si z domácího počítače nahodíš VPNku do roboty, pak tím pustíš RDP na nějaký W10 stroj a na něm chceš pouštět SSH k tomu hejnu interních linuxů?
Pokud ano, tak mi to nasazení řešení s GSSAPI/Kerberos vychází nejrozumněji. Nebude při něm tvých soukromých citlivých autorizačních dat potřeba a nikde uloženo více, než je použito aktuálně. Putty to umí, jen potřebuješ pro ty linuxy zíkat systémové Kerberos klíče s příslušným SPN ve stejné doméně, v které máš účet na té W10 stanici. V podstatě, pokud na těch linuxech máš třeba i Sambu a tu začlenuješ do AD korporátní domény, tak během toho se patřičně vše vytvoří, pokud je Samba nastavena, aby používala systémový keytab (/etc/krb5.keytab). Nebo ti admin AD domény může to vygenerovat na ADčku a jen předat pro jednotlivé linux stroje, pokud se Samba nepoužívá.
Jiná možnost je, že použiješ certifikát uložený na čipové kartě. Mám čtečku u sebe, v ní kartu na které mám certifikát pro SSH, pro to RDP spojení do práce povolíš zpětný přístup na čtečku čipové karty a tam musíš použít variantu putty agenta s podporou čipové karty (když jsme to používali, tak to nebylo oficiální součástí Putty, byl to projekt zvlášť -  PuTTY SC, jestli je to už v něm přímo teď, to nevím), takže certifikát máš u sebe a Putty si umí skrz toho agenta a kanál v RDP vyřídit autorizaci přes čipovku u tebe doma, takže tvůj tajný klíč neopouští bezpečí tvého domácího atomového krytu. :-)

Re:Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY
« Odpověď #9 kdy: 28. 10. 2020, 22:32:27 »
Řeším v korporátu přístup z Win10 stanice na Linux server přes SSH.
Nastavení sshd na straně serveru je celkem jasné, přístup certifikátem, omezení na uživatele, firewal, etc.

Z Win10 (pokud se nepletu) můžu použít PuTTY nebo WSL. Otázka zní, zda je vůbec možné rozumně zajistit, aby přístupové údaje nebylo možné ukrást/zneužít pokud nejsem jediný správce W10 stanice.
A pokud to nejde na straně Win10, nešlo by použít nějakou sekundární autentizaci na straně Linuxu (teď neuvažuji, že ve Win bude instalován keylogger).
Jinou možnost kontaktovat Linux server (ověření postranním kanálem, SMS,..) neexistuje.
Já to řeším, co se týče ssh tak, že mám jeden, dobře zabezpečený linux přes VPN a z něj skáču na ostatní. Ručně, ale šlo by to i zprostředkovat.
Tedy v tvých intencích: dobře zabezpečená Windows 10 stanice a z ní místo deseti Kerberosů nebo čehokoliv vybrat jeden linux z těch tvých a pak z něj dál, ev. udělat ten ssh server na těch vidlích. Jak psali ostatní, ukrást private key zabezpečený dobrou passphrase  nikomu nepomůže. Windows nerozumím, ale řekl bych, že se to dá udělat i tak, aby ti jiný admin do souboru nečučel.

Re:Bezpečnost přístupu na SSH z Win10 přes WSL / PuTTY
« Odpověď #10 kdy: 29. 10. 2020, 06:15:11 »
Uz nejakou dobu sshd umoznuje nastavit prihlaseni pomoci klice A hesla. Ve smyslu, ze pro prihlaseni je treba zadat oboje, jinak se neprihlasite (ale samozrejme zaheslovany klic je lepsi, pokud se obavate kompromitace klice).
Treba v Centosu7 staci do konfiguraku pripsat:

AuthenticationMethods publickey,password
PubkeyAuthentication yes
PermitEmptyPasswords no