Naujausias pranešimas: Samba kritinis pažeidžiamumas
frame

Sveiki apsilankę!

Jei forume lankaisi pirmą kartą, kviečiame registruotis ir prisijungti prie diskusijų.

Prisijungti Registruotis

OpenSSH (SSH) saugumo didinimas

IV_RomanLIV_RomanL Interneto vizija
edited 2019 rugpjūčio 28 Į Serverių saugumas
Šioje pamokoje pateikiami būdai kaip suteikti papildomo saugumo serveryje naudojamai OpenSSH programai. Ši programa suteikia galimybę prisijungti prie serverio nuotoliniu būdu ir jį valdyti, tad šiuo atveju nepasirūpinus SSH saugumu išlieka pakankamai didelė rizika jog į jūsų serverį bus įsibrauta trečiųjų asmenų.
Straipsnis sukurtas naudojantis CentOs 6 operacine sistema.

1. Slaptažodis.

Visuomet naudokite sudėtingus slaptažodžius. Keletas patarimų:

  • Naudokite mažiausiai 8 simbolių kombinaciją
  • Naudokite didžiūjų ir mažūjų raidžių kombinacijas
  • Naudokite raides ir skaičius
  • Naudokite simbolius, pvz.: ! " £ $ % ^
Pravartus įrankis slaptažodžio generavimui - http://freepasswordgenerator.com/

2. Išjungiame root vartotoją
.

root vartotojas dedikuotame serveryje turi visas teises operuoti serveryje vykstančiais procesais. Daugeliu atveju root vartotojas nėra reikalingas, norint vykdyti komandą root vartotojo teisėmis tiesiog naudojama komanda su ( pvz.: su yum install nano ). Sukurkime pradžiai vartotoją ir pašalinkime galimybę prisijungti prie serverio root vartotojo teisėmis:
adduser petras
passwd petras
Nurodykite slaptažodį, nepamirškite rekomendacijų pirmąjame punkte.

Serverio SSH konsolėje vykdome komandas:
cd /etc/ssh/
nano sshd_config
raskite eilutę PermitRootLogin pakeiskite į: PermitRootLogin no

Po šių pakeitimų perkrauname SSH programą:
service sshd restart
3. Apribojame prisijungimą vartotojams.

Šiuo apribojimu nurodysime SSH programai priimti tik tam tikrų vartotojų vardus mėginant jungtis prie SSH konsolės. Redaguojame sshd_config failą prisijungę prie serverio SSH konsolės vykdome komandas:
nano /etc/ssh/sshd_config
randame eilutę AllowUsers ir ties ja nurodome vartotojo vardą ar vardus. Pavyzdys: AllowUsers petras jonas antanas

Atlikus pakeitimus, perkrauname SSH tarnybą:
service sshd restart
4. Keičiame SSH prievadą.

Pagal nutylėjimą SSH naudoją 22 prievadą (port) įeinančių susijungimų palaikymui. Dažniausias įsibrovėlių taikinys būna serveriai kurių prievadas yra standartinis. Pakeiskime standartinį prievadą nestandartiniu:
nano /etc/ssh/sshd_config
Randame eilutę #Port 22 ir keičiame ją į: Port XXXX (čia: XXXX - bet kokie 4 skaičiai, pvz.: 2322)

Atlikus pakeitimus, perkrauname SSH programą.

5. Apribojame priėjimą ugniasienėje prie SSH specifiniams IP adresams.

Šis nustatymas blokuos ir fiksuos bet kokius mėginimus kreiptis nurodytu prievadu iš nekorektiško IP adreso. Vykdome šią komandą SSH konsolėje:
iptables -A INPUT -p tcp -s jūsų_IP_adresas --dport nustatytas_prievadas -j ACCEPT
Čia:

Jūsų_IP_adresas - įrašykite IP adresą kuriam pageidauajte suteikti leidimą kreiptis nurodytu prievadu. Pavyzdys: 79.98.25.55

nustatytas_prievadas - įrašykite SSH programos pasirinktą prievadą (port). Pavyzdys.: 2322

Tuomet apsaugome prievadą nuo Brute force atakos įvykdydami komandas:
iptables -A INPUT -p tcp --dport nustatytas_prievadas -m recent --set --name ssh --rsource
iptables -A INPUT -p tcp --dport nustatytas_prievadas -m recent ! --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT
Čia:

nustatytas_prievadas - įrašykite SSH programos pasirinktą prievadą (port). Pavyzdys.: 2322

Tuomet apribojame prisijungimų skaičių per minutę prie specifinio prievado:
iptables -A INPUT -p tcp --dport nustatytas_prievadas --syn -m limit --limit 1/m --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --dport nustatytas_prievadas --syn -j DROP
Čia:

nustatytas_prievadas - įrašykite SSH programos pasirinktą prievadą (port). Pavyzdys.: 2322

6. Viešo ir privataus SSH rakto naudojimas autentikacijai.

Šio būdo naudojimas autentikacijai turi du pagrindinius privalumus. Pirmasis, prisijungimui Jums nebereikalingas slaptažodis (jei nesate nustatę, jog rakto šifravimui būtų reikalingas slaptažodis). Antrais, naudojant viešąjį ir privatų raktą serveryje galima visiškai išjungti prisijungimą prie serverio naudojant slaptažodžius, tad visiškai nebėra galimybės prie serverio prisijungti nulaužus (crack, brute force ir pan.) slaptažodį.

1. Sukuriame viešąjį ir privatų raktą kliento pusėje iš kurios jungsitės prie serverio (tai reikia atlikti kiekviename kompiuteryje iš kurio norėsite jungtis):
ssh-keygen -t rsa

Tai sukurs du failus kataloge (hidden) ~/.ssh directory pavadintus id_rsa ir id_rsa.pub. Pirmasis yra Jūsų privatus raktas, o antrasis viešas.

Jei norite, jog jungiantis nebūtų prašomas viešojo ir privataus SSH rakto slaptažodis, kai bus prašome įvesti slaptažodį (passphrase), tiesiog paspauskite "Enter".

2. Nustatome privataus rakto teises:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

3. Nukopijuojame viešą raktą (id_rsa.pub) į serverį įdiegiame jį į "authorized_keys" sąrašą:
cat id_rsa.pub >> ~/.ssh/authorized_keys

4. Nustatome failų teises serveryje:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Tai reikalinga, jei "StrictModes" nustatytas "yes" konfiguracineme faile "/etc/ssh/sshd_config". Šis nustatymas yra standartinis.

5. Dabar prisijungiant prie serverio Jūsų jau neprašys slaptažodžio (jei nesate jo nustatę viešam ir privačiam raktui). Jei šis autentifikacijos būdas nepavyktu serveris automatiškai grįš prie senojo, tai yra slaptažodžio prašymo. Tačiau prisijungimą su slaptažodžiu galima visiškai išjungti. Tai atlikti galite faile "/etc/ssh/sshd_config" pakeitus į šiuos nustatymus:
# Disable password authentication forcing use of keys
PasswordAuthentication no

=========
Pastaba:

Iptables taisyklių išvalymą atlikti galite sekdami šiomis instrukcijomis:
  • Prisijunkite prie mūsų klientų sistemos:
    https://klientams.iv.lt/services.php
  • Pasirinkite pageidaujamą serverio nuomos paslaugą;
  • Naujai atsidariusiame lange pasirinkite "Išvalyti iptables";
  • Naujai atsidariusiame lange ties klausimu "Ar tikrai pageidaujate išvalyti serverio <hostname> iptables?" pasirinkite "Taip" ir nuspauskite "Toliau >>".
Atlikus šiuos veiksmus serverio <hostname> iptables taisyklių valymo komanda bus sėkmingai išsiųsta ir įvykdyta per 5-10 min.
Pažymėtos temos:

Komentarai

  • staugastauga Naujokas (-ė)
    edited 2012 vasario 20
    Dar vienas variantas - vieši ir privatūs raktai. Galimybę prisijungti su slaptažodžiu atjungiu visai. Aišku nereikia pamiršti raktų keisti kas kažkiek laiko. Jei raktas užkoduotas slaptažodžiu - tuomet dar geriau, nes panaudojami du identifikacijos budai iš trijų ("what you have" ir "what you know")
Norėdami palikti komentarą, turite prisijungti arba registruokis.
Dedikuoti.lt
Šiame forume rasite informaciją kaip atlikti serverio administravimą, konfigūravimą, įvairių tarnybų bei papildomų aplikacijų diegimą. Taip pat pateiksime rekomendacijų, skirtų serverių saugumui, monitoringui ir optimizavimui. Kviečiame prisijungti prie dedikuotų serverių administratorių bendruomenės, dalyvauti diskusijose ir praplėsti savo žinias serverių administravimo srityje!
© 2007 - 2023 Dedikuoti.lt forumas, visos teisės saugumos.