Hogyan lehet keményíteni egy SSH szervert?

119

Milyen intézkedéseket kell tennie annak érdekében, hogy az SSH szerverem biztonsága teljesen áthatolhatatlan legyen?

Ez lesz a közösségi wiki a kezdetektől, így megtekintheti, mit tesz az emberek a szervereik védelmére.

    
készlet LassePoulsen 30.01.2015 17:27
forrás

13 válasz

21

Készítse el az sshd blokk kliens IP-címét, amely nem tudta megadni a helyes bejelentkezési adatokat " DenyHØsts " képes hatékonyan elvégezni ezt a munkát. Ezt a Linux ládájára telepítettem, amelyek valamilyen módon elérhetők a nagy külsőtől.

Ez biztosítja, hogy az SSHD-re vonatkozó erőhatások nem lesznek hatékonyak, de ne feledkezzen meg (!), így elfelejtheti a jelszavát. Ez problémát okozhat egy távoli kiszolgálón, amelyhez nem fér hozzá.

    
válasz adott LassePoulsen 10.06.2016 23:17
forrás
102

Használjon nyilvános / privát kulcspárokat a jelszavak helyett a hitelesítéshez.

  1. Hozzon létre egy jelszó-védett SSH kulcsot minden olyan számítógéphez, amelyhez hozzá kell férni a kiszolgálóhoz:

    ssh-keygen

  2. A nyilvános kulcsú SSH-hozzáférés engedélyezése a megengedett számítógépekről:

    Másolja át a~/.ssh/id_rsa.pub tartalmát minden egyes számítógépen a~/.ssh/authorized_keys egyéni soraira a kiszolgálón, vagy futtassa assh-copy-id [server IP address] -ot minden olyan számítógépen, amelyhez hozzáférést biztosít (a szerver jelszavát a prompt).

  3. Jelszó letiltása SSH hozzáférés:

    Nyissa meg a/etc/ssh/sshd_config -ot, keresse meg a#PasswordAuthentication yes kifejezést, és változtassa megPasswordAuthentication no -ra. Indítsa újra az SSH kiszolgáló démont a változás (sudo service ssh restart) alkalmazására.

A kiszolgálón az SSH egyetlen lehetséges módja, hogy olyan kulcsot használjon, amely megfelel egy sornak a~/.ssh/authorized_keys -ban. Ezzel a módszerrel az I nem törődnek a brute force támadásokkal, mert még akkor is, ha kitalálják a jelszavamat, el kell utasítani. Az állami / magántulajdonú kulcspár elkövetése nélkülözhetetlen a mai technológiával.

    
válasz adott Evan Kroske 08.06.2016 02:31
forrás
67

Javaslom:

  • A fail2ban használatával megakadályozhatja a nyers erő bejelentkezési kísérleteit.

  • Letiltja a bejelentkezést rootként SSH-n keresztül. Ez azt jelenti, hogy egy támadónak ki kellett találnia a felhasználónevet és a jelszót, ami nehezebbé tette a támadást.

    Add hozzáPermitRootLogin no -ot a/etc/ssh/sshd_config -hoz.

  • A felhasználók korlátozása, amelyek az SSH-t a kiszolgálóra korlátozhatják. Vagy csoportonként vagy csak meghatározott felhasználók számára.

    Add hozzáAllowGroups group1 group2 vagyAllowUsers user1 user2 -ot az SSH kiszolgálóra korlátozásának korlátozásához.

válasz adott Mark Davidson 08.06.2016 02:07
forrás
22

Más válaszok biztosítják a biztonságot, de van egy dolog, amit tehetünk, ami csöndesebbé teszi a naplóidat, és kevésbé valószínű, hogy kizárásra kerül a fiókodból:

Mozgassa a kiszolgálót a 22-es portról egy másikra. Vagy az átjárónál vagy a szerveren.

Ez nem növeli a biztonságot, de azt jelenti, hogy az összes véletlenszerű internetes szkenner nem fog felborítani a naplófájlokat.

    
válasz adott Douglas Leeder 08.06.2016 02:15
forrás
21

A két tényező hitelesítésének engedélyezése HOTP vagy TOTP . Ez elérhető 13.10-től.

Ez magában foglalja a nyilvános kulcsú hitelesítést a jelszavak hitelesítésénél, mint itt egy másik válasz, de azt is megköveteli, hogy a felhasználó igazolja, hogy magánkulcsán kívül rendelkezik a második tényezővel is.

Összefoglaló:

  1. sudo apt-get install libpam-google-authenticator

  2. Mindegyik felhasználó futtassa agoogle-authenticator parancsot, amely~/.google-authenticator -ot generál és segít a két faktoreszköz konfigurálásában (pl. a Google Hitelesítő Android-alkalmazásban).

  3. Edit/etc/ssh/sshd_config és állítsa be:

    ChallengeResponseAuthentication yes
    PasswordAuthentication no
    AuthenticationMethods publickey,keyboard-interactive
    
  4. Futtassonsudo service ssh reload -ot a/etc/ssh/sshd_config változásokhoz.

  5. A/etc/pam.d/sshd szerkesztése és a sor helyettesítése:

    @include common-auth
    

    a:

    auth required pam_google_authenticator.so
    

A különböző konfigurációs lehetőségekről részletesebben a blogbejegyzésem az elmúlt évben: Jobb két faktor ssh hitelesítés az Ubuntuban .

    
válasz adott Robie Basak 23.05.2017 00:29
forrás
19

Íme egy egyszerű feladat: telepítsd az ufw (a "egyszerű tűzfalat") és használd rá a bejövő kapcsolatok korlátozására.

A parancssorból írja be:

$ sudo ufw limit OpenSSH 

Ha az ufw nincs telepítve, hajtsa végre ezt és próbálja újra:

$ sudo aptitude install ufw 

Sok támadó megpróbálja használni az SSH kiszolgálón a brute-force jelszavakat. Ez csak 6 kapcsolatot engedélyez 30 másodpercenként ugyanarra az IP-címre.

    
válasz adott mpontillo 15.08.2010 00:45
forrás
12

Ha szeretnék valamilyen további biztonságot elérni, vagy az SSH kiszolgálókat bizonyos vállalati hálózatok mélyén szeretnék elérni, akkor rejtett szolgáltatás az anonimizálási szoftver Tor használatával.

  1. A Tor telepítése és az SSH szerver beállítása.
  2. Ellenőrizze, hogy az sshd csak alocalhost -on hallgat.
  3. Nyissa meg a/etc/tor/torrc -ot. Állítsa be aHiddenServiceDir /var/lib/tor/ssh és aHiddenServicePort 22 127.0.0.1:22 értéket.
  4. Nézd meg avar/lib/tor/ssh/hostname -ot. Van olyan név, mintd6frsudqtx123vxf.onion. Ez a rejtett szolgáltatás címe.
  5. Nyissa meg a (z)$HOME/.ssh/config szót, és adjon hozzá néhány sort:

    Host myhost
    HostName d6frsudqtx123vxf.onion
    ProxyCommand socat STDIO SOCKS4A:127.0.0.1:%h:%p,socksport=9050
    

Továbbá szükségem van Torra a helyi házigazdámra. Ha telepítve van, megadhatom assh myhost -ot, és az SSH megnyitja a kapcsolatot Toron keresztül. Az SSH kiszolgáló a másik oldalon csak a helyi hoszton nyitja meg portját. Tehát senki sem tud csatlakozni a "normál interneten" keresztül.

    
válasz adott qbi 08.06.2016 02:10
forrás
8

Van egy Debian adminisztrációs cikk ebben a témában. Ez magában foglalja az alapvető SSH kiszolgáló konfigurációt és a tűzfal szabályait is. Ez érdekes lehet egy SSH kiszolgáló keményítéséhez.

Lásd a cikket: Az SSH hozzáférésének biztonságos biztosítása .

    
válasz adott Huygens 12.10.2010 00:35
forrás
6

Az SSH keményedéshez való hozzáállásom összetett. A következő elemek a következőkben vannak: hogyan csinálom, a hálózat (k) legszélső határától a szerverekig.

    Az IDS / IPS-en keresztüli forgalom határszintű szűrése az ismert szolgáltatásszkennerekkel és aláírásokkal a blokklistában. Ezt Snort-ot a határokon átnyúló tűzfalon keresztül érhetem el (ez az én megközelítésem, a pfSense készülék). Néha ezt nem tehetem meg, például a VPS-kkel.

  1. Az SSH port (ok) tűzfal / hálózati szűrése. Kifejezetten csak bizonyos rendszereket tudok elérni az SSH szervereimbe. Ez vagy egy pfSense tűzfalon keresztül, a hálózatom határán vagy az egyes kiszolgálók tűzfalán, amelyek kifejezetten konfiguráltak. Vannak olyan esetek, amikor ezt nem tehetem meg (bár ez szinte soha nem történt meg, kivéve a privát toll-tesztelést vagy biztonsági vizsgálati laboratóriumi környezeteket, ahol a tűzfalak nem segítenek a dolgok tesztelésében.)

  2. A pfSense, vagy a határhíd NAT-ing a belső hálózaton, és az internetről és a rendszerektől elválasztva VPN-hozzáférés a kiszolgálókhoz . El kell érnie a VPN-t a hálózatokba, hogy elérjék a kiszolgálókat, mert ilyen módon nincs internetes port. Ez minden bizonnyal nem működik minden VPS-enként, de a # 2-vel együtt egy VPS lehet az "átjáró" VPN-vel a szerverre, majd engedélyezheti az IP-eket a többi dobozba. Így pontosan tudom, hogy mi lehet vagy nem tud SSH - az én egy dobozom, ami a VPN. (Vagy a pfSense mögött lévő otthoni hálózatomban a VPN-kapcsolatom, és én vagyok az egyetlen VPN-hozzáféréssel).

  3. Ahol a # 3 nem kivitelezhető, a fail2ban, amely 4 sikertelen kísérlet után blokkolva van, és blokkolja az IP-eket egy vagy több óra alatt egy tisztességes védelem az emberekkel szemben, akik folyamatosan támadják a bruteforcinget blokkolja a tűzfalat automatikusan a fail2ban, és meh. A fail2ban konfigurálása fájdalom, bár ...

  4. A port lefagyasztása az SSH port megváltoztatásával. Ez azonban NEM jó ötlet további biztonsági intézkedések nélkül Biztonság az Obscurity révén "már sok esetben megkérdőjelezték és vitatták. Ezt az IDS / IPS-szel és a hálózati szűréssel együtt végeztem, de ez még mindig nagyon rossz dolgot csinál önmagában.

  5. KÖTELEZŐ kétütemű hitelesítés a Duo Security kétfaktoros hitelesítési megoldásaival . Minden egyes az SSH szervereimhez a Duo úgy van beállítva, hogy annak érdekében, hogy bejusson, 2FA-s utasítások történjenek, és minden egyes hozzáférést meg kell erősítenem. (Ez a végső hasznos funkció - mert még akkor is, ha valaki megkapja a jelszavamat, vagy megszakad, nem tudnak eljutni a Duo PAM pluginjaihoz). Ez az SSH kiszolgálók egyik legnagyobb védelme a jogosulatlan hozzáféréstől - minden egyes felhasználói bejelentkezésnek vissza kell kapcsolódnia egy konfigurált felhasználóhoz a Duo-nál, és mivel van egy korlátozó készletem, nem lehet új felhasználókat regisztrálni a rendszerben.

A két centem az SSH biztosításához. Vagy legalább a gondolkodásmód a megközelítésről.

    
válasz adott Thomas W. 10.06.2016 23:14
forrás
1

Előfordulhat, hogy a RedHat helyett a Free Authenticator használatával kívánja fizetni a FreeOTP alkalmazást. Néha az alkalmazás frissítésekor kizárnak benneteket! ; -)

Ha más hardver-tokeneket szeretne használni, például egy Yubikey-t vagy egy eToken PASS vagy NG-t, vagy ha sok felhasználó vagy sok szerver van, érdemes egy opensource két faktoros hitelesítési hátteret használni.

Az utóbbi időben írt egy ehhez hasonló dolgot? .

    
válasz adott cornelinux 08.06.2016 02:12
forrás
0

Egy kis bemutatót írtam a közelmúltban. Alapvetően a PKI-t kell használni, és az én bemutatóm is megmutatja, hogyan használhatom a kétütemű hitelesítést még nagyobb biztonság érdekében. Még akkor is, ha ezeket a dolgokat nem használjuk, van némi baj, hogy megszerezzük a kiszolgálót azáltal, hogy eltávolítjuk a gyenge titkos csomagokat és más alapokat. link

    
válasz adott 01000101 19.05.2015 15:52
forrás
0

A nagyszámú felhasználó / tanúsítvány esetében az LDAP-integrációt kell figyelembe venni. A nagy szervezetek LDAP-t használnak a jelvények és a jelvények tárolt felhasználói tanúsítványok és tanúsítványok tárolójaként, függetlenül attól, hogy a tanúsítványokat hitelesítésre vagy e-mailek aláírására használják-e. Például az openLDAP, az openDJ, az Active Directory, az Oracle Universal Directory, az IBM Directory Server, a snareWorks ...

A számítógépek és a csoportok az LDAP-ban is kezelhetők, amely központi hitelesítő kezelést nyújt. Így segíthetnek a pultoknak egy egyablakos üzletben, amely nagy populációkkal foglalkozik.

Itt van egy link a centOS integrációra: link

    
válasz adott weller1 29.04.2016 15:50
forrás
0

A földrajzi adatbázis segítségével is letilthatja a származási ország alapján.

Alapvetően, ha az Egyesült Államokban élsz, akkor Oroszországnak nincs oka, hogy csatlakozzon az SSH-jához, így automatikusan blokkolják őket.

A szkript itt található: link

Azt is hozzáadhatod az iptables parancsokat (én tettem a cseppecskékhez), hogy automatikusan lehúzzam az összes IP-címről érkező forgalmat.

    
válasz adott Michael A Mike 10.08.2017 07:09
forrás