Mokomoji medžiaga apie šį nuostabų protokolą, kuris pradėjo savo nuotykius 1997 m.
Kas yra „Secure Shell“ protokolas?„Secure Shell“ arba SSH yra tinklo protokolas, leidžiantis keistis duomenimis saugiu kanalu tarp dviejų kompiuterių. SSH naudoja šifravimo metodus, dėl kurių informacija, sklindanti per ryšio laikmeną, tampa neįskaitoma ir joks trečiasis asmuo negali atrasti prisijungimo naudotojo vardo ir slaptažodžio ar to, kas parašyta per visą seansą. SSH naudoja viešojo rakto kriptografiją, kad autentifikuotų nuotolinį kompiuterį ir, jei reikia, leistų jam autentifikuoti vartotoją.
SSH paprastai naudojamas sesijai pradėti nuotoliniame kompiuteryje, kur galite vykdyti komandas, tačiau taip pat leidžiama tuneliuoti, savavališkai persiųsti TCP prievadus ir X11 ryšius; Failų perkėlimas taip pat gali būti atliekamas naudojant susijusius SFTP arba SCP protokolus.
Matome, kad jo didelis patrauklumas yra tai, kad jo charakteristika yra daugiau nei pakankama, kad išstumtų senąjį TELNET protokolą, kuriam trūksta informacijos šifravimo, o tai kenkia duomenims, įskaitant prieigos duomenis.
The SSH serveris, pagal numatytuosius nustatymus siūlo TCP prievadą 22. SSH klientas paprastai naudojamas užmegzti ryšius su sshd serveriu, kuris priima nuotolinius ryšius. Abu jie dažniausiai randami daugelyje šiuolaikinių operacinių sistemų, įskaitant „Mac“, „Linux“, „Solaris“ ir „OpenVMS“.
Tikimasi, kad „Windows“ palaikymas „Server“ versijai bus oficialiai išleistas šiais metais, o klientų lygiu jis siūlo daugybę galimybių, pabrėžiančių „PuTTY“, palyginti su kitomis.
Išmok naudotis Putty
„OpenSSH“„OpenSSH“ („Open Secure Shell“) yra programų rinkinys, leidžiantis užšifruoti ryšį tinkle, naudojant SSH protokolą. Jis buvo sukurtas kaip nemokama ir atvira alternatyva SSH protokolui, ji yra labiausiai naudojama „Linux“ ir ji bus ta, kurią naudosime visuose įrašuose.
1. Įdiekite „Secure Shell SSH“
Beveik visuose platinimuose jo kliento versija yra iš anksto įdiegta, o jos serverio versija yra prieinama saugykloje, jos įdiegimas turėtų būti labai paprastas.
„Debian“, „Ubuntu“, „Linux Mint“ ir dariniai
sudo apt-get install openssh-server
Centos, Rhel, Fedora
sudo yum įdiegti openssh-server
„Arch-Linux“
pacman -Syu openssh
Mes patikriname, ar jis veikia su:
curl localhost: 22Jei jis veikia teisingai, jis turėtų grįžti:
[spalva = # 696969] [/Spalva]
Prisijungimas prie serverio
Naudodami klientą galime prisijungti prie serverio, kuris gali būti nuotolinis, net jei turime abi versijas, kad galėtume prisijungti viduje naudodami „localhost“.
Paprasčiausias būdas prisijungti būtų:
ssh user @ hostaddressJei prijungsite viduje, tai bus:
ssh user @ localhostPrisijungdami turime daug įvairių variantų, paaiškinsiu keletą labai naudingų, galite išvardyti visas savo parinktis:
vyras sshČia mes jiems parodome:
Vyro SSH parinktys
-CPateikite duomenų glaudinimo taupymo pralaidumą arba duomenis, jei esate mobiliojo ryšio tinkle.
-lNurodykite vartotoją, su kuriuo susisieksime.
-IRSukurkite žurnalo failą, kuriame bus nukrypta nuo standartinės klaidos.
-FMes pasirenkame kitą konfigūracijos failą, naudingą serveriams su neįprastomis galimybėmis.
-gReikalingas uosto tuneliui.
-iMes pasirenkame aplanką, kurį naudosime alternatyviam privačiam raktui.
-KĮgalinti naudojant GSSAPI kredencialus.
-nNaudojant jį kartu su X11 tokiu būdu visas programos sukurtas žurnalas yra nukreipiamas į / dev / null.
-arbaBūtina naudoti sudėtingesnes parinktis, tokias kaip ServerAliveInterval 30.
-pNorėdami prisijungti prie pagrindinio kompiuterio, pasirinkite kitą nei 22 prievadą.
-vJame rodomi visi veiksmai, būtini ryšiui užmegzti. Dar daugiau informacijos galite gauti naudodami -vv -vvv.
-XBūtina, jei norime naudoti X11 persiuntimą.
-YĮgalina saugų X11 persiuntimą.
Prisijungsime prie test.solvetic.com serverio su „jcarrillo“ vartotoju naudodami kitą privatų raktą, esantį mūsų / home / jcarrillo / keys-aws aplanke, naudodami mūsų egzemplioriaus 8022 prievadą AWS.
Pavyzdys → ssh -C -i „~ / keys -aws /“ -p 8022 -l jcarrillo test.solvetic.comKaip matome, tai yra platus, bet labai išsamus įrankis, kuris nusipelno daugiau įrašų, kad galėtų aprūpinti būtinas funkcijas bet kuriam vidutinio ar profesinio lygio „Sysadmin“.
Dabar pereiname prie jo konfigūracijos kliento ir serverio lygiu, kurdami viešuosius ir privačius raktus, naudodamiesi prievadų peradresavimu realiose situacijose, X serverio peradresavimu per X11 peradresavimą, naudojant scp, sftp, ssh-agent ir kt. .
2. Apsaugokite SSH serverį
Mes tęsiame su „OpenSSH“ sutelkiant dėmesį į apsaugoti mūsų SSH serverį, kad išvengtumėte visų tipų atakų, galinčių pakenkti mūsų serveriui. Visos šios konfigūracijos bus atliekamos faile sshd_config, esančiame / etc / ssh /, kurį galime pakeisti bet kuriuo teksto redaktoriumi. vim:
sudo vim / etc / ssh / sshd_configDabar matome, kaip tai pakeisti.
Pakeiskite sshd_config
Viduje pamatysime tipišką konfigūracijos failą, pagrįstą „Vertės variantas“ Jei kuri nors iš parinkčių nerasta pagal numatytuosius nustatymus, mes turime visiškai išdėstyti eilutę, kitais atvejais tai bus tik pakeisti nuo 0 iki 1 iš Ne į Taip arba panaikinti eilutės komentarą.
Pakeiskite 22 prievadą
Yra būtinas pakeisti numatytąjį prievadą į atsitiktinį daugelis scenarijų yra sukonfigūruoti atakuoti šį prievadą, rekomenduojama jį pakeisti svyruoja nuo 1000 iki 23000 užtikrinti, kad uostas nesinaudotų kita tarnyba.
Taip pat neturėtume naudoti tokių uostų kaip 2222, 8022 ar 1022, jie yra tokie pat įprasti kaip 22 ir daugelis scenarijų yra sukonfigūruoti juos užpulti.
2345 uostas
Jei turime SELINUX įjungta, turime naudoti papildomą komandą, kad iš išorės galėtume pasiekti naują prievadą.
„Semanage“ prievadas -a -t ssh_port_t -p tcp 2345 #Saugos pakeitimas 22 prievadas
Naudokite numatytąjį 2 protokolą
Turime įsitikinti, kad visi mūsų ryšiai yra sukurti pagal 2 protokolą, nes 1 turi daug pažeidžiamumų.
2 protokolas
Laikas įvesti kredencialus
Paieškos skiltis "Autentifikavimas". Jūsų pirmosios dvi galimybės taip pat yra svarbios. Pirmasis yra sekundžių, kurias nuotolinis vartotojas turės prisijungti prie jūsų kompiuterio, skaičius. Nustatykite šią vertę kelioms sekundėms. Prisijungimas užtrunka neilgai, jei žinome paskyrą ir slaptažodį.
Taip išvengiame tam tikrų scenarijų, kurie išnaudoja tą laiką. Įprasta saugumo vertė yra 30, nors ji gali būti dar mažesnė.
„LoginGraceTime“ 30
Išjungti prieigą prie šaknies
Tai Tai yra svarbiausia galimybė tapti atakos auka, jiems reikia 3 dalykų:
- Vartotojas
- uostas
- Slaptažodis
Jei išjungsime root, jie jau turi vieną, nes root yra dažnas visų sistemų vartotojas. Be to, šis vartotojas gali sugadinti turėdamas visi leidimai įjungti.
„PermitRootLogin“ Nr
Įgalinti valdomą prieigą
Mes galime kontroliuoti, kuris vartotojas gali prisijungti per SSH ir netgi sudaryti sąlygą prisijungti tik iš tam tikro IP. Tai panašu į tai, ką AWS siūlo mums prijungti prie jūsų egzempliorių.
AllowUsers [email protected]
Svarbu leisti prieigą tik tiems vartotojams, kuriems reikalinga nuotolinė prieiga, ir, jei įmanoma, apriboti juos žinomu IP.
Konfigūruokite nesėkmingų bandymų skaičių
Jei neteisingai įvedame slaptažodį, serveris kelis kartus bando jį įvesti iš naujo, tai turi būti ribota arba galite tapti brutalios jėgos scenarijaus auka, galime jį įdėti 2 ar 3 kartus.
„MaxAuthTries 2“
Vienu metu leidžiamų jungčių skaičius
Tai gali skirtis priklausomai nuo to, kaip naudojatės serveriu, tačiau idealiausia, kad jis būtų valdomas, tiesiog pridėkite bendrą SSH leidžiamą vartotojų skaičių.
„MaxStartups X“
Atlikę visus pakeitimus savo faile, privalome iš naujo paleiskite mūsų sshd paslaugą, Tai gali skirtis priklausomai nuo paslaugų vadovo.
SystemD
systemctl iš naujo paleiskite sshd
Upstart / Sysinit
paslaugos paleidimas iš naujo sshd
Visi šie pakeitimai prideda a papildomas saugumo lygis bet turime nepamiršti:
- Naudokite raidinius ir skaitmeninius slaptažodžius.
- Naudoti Autentifikavimas naudojant viešus / privačius raktus kai tai įmanoma.
- Papildykite saugumą naudodami SELINUX ir ugniasienes.
- Valdykite prieigą, prie kurios vartotojai turi prisijungti nuotoliniu būdu.
Autentifikuokite SSH viešuosius / privačius raktus
Šiuo metu naudojamas SSH raktai Tai yra būtinas reikalavimas, šį autentifikavimą plačiai naudoja administratoriai, norėdami automatizuoti užduotis tarp įvairių serverių, ir netgi naudoja kūrėjai, norėdami pasiekti SCM, pvz., GIT, GITHUB, GITLAB.
Tai suteikia didelį saugumą ir galimybę sukurti automatines užduotis scenarijaus pagrindu kaip a Atgal arba Pakartokite pakeitimus į kelis mazgus vienu metu.
Kai naudojate raktą SSH (viešas ir privatus), jie gali lengvai prisijungti prie vieno ar kelių serverių, kiekvieną kartą neįvesdami slaptažodžio. Galima sukonfigūruoti raktus be slaptafrazės, tačiau tai būtų neapgalvota, jei kas nors gautų jūsų raktą, galėtų jį naudoti. Mes kalbėsime apie tai, kaip sukurti raktus, juos paskirstyti ir naudoti „ssh-agent“, kad būtų užtikrintas didesnis saugumas.
Raktų generavimas be slaptafrazės
Pirmiausia įsitikinkite, kad įdiegėte „OpenSSH“, tai nėra būtina, serveris - tik klientas.
Pradedame nuo to, kad sugeneruojame DSA tipo raktą su 1024 bitų saugumu, daugiau nei pakankamai, nors galite eiti toliau ir sukurti RSA tipo raktą, kurio riba yra 4096.
ssh -keygen -b 1024 -t dsaJis paprašys mūsų vietos, kur bus išsaugoti numatytieji raktai ~ / .ssh
Įveskite failą, kuriame norite išsaugoti raktą (/home/test/.ssh/id_dsa)Tada jis paprašys frazės, kol kas jos nenaudosime, paliksime ją tuščią ir mums pasakys, kad raktas sukurtas ir atspindi mus.
Vaizdas visada bus kitoks, jis bus sugeneruotas atsitiktinai, tada, jei eisime į aplanką .ssh, turime turėti 2 failus
id_dsa -----> Privatus raktas (nesidalykite juo su niekuo, tai yra kaip jūsų TDC).
id_dsa.pub ----> Mes bendriname, kad galėtume prisijungti.
Bendrinkite viešąjį raktą
Jei norime bendrinti viešąjį raktą SCM arba „Chef“, „Puppet“, „Jenkins“, mes vizualizuojame viešojo rakto failą, nukopijuojame jį ir įklijuojame ten, kur jis atitinka.
daugiau id_dsa.pub ssh-DSS AAAAB3NzaC1kc3MAAACBAN6SEI4Qqzb23pJYRXIAtPmGJHln5hFdthFq43ef + ifR29v2IknXCFwefKK8jorSDiUEY / 1F / yp0xao mjhFQu1jNXOgF0PAZTfivRVFn6Q9FRsyXU9s + fx + + L22sV7GkCHPxAAAAFQCyF1Gdh3 xQiW3mf3y4IX654O82SLGl7Vhh5UsvG8r8d8pV6R Cap4xr / J44xDDn 0gFArHmFwAxfQAAAIEAmVYjPYAdQ9DCNWP + + + 03anWgyoZqSPPs23djyVQ756U4VitM0GiIQQ89HCdvTFFpSagnfdVpWh4 Hxo4Y5skKihnPMtB bFNbP / 2SmGdPz1AOmb7tvRrTkj5VLtXeDeB3ulowUKarwiBVVvAvxtxmozoZHOADWqrEPizxIAAACAU2DF1ZGTiJMP OhVB7mlsVhhkq53OxKKJbZqsl9hkOiSxaLUfQBNu6Ae441ekIObqolWNCBIvCO3uQYOozyzNGBhqHE7FVq 1oXguj + + + 2GAQ UGNkee96D2by S7daieIKNmFer2hO / SBxzepMrWAiIUnUsP5irmYspkjGlQxP + AxP = patikrinimas @ solveticJei norite pasidalinti ja, kad pasiektumėte serverį, visada rekomenduoju naudoti „ssh-copy-id“, įtrauktą į „OpenSSH“, ir juo labai paprasta naudotis:
ssh-copy-id user @ remote-server-ip -i nurodo naudojamo rakto vietą.Yra ir kitų būdų, kaip:
ssh user @ remote-server-ip \ 'cat >> .ssh / Author_keys2' <.ssh / id_dsa.pub
scp ~ / .ssh / id_dsa.pub user @ remote-server-ipNuo šiol raktai yra prijungti ir jums tereikia įvesti pagrindinį kompiuterį.
ssh -l vartotojo nuotolinis serveris-ipŠį kartą jis neprašys jokio slaptažodžio ir galime naudoti scenarijus be sąveikos.
Sukurkite slaptafrazę ir susiekite su „ssh-agent“
The SSH rakto saugumas Jis pagrįstas mūsų asmeniniu raktu, kuris veikia kaip prieigos kortelė, tačiau jei kas nors pavogs mūsų raktą, jis galės pasiekti visas vietas, kur mes turime prieigą. Tačiau kurdami slaptafrazę galime turėti papildomą lygį, ne tik raktas yra būtinas, bet mums nereikia pristatyti savo frazės.
Šį kartą sukursime didesnio saugumo rsa raktą, sukonfigūruodami frazę.
ssh -keygen -b 4096 -t rsa -C "Raktas su slaptafraze" # -C Pridėti komentarą.Kaip frazė galime naudoti tarpus, taškus ir specialiuosius simbolius
pavyzdys ---> Tai mano naujas raktas su Fr @ S3.Dalinamės nauju raktu:
scp ~ / .ssh / id_rsa.pub user @ remote-server-ipŠį kartą mums reikia rakto ir slaptafrazės, tačiau įvesti jį kelis kartus yra nuobodu, tačiau mes galime jį papildyti „ssh-agent“ ir turime jį pradėti.
ssh agentasPridedame savo raktą
ssh-add Įveskite /home/user/.ssh/id_rsa slaptafrazę: # Įvedame sukonfigūruotą frazę.Dabar mes galime prisijungti prie bet kurio serverio, kuris naudoja mūsų raktą, neįvesdami mūsų slaptafraze.
Aš rekomenduoju šį metodą, jei esate ne intranete, kliente ir serveryje skirtinguose interneto taškuose, o mes nenaudosime automatinių užduočių, o prisijungsime prie serverio nuotolinio administravimo tikslais, geriausia nurodyti slaptažodį arba labai ilgą slapta frazė (15 ar daugiau simbolių, didžiosios, mažosios raidės, skaičiai ir simboliai) į viešąjį raktą.
Tokiu būdu įsilaužti bus praktiškai neįmanoma taikant šį metodą, nes įsilaužėlis ne tik turės žinoti slaptažodį, bet ir turės turėti galiojantį viešą sertifikatą serveryje, kad galėtų būti patvirtintas. (Žinoma, darant prielaidą, kad serveris niekada nebuvo pažeistas ir yra visiškai atnaujintas ir turi geriausią saugumą).
Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką