Jinsi ya kufanya ufikiaji wa koni kupitia ssh. Jinsi ya kutumia itifaki ya SSH katika Ubuntu: usakinishaji na usanidi. Kuunganisha kupitia SSH kwa kutumia kitufe katika Windows

Habari! Ninavutiwa na swali: jinsi ya kuunganisha kupitia SSH kwa kompyuta yako ya nyumbani kupitia mtandao. Nina seva ya FreeSSHd iliyosanikishwa nyumbani. Kama ninavyoielewa, ninahitaji kwa namna fulani kufungua bandari 22 kwenye IP ya nje?

Ndiyo, hitaji mara nyingi hutokea. Nilizungumza juu ya mambo mengi katika nakala hiyo, lakini hapa tutazungumza juu ya SSH pekee, kwani Alex alitupatia fursa hii kwa fadhili. Kando na hilo, mimi mwenyewe ninavutiwa sana na SSH, na hapa pia iko kwenye Windows... mmm.

SSH ni nini na kwa nini inahitajika?

Jambo ni kwamba SSH ni S salama SH ell. Itifaki ya ufikiaji salama kwa ganda la kudhibiti. Kwa hiyo, hutoa ufikiaji mahsusi kwa mstari wa amri, kwa sababu Shell inatafsiriwa kama ganda na hapa katika maana ganda la kudhibiti maandishi. Lakini kwa ujumla, itifaki hii inajulikana kwa ukweli kwamba inaruhusu trafiki nyingine yoyote kupita ndani yake, na kwa fomu iliyofichwa. Kwa hivyo, itifaki ya uunganisho wa mfumo wa faili salama inaitwa SFTP na inaendesha juu ya SSH. Lakini inaweza kudhibiti miunganisho mingine yoyote - iwe HTTP au hata RDP. Kwa asili, inageuka kuwa "VPN kwenye goti".

Hapa Alex tayari amefanya nusu ya kazi, aliiweka na kuizindua kompyuta ya nyumbani FreeSSHd. Hii hukuruhusu kuunganisha kwa Windows kupitia SSH. KATIKA kwa kesi hii- "inaruhusu" - hii inasemwa kwa nguvu sana. Kwa sababu suluhisho hili linafanya kazi kwenye Windows kwa njia fulani. Kwanza, haina kiolesura cha maandishi bora - mstari wa amri, kwa udhibiti.

Na angalau kawaida - cmd - hukuruhusu kufanya kidogo na mashine ya mbali. Pia kuna Powershell - hii ni suluhisho la kisasa zaidi na la nguvu. Freesshd hukuruhusu kubadilisha koni kuwa ganda la nguvu, lakini sikuweza kuunganishwa nayo. Niliunganisha kwa CMD - lakini haiwezi kutumika kabisa:

Pili, katika kesi ya FreeSSHd, sikuweza kuunganisha kwenye kompyuta ya Windows hata kupitia mtandao wa ndani, bila kutaja kuunganisha kupitia mtandao. Au tuseme, inawezekana kuunganisha, lakini huduma inagandisha na kuacha kufanya kazi; hutaweza kudhibiti seva pangishi ya Windows kwa njia hii.

Kwa hivyo, nadhani Alex alihitaji seva ya ssh kwenye Windows ili kuunganishwa na mfumo wa faili au kuitumia kama VPN, akiwakilisha kitu juu ya SSH. Ingawa nina shaka kuwa FreeSSHd itaruhusu hii. Kwa sababu ya tatu: haihifadhi hata mipangilio; unapoanzisha upya huduma, kila kitu kinakwenda vibaya. Kwa ujumla, ninatumahi sana kwamba Alex atatuambia katika maoni kwa nini alihitaji hii.

Je! unawezaje kuendesha SSH kwenye Windows?

Kuna suluhisho linalowezekana zaidi - Powershelserver. Ingawa pia ina mende, angalau haina ajali. Kwa hivyo, ningependekeza kuitumia kuunganisha kupitia SSH kwa seva za Windows.

Kwanza, inafanya kazi kwa utulivu bila ajali. Na kupitia hiyo unaweza kudhibiti windows kupitia powershell.

Mipangilio yote imehifadhiwa kwa kawaida. Vitendaji sawa vinapatikana kama katika FreeSSHd na hata zaidi - unaweza kutumia SCP - hii ni kunakili faili kupitia SSH.

Lakini jambo la chic zaidi ni console! Inafanya kazi, mabwana!

Niliunganisha kwa urahisi, bila mzozo wowote na kuongeza watumiaji (hii inahitaji kufanywa kwa freesshd). Na amri hiyo rahisi ya kutazama jedwali la uelekezaji ilifanya kazi kikamilifu na kutoa habari muhimu. Frisssh "ilianguka" kwa ajili yangu haswa nilipojaribu kutazama netstat -rn

Hapa unaweza kuona kwamba herufi za Kirusi hazionyeshwa. Kwa hivyo ni rahisi kusanidi nasi, nimeweka tu usimbaji ninaohitaji kwenye powershellserver, anzisha upya, unganisha tena...

Kuweka Usimbaji katika Powershellserver

Sasa tuna SSH kamili na tunaweza kudhibiti Windows kikamilifu kupitia koni.

Microsoft itaunda suluhisho lake la SSH

Kwa njia, Microsoft ilitangaza nyuma katika msimu wa joto kwamba itakua asili Msaada wa SSH kwa Powershell katika matoleo mapya ya Windows. Kuna matangazo ya habari kwenye Habré na pcweek (na zaidi). Kwa hivyo, tunaweza tu kutazamia tukio hili muhimu, kwa kuwa litakuwa mafanikio makubwa kwa kazi mitandao tofauti.

Sikuangalia kazi zingine - sftp na scp, lakini kwa sababu fulani nina hakika kuwa zitafanya kazi vizuri.

Jinsi ya kufungua bandari ya SSH kutoka nje?

Kwa hiyo, tumekuja kwa jambo la siri ambalo makala hii ilianzishwa hapo kwanza. Nitajibu swali la msomaji.

Usambazaji wa bandari kwenye kipanga njia au modem

Ili kuunganisha kwenye kompyuta kutoka nje, unahitaji kweli kufanya NAT, au, katika hali fulani,. Jinsi ya kufanya hivyo inategemea kifaa ambacho kinatumika kama lango. Hii inaweza kuwa modemu ya ADSL au . Katika hali nyingi, maagizo ya kina ya kifaa chako yanaweza kupatikana kwa urahisi kwa hoja kama vile "kusambaza lango mfano_wa_kifaa"au" usambazaji wa bandari mfano_wa_kifaa»

Hivi ndivyo inavyoonekana kwenye kipanga njia changu cha nyumbani Zyxel Keenetic Nyepesi:

Na hivi ndivyo inavyoonekana kwenye modemu ya ADSL iliyo na utendakazi wa kipanga njia cha Linksys WAG200G karibu:

Kwa kuongeza, kwa watoa huduma wengine hii inaweza kuwa haiwezekani kiufundi kwa sababu hawatoi "nyeupe" .

Inasambaza lango kwa seva ya mbali kwa kutumia handaki ya SSH

Katika kesi hii, njia pekee inayopatikana ya kuunganisha kupitia SSH ni kutoka kwa mashine ya Windows ya ndani (ile ambayo tunataka kuunganisha kupitia SSH) kwa seva ya mbali. Katika kesi hii, lazima uwe na ufikiaji wa SSH kwa seva fulani kwenye Mtandao.

Kuweka handaki ya "reverse" ya SSH

Aina hii ya usambazaji inaweza kufanywa kwa urahisi kwa kutumia mteja rahisi wa SSH Putty (pia kuna) Kisha unaweza kuunganisha kwa seva hii ya mbali sana kupitia bandari iliyotumwa.

Kimsingi ni kitanzi hapa. Tunafungua kipindi cha SSH kutoka Windows hadi seva ya mbali, na ndani ya muunganisho huu tunaweka bandari ya SSH ya Windows Powershellserver (au FreeSSHd) yenyewe hadi bandari ya ndani 3322 ya seva ya mbali. Na katika kikao sawa sasa tunaunganisha nyuma kwenye Windows kwenye Powershell kupitia bandari hii 3322 ... Natumaini hujachanganyikiwa. Lakini ... Huu ni uchawi, marafiki! :) Vichungi vya SSH ni ulimwengu maalum, kwa msaada wao unaweza kufanya mambo ya kushangaza, kufungua milango ambayo walinzi wote wangelia kwa uchungu ikiwa wangegundua haya yote ghafla ... Lakini oh.

Kweli, ikiwa unahitaji kushiriki lango la Windows SSH na ulimwengu, inatosha kubainisha ip_server:3322 kama fikio katika mipangilio ya handaki ya nyuma. Utaweza kuunganisha kwa Windows kupitia SSH kutoka mahali popote ambapo kuna ufikiaji wa seva hii.

Jinsi ya kuangalia ikiwa bandari inatumwa kwa usahihi?

Rahisi sana. Unahitaji kuangalia ikiwa imefunguliwa. Kwa upande wa SSH, bandari iliyo wazi itajibu na ujumbe kuhusu toleo lake. Njia rahisi zaidi ya kuangalia bandari ni matumizi ya telnet.

Andika tu kwenye mstari wa amri, ukitenganishwa na nafasi:

telnet domain_or_IP port

Ikiwa bandari inapatikana, utaona kitu kama hiki:

Jibu la SSH ikiwa lango linapatikana

Ikiwa bandari haipatikani kwa sababu fulani, utaona "muunganisho umekataliwa" au "muda wa muunganisho umekwisha". Katika kesi ya kwanza, itakuwa mara moja, na ina maana kwamba bandari imefungwa na firewall.

Katika kesi ya pili, itaonekana kama "hang" na inaweza kudumu hadi dakika kadhaa - mteja wa telnet atajaribu kuanzisha muunganisho. Hii inaweza pia kumaanisha kuzuia na firewall, lakini ya aina tofauti. Ama kwa sababu tu seva pangishi iliyobainishwa haipatikani au mlango ulio juu yake umefungwa.

Ikiwa umeweza kuunganisha kupitia telnet, kisha bonyeza mchanganyiko muhimu Ctrl+] na uingie acha, kisha Ingiza. Vinginevyo, hutaweza kukatiza kipindi na itabidi ufungue kidirisha kipya cha kiweko ikiwa bado unakihitaji.

Makala haya yametiwa alama kuwa hayajakamilika. Tazama maelezo mwishoni mwa makala.

Nakala hii imetolewa kwa mteja na seva ya terminal salama (shell salama) katika Ubuntu, usanidi na matumizi yao. SSH ni itifaki maalum ya mtandao ambayo hukuruhusu kupata ufikiaji wa mbali kwa kompyuta na kiwango cha juu cha usalama wa unganisho. Unaweza kusoma zaidi juu ya itifaki ya ssh.

Maelezo ya kanuni za uendeshaji na matumizi yaliyotumiwa

Kimsingi, SSH inatekelezwa katika mfumo wa programu mbili - seva ya SSH na mteja wa SSH. Ubuntu hutumia utekelezaji wa bila malipo wa mteja na seva ya SSH - OpenSSH. Wakati wa kuunganisha, mteja hupitia utaratibu wa idhini na seva na uunganisho uliosimbwa huanzishwa kati yao. Seva ya OpenSSH inaweza kufanya kazi na itifaki zote mbili za ssh1 na ssh2. Itifaki ya ssh1 kwa sasa inachukuliwa kuwa si salama na matumizi yake yamekatishwa tamaa sana. Ninaacha anuwai kwa makusudi maelezo ya kiufundi uendeshaji wa itifaki, kwa kuwa lengo kuu la mwongozo huu ni kuelezea usanidi na matumizi yake. Kuna vifungu vingi kwenye mtandao kuhusu itifaki yenyewe, kanuni za uendeshaji wake, algorithms ya usimbuaji, nk, kwa mfano, unaweza kusoma juu yake kwa undani.

Ufungaji

Sakinisha FunguaSSH Unaweza kutumia amri kutoka kwa terminal:

sudo apt-get install ssh

Metapackage ya ssh ina mteja na seva, lakini hii itasakinisha seva pekee, kwani mteja tayari amejumuishwa kwenye Ubuntu kwa chaguo-msingi.

Urekebishaji wa Seva

Wakati wa kusakinisha, seva ya SSH huongezwa kiotomatiki kwenye uanzishaji. Unaweza kudhibiti kuanza kwake, kuacha au kuanza tena kwa kutumia amri:

sudo service ssh stop| kuanza| Anzisha tena

Faili kuu ya usanidi kwa seva ya SSH ni /etc/ssh/sshd_config faili, ambayo inaweza tu kusomwa au kuhaririwa na mtumiaji mkuu. Baada ya kila mabadiliko kwenye faili hii, lazima uanzishe tena seva ya ssh ili kutumia mabadiliko kama haya.

Mfano wa usanidi chaguo-msingi wa seva ya SSH katika Ubuntu:

# Mfano wa usanidi wa seva ya wazi-ssh na maoni ya Kirusi # #..2010. # # # # # # Mikataba: # # Kwa "chaguo-msingi" tunamaanisha tabia ya sshd wakati # # maagizo hayajabainishwa wazi. Inafaa kumbuka kuwa katika Ubuntu # # faili ya sshd_config tayari ina idadi ya mipangilio ambayo # # ndio mipangilio chaguo-msingi ya Ubuntu haswa. # # Mipangilio kama hii imebainishwa katika faili hii. # # # ################################################## ############################### Mipangilio ya anwani/mlango, n.k. ##################################################### ####################### # ### Bandari ######################## ### ############################## # # # Bandari imetumika. Unaweza kutaja kadhaa, kwa mfano: # # Bandari 22 # # Bandari 23 # # Bandari 24 # # Inapendekezwa kutumia bandari isiyo ya kawaida, kwa sababu # # kiwango mara nyingi huchanganuliwa na roboti ili kupata shimo # # zinazowezekana. Inaweza kuachwa ikiwa imebainishwa # # kupitia anwani. Tazama pia kigezo cha ListenAddress. # # # Bandari 22 # # ## SikilizaAnuani ########################################### ### # # # Anwani ya mtandao ambayo seva inasikiliza. Anwani inaweza # # kuandikwa hivi: # # SikilizaAddress host|IPv4_addr|IPv6_addr # # SikilizaAddress host|IPv4_addr:port # # SikilizaAddress :port # # Ikiwa hakuna lango lililobainishwa, sshd itasikiliza kwenye anwani hii na # # kwenye bandari iliyoainishwa katika chaguo la Bandari. Iwapo utatumia # # Anwani ya Sikiliza bila kubainisha mlango, basi chaguo la # # Lango lazima litangulie chaguo la SikilizaAddress. Ikiwa # # haijabainishwa, basi kwa chaguo-msingi husikiza kwenye anwani # # za karibu. Unaweza kubainisha anwani nyingi. # # # ## AnwaniFamilia ############################################### # # # Inabainisha ni familia gani ya anwani ya IP inapaswa # # kutumiwa na sshd. Chaguo zinazowezekana: # # "yoyote" - yoyote # # "inet" (IPv4 pekee) # # "inet6" (IPv6 pekee) # # Chaguomsingi - "yoyote". # AnwaniFamily inet # # ## UseDNS ############################################## # ######## # # # Inabainisha ikiwa sshd inapaswa kuangalia jina la mpangishaji na # # tumia jina la mpangishaji kuangalia anwani ya IP iliyotumwa na mteja dhidi ya # # iliyopokewa kutoka kwa DNS. # # Thamani chaguo-msingi ni "ndiyo". # # # ################################################## ########################### Mipangilio ya ufikiaji wa mtumiaji ###################### ##################################################### ### # # # Kuruhusu/kutomruhusu mtumiaji kumebainishwa na maagizo ya # # DenyUsers, AllowUsers, DenyGroups na AllowGroups. # # katika kesi hii, hundi huenda kutoka juu hadi chini pamoja na mnyororo: # # ## DenyUsers ## # # || # # ## Ruhusu Watumiaji ## # # || # # ## DenyGroups ## # # || # # ## RuhusuVikundi ## # # Majina ya watumiaji na kikundi pekee ndiyo yanakubaliwa, vitambulishi vya nambari # # (Kitambulisho cha Mtumiaji) havitambuliwi. Rekodi sahihi # # ya watumiaji/vikundi kadhaa kwa zamu, ikitenganishwa na nafasi # #. Iwapo imeandikwa katika fomu user@host, basi # # mtumiaji na seva pangishi huteuliwa tofauti, hii inaruhusu # # kuzuia ufikiaji wa watumiaji fulani kutoka kwa wapangishi # # fulani. Inafaa kukumbuka kuwa maagizo ya # # DenyUsers na AllowUsers huchukua jina # # la mtumiaji kama kigezo, huku DenyGroups na AllowGroups huchukua jina la kikundi # #. Tazama PATTERNS katika man ssh_config kwa maelezo zaidi # # kuhusu fomu za kurekodi majina ya watumiaji na kikundi. # # # ## KunyimaWatumiaji ############################################### ### # # # Orodha ya WATUMIAJI AMBAO HAWAWEZI kutumia sshd. # # Chaguomsingi - haijabainishwa = hakuna aliyepigwa marufuku. Wale. ikiwa # # mtumiaji amebainishwa hapa, basi atanyimwa ufikiaji # # kwa seva ya ssh. # # # ## Ruhusu Watumiaji ############################################### ## # # # Orodha ya WATUMIAJI WANAOWEZA kutumia sshd, # # Kwa chaguo-msingi - haijabainishwa = inaruhusiwa kwa kila mtu. Wale. ikiwa # # angalau mtumiaji mmoja amebainishwa, ufikiaji wa ssh kwa seva # # kufikiwa kwake pekee. # # # ## DenyGroups ############################################### ## # # # Orodha ya VIKUNDI ambavyo HAVIFAI KUTUMIWA na sshd. # # Chaguomsingi - haijabainishwa = hakuna kikundi kilichokatazwa. # # Hiyo ni ikiwa angalau kikundi kimoja kimebainishwa, basi watumiaji # # waliojumuishwa kwenye kikundi hiki watanyimwa ufikiaji wa seva ya ssh # #. # # # ## RuhusuVikundi ############################################### # # # # Orodha ya VIKUNDI VINAVYOWEZA kutumia sshd. # # Chaguomsingi - haijabainishwa = inaruhusiwa kwa kila mtu. Wale. ikiwa # # angalau kikundi kimoja kimebainishwa, basi watumiaji hao tu# # waliojumuishwa ndani yake ndio watakaoruhusiwa kufikia seva ya ssh.# # # ################### #################################################### ### Chaguzi za kuamua hali ya muunganisho ############################################ ################################# # ### TCPKeepHave ############### ################################# # # # Inaonyesha kama mfumo unahitaji kutuma ujumbe wa TCP kwa mteja # # ili kudumisha muunganisho. Ukituma pakiti hizi, # # unaweza kubainisha ikiwa muunganisho umekatika. Walakini, hii pia # # inamaanisha kuwa muunganisho unaweza kuvunjika endapo # # njia itakatika kwa muda na # # hii inakera sana kwa wengine. Kwa upande mwingine, ikiwa # # jumbe kama hizo hazijatumwa, vipindi kwenye seva vinaweza # # kudumu kwa muda usiojulikana, kuunda watumiaji "vizuka" # # na kumeza rasilimali za seva. Thamani chaguo-msingi ni "ndiyo", # # i.e. kutuma ujumbe kama huo. Ili kuzima kutuma # # jumbe kama hizo, weka thamani kuwa "hapana". Hapo awali chaguo hili # # liliitwa KeepAlive. Inafaa kukumbuka kuwa # # kuna njia salama zaidi za kuangalia hali ya # # muunganisho (tazama hapa chini). # # # TCPKeepAlive ndiyo # # ## ClientAliveCountMax ########################################## # Huweka idadi ya ujumbe kwa wateja ambao sshd # # hutuma mfululizo bila kupokea jibu lolote kutoka kwa # # mteja. Ikiwa kiwango cha juu kimefikiwa na # # mteja hajibu, sshd itamtenganisha mteja, na kusitisha kipindi cha # # ssh. Inafaa kumbuka kuwa utumiaji wa jumbe kama # # ni tofauti kabisa na maagizo ya TCPKeepAlive. # Jumbe # kwenda/kutoka kwa wateja hutumwa kupitia chaneli # # iliyosimbwa kwa njia fiche na kwa hivyo si rahisi kuibiwa. Ujumbe # # TCPKeepAlive huathiriwa na udukuzi. Kiteja hai # # utaratibu ni muhimu sana katika hali ambapo seva na mteja wanahitaji # # kujua wakati muunganisho hautumiki. Thamani chaguomsingi ya # # ni 3. Iwapo ClientAliveInterval # # imewekwa kuwa 15 na ClientAliveCountMax imesalia kama chaguomsingi # #, wateja ambao hawajajibu watakatwa baada ya takriban sekunde # # 45. Maagizo haya hufanya kazi kwa # # itifaki ya ssh2 pekee. # # # ## ClientAliveInterval ############################################ # # Seti muda wa muda katika sekunde. Ikiwa hakuna mawasiliano na mteja katika kipindi cha # # hiki, sshd # # hutuma ujumbe kupitia kituo kilichosimbwa ikiomba jibu # # kutoka kwa mteja. Chaguo-msingi ni 0, i.e. # # usitume ujumbe kama huo. Maagizo haya hufanya kazi # # tu kwa itifaki ya ssh2. # # # ################################################## ############################### Chaguzi za uthibitishaji wa jumla ################### ##################################################### ######### # # ## Funguo Zilizoidhinishwa ########################################## # # # # Hubainisha faili ambayo ina funguo za umma # # zinazotumika kuthibitisha watumiaji. Maagizo # # yanaweza kuwa na tokeni za fomu %M, ambazo huwekwa wakati wa mchakato wa # # wa kuanzisha muunganisho. # # Alama zifuatazo zimefafanuliwa: # # %% - nafasi yake kuchukuliwa na halisi "%" # # %h - kubadilishwa saraka ya nyumbani# # mtumiaji aliyethibitishwa # # %u - nafasi yake kuchukuliwa na jina la mtumiaji aliyethibitishwa # # Kwa hivyo, faili muhimu inaweza kubainishwa kama # # kwa njia kabisa(yaani faili moja iliyoshirikiwa na funguo), na # # kwa nguvu - kulingana na mtumiaji (yaani faili moja # # kwa kila mtumiaji). # # Chaguomsingi ni “.ssh/authorized_keys”. # # Mfano wa faili muhimu katika folda ya nyumbani user: # # AuthorizedKeysFile %h/.ssh/authorized_key # # Mfano wa faili iliyoshirikiwa: # # AuthorizedKeysFile /etc/ssh/authorized_keys # # Angalia maelezo ya faili ya funguo_ zilizoidhinishwa kwa maelezo # # zaidi. # # # ## Uthibitishaji wa Majibu ya Changamoto ############################# # # # Hubainisha iwapo itaruhusu uthibitishaji wa majibu-changamoto # # ). Aina zote # # za uthibitishaji kutoka login.conf zinatumika. Chaguomsingi ni "ndiyo", # # yaani. kuruhusu. # # Kwenye Ubuntu - imezimwa kwa sababu za usalama. # # # ChangamotoResponseAuthentication no # # ##HostbasedUsesNameFromPacketPeke ############################# # # # Hubainisha jinsi seva inavyopaswa kupata jina la mpangishi wa mteja # # wakati mpango wa uthibitishaji kulingana na uthibitishaji wa mwenyeji. # # Ikiwekwa kuwa "ndiyo", sshd # # itatumia jina la mpangishaji lililotolewa na mteja wakati wa kutafuta inayolingana katika faili # # ~/.shosts, ~/.rhosts au /etc/hosts.equiv. # # (kutekeleza azimio la kubadili DNS) Ikiwekwa kuwa "hapana"# # - sshd itasuluhisha jina kutoka kwa muunganisho wa TCP yenyewe. # # Chaguomsingi ni "hapana". # # # ## IgnoreRhosts ############################################### # # # Huzuia matumizi ya faili za .rhosts na .shosts # # katika uthibitishaji wa msingi wa seva pangishi. # # (Uthibitishaji wa RhostsRSAA au Uthibitishaji wa Mwenyeji). # # Faili za /etc/hosts.equiv na /etc/ssh/shosts.equiv bado # # zinatumika. # # Chaguomsingi ni "ndiyo". # # # IgnoreRhosts ndiyo # # ## PuuzaMtumiajiWakaribishajiWanaojulikana ####################################### Inaonyesha kama sshd inapaswa kupuuza faili ya mtumiaji # # "wapangishi wanaojulikana" ~/.ssh/known_hosts wakati wa # # mchakato wa uthibitishaji wa mpangishi # # (Uthibitishaji wa RhostsRSAA au Uthibitishaji wa Hostbased). # # Chaguomsingi ni "hapana". # # # ##FunguoZilizoorodheshwaVibali ##################################### # # # Inaonyesha ikiwa sshd inapaswa kukubaliwa vitufe ambavyo vimeorodheshwa # # kama vimeathiriwa (vifunguo # # vilivyoathiriwa (tazama ssh-vulnkey)). Ikiwekwa kuwa "ndiyo" - # # majaribio ya uthibitishaji kwa funguo kama hizo yatawekwa kwenye # # na kukubaliwa, ikiwa imewekwa kuwa "hapana" - majaribio # # ya uthibitishaji yatakataliwa. # # Chaguomsingi ni "hapana". # # # ## NenosiriTupu ############################################ # # # Ndani kesi ya uthibitishaji unaoruhusiwa kwa kutumia nenosiri, # # inaonyesha ikiwa kuingia kwa nenosiri tupu kunawezekana. # # Chaguomsingi ni "hapana". # # # PermitEmptyPasswords no # # ## PermitRootLogin ########################################### # # # # Inaonyesha ikiwa kuingia kwa ssh kama mtumiaji mkuu # # (mzizi) kunawezekana. Inaweza kuchukua maadili yafuatayo: # # "ndiyo" - mtumiaji mkuu anaweza kuingia. Mpango # # wa sasa wa uthibitishaji wa kimataifa unatumika. # # # # "bila-nenosiri" - mtumiaji mkuu anaweza kuingia. # # Uthibitishaji wa nenosiri utazimwa kwa hilo. # # # # "amri za kulazimishwa-tu" - mtumiaji mkuu ataweza kuingia kwa kutumia # # uthibitishaji kulingana na ufunguo wa umma na # # ikiwa tu atapitisha amri inayohitajika kutekelezwa. # # Hii ni rahisi kutekeleza Hifadhi nakala , # # hata kama kawaida (yaani si kupitia ssh) # # kuingia kwa mtumiaji mkuu ni marufuku. Njia zingine zote # # za uthibitishaji za mtumiaji mkuu zitazuiwa.# # # # "hapana" - mtumiaji mkuu hawezi kutumia ssh kuingia # #. # # # # Thamani chaguo-msingi ni "ndiyo". # # # PermitRootLogin ndiyo # # ## Itifaki ############################################ ######## # # # Inabainisha ni itifaki gani sshd inapaswa kutumia. # # Thamani zinazowezekana za '1' na '2' ni ssh1 na ssh2 # # mtawalia. Kuandika kwa wakati mmoja kunawezekana, katika hali ambayo # # maadili yanapaswa kutengwa kwa koma. # # Chaguomsingi ni "2.1". # # Inafaa kumbuka kuwa mpangilio wa itifaki katika maingizo # # hauamui kipaumbele, kwa sababu mteja huchagua ni # # kati ya itifaki kadhaa zilizopendekezwa na seva kutumia # #. Ingizo la "2,1" linafanana kabisa # # na ingizo la "1,2". # # # Itifaki 2 # # ## TumiaPAM ########################################### ########## # # # Huwasha kiolesura cha PAM (Kiolesura Inayoweza Kuchomekwa cha Uthibitishaji # #). Ikiwekwa kuwa "ndiyo", aina zote za uthibitishaji # # kando na kipindi na uchakataji wa sehemu ya akaunti # # Uthibitishaji wa PAM utakuwa. inatumika kulingana na # # jibu-changamoto (Uthibitishaji waChangamoto na # # Uthibitishaji wa Nenosiri) kwa sababu # # uthibitishaji wa jibu la changamoto katika PAM kwa ujumla hutekeleza jukumu sawa # # kama uthibitishaji wa nenosiri, unapaswa kuzima # # ama Uthibitishaji wa Nenosiri au # # UthibitishajiChangamotoResponse. Inafaa kukumbuka kuwa # # ikiwa maagizo ya UsePAM yamewezeshwa, hutaweza kuendesha # # sshd kama mtumiaji mwingine isipokuwa mzizi. # # Thamani chaguo-msingi ni "hapana". # # # TumiaPAM ndiyo # # ## Uthibitishaji wa Nenosiri ###################################### # # # Inaonyesha kama kuwezeshwa kama uthibitishaji kwa kutumia # # nenosiri. # # Chaguomsingi ni "ndiyo". # # # ## HostKey ############################################## ##### # # # Hubainisha faili iliyo na ufunguo wa seva pangishi ya faragha # # inayotumiwa na SSH. Chaguo msingi ni /etc/ssh/ssh_host_key # # kwa itifaki ya ssh1 na /etc/ssh/ssh_host_rsa_key na # # /etc/ssh/ssh_host_dsa_key kwa itifaki ya ssh2. Inafaa kuzingatia kuwa sshd haitatumia faili # # ambayo inapatikana kwa mtu yeyote isipokuwa mtumiaji. Unaweza # # kutumia faili nyingi zilizo na vitufe, funguo ni "rsa1" - # # kwa itifaki ya ssh1 na "dsa"/"rsa" kwa itifaki ya ssh2. # # # HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # # ################################### #####################Ridini ### ################################################## ### ################### # HAIJAPENDEKEZWA KABISA kutumia itifaki ya ssh1. # # Itifaki ya ssh2 ni salama zaidi kuliko ssh1 # ########################################## ## ###################### # # ##Muhimu wa Muda wa Upyaji ######################## #### ######### # # Kwa itifaki ya ssh1 - mara moja kwa wakati fulani # # ufunguo mpya wa seva ya muda # # huzalishwa kiotomatiki (ikiwa ilitumika). Hili linafanywa ili # # kuzuia vipindi vilivyoingiliwa visituguliwe ili # # baadaye kuingia kwenye mashine kwa kutumia vigezo vya vipindi hivi na # # kuiba funguo. Kitufe kama hicho hakihifadhiwa popote (kimehifadhiwa kwenye # # RAM). Maagizo haya yanabainisha # # maisha ya ufunguo katika sekunde, baada ya hapo # # itatolewa tena. Ikiwa thamani imewekwa kuwa 0 - # # ufunguo hautazalishwa tena. # # Thamani chaguo-msingi ni 3600 (sekunde). # # # Kipindi cha Urekebishaji Muhimu 3600 # # ## RhostsRSAAuthibitishaji ###################################### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # RhostsRSAAUthibitishaji kulingana na faili # # rhosts au /etc/hosts.equiv kwa kushirikiana na uthibitishaji uliofaulu wa # # wa mwenyeji kupitia RSA. # # Inafaa tu kwa itifaki ya ssh1. # # Chaguomsingi ni "hapana". # # # RhostsRSAA nambari ya uthibitishaji # # ## RSAAUthibitishaji ########################################### ## # # # Inaonyesha kama uthibitishaji "safi" wa RSA unaruhusiwa. # # Inafaa tu kwa itifaki ya ssh1. # # Chaguomsingi ni "ndiyo". # # # RSAAUthibitishaji ndiyo # # ## ServerKeyBits ############################################ ### # # # Inafafanua idadi ya biti katika ufunguo wa muda wa seva kwa # # itifaki ya ssh1. Thamani ya chini 512. # # Thamani chaguo-msingi ni 1024. # ServerKeyBits 768 # # ###################################### ############################################# Itifaki ya SSH toleo la 2 (ssh2) chaguzi ####### ##### ############################################### # ################ # # ## Ciphers ############################# # ################### # # # Huonyesha kanuni za usimbaji fiche zinazoruhusiwa kwa # # itifaki ya ssh2. Algorithms nyingi lazima # # zitenganishwe kwa koma. Kanuni zinazotumika: # # “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, # # “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “ arcfour128", # # "arcfour256", "arcfour", "blowfish-cbc", "cast128-cbc". # # Kwa chaguomsingi: # # aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, # # arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, #2-ct62 aes -ctr # # # ## HostbasedAuthentication ##################################### # # # Inaonyesha kama uthibitishaji ni imewashwa , kulingana na uthibitishaji wa seva pangishi #. rhosts au /etc/hosts.equiv imechaguliwa, # # na ikiwa imefaulu, pamoja na ukaguzi uliofaulu # # wa ufunguo wa umma, ufikiaji unaruhusiwa. Maagizo haya # # ni sawa na maagizo ya uthibitishaji ya RhostsRSAA na # # yanafaa tu kwa itifaki ya ssh2. # # Chaguomsingi ni "hapana". # # # HostbasedAuthentication no # # ## MACs ############################################ ############ # # # Inaonyesha algoriti halali ya MAC (ujumbe # # msimbo wa uthibitishaji). Algorithm ya MAC inatumiwa # # na itifaki ya ssh2 kulinda uadilifu wa data. Algorithms nyingi # # lazima zitenganishwe kwa koma. # # Chaguomsingi: # # hmac-md5,hmac-sha1, [barua pepe imelindwa] ,hmac-ripemd160, # # hmac-sha1-96,hmac-md5-96 # # # ## Uthibitishaji wa Pubkey ############################ ########## # # # Huonyesha ikiwa uthibitishaji kulingana na # # ufunguo wa umma unaruhusiwa. Inafaa tu kwa itifaki ya ssh2. # # Chaguomsingi ni "ndiyo". # # # Uthibitishaji wa Pubkey ndiyo ############################################# ######################################## Chaguzi za GSSAPI ############ ## ################################################### ## ########################## # ############# Inatumika tu kwa itifaki ya ssh2 #### #### ### # # ## Uthibitishaji wa GSSAPI ########################################### ## # # # Inaonyesha kama Je, ni uthibitishaji wa mtumiaji # # kulingana na GSSAPI. Chaguo msingi ni "hapana", i.e. marufuku. # # # ## GSSAPIKeyExchange ############################################# Inaonyesha kama kubadilishana vitufe kulingana na # # GSSAPI inaruhusiwa. Ubadilishanaji wa vitufe kwa kutumia GSSAPI hautegemei vitufe # # vya ssh ili kuthibitisha utambulisho wa mwenyeji. # # Chaguo msingi ni "hapana" - i.e. kubadilishana ni marufuku. # # # ##GSSAPICleanupCredentials ################################## # # # Inabainisha ikiwa itaharibu kiotomatiki # # akiba ya mtumiaji ya uthibitishaji kipindi # # kinapoisha. # # Chaguo msingi ni "ndiyo" - i.e. inahitaji kuharibiwa. # # # ## GSSAPIStrictAcceptorCheck ################################# # # # Hubainisha jinsi ukaguzi wa utambulisho unapaswa kuwa mkali # # mteja wakati wa uthibitishaji kupitia GSSAPI. # # Thamani ya "ndiyo" inasababisha mteja kuthibitisha kwa # # kupokea huduma ya seva pangishi ya sasa. Thamani "hapana" # # humruhusu mteja kuthibitisha kwa kutumia kitufe chochote cha # # cha huduma. # # Thamani chaguo-msingi ni "ndiyo". # # Inafaa kukumbuka kuwa kuweka hii kuwa "hapana" kunaweza # # kufanya kazi na maktaba adimu za Kerberos GSSAPI. # # # ################################################## ################################# Chaguzi za Kerberos ################## #################################################### ### ################### # # ## Uthibitishaji wa Kerberos ########################## ### ######## # # # Inaonyesha kama nenosiri # # lililotolewa na mtumiaji kwa ajili ya uthibitishaji # # (Uthibitishaji wa Nenosiri) linahitaji uthibitisho katika Kerberos KDC. # # Ili kutumia chaguo hili, seva lazima # # ithibitishe kuwa KDC ni kweli. (Seva inahitaji # # Kerberos servtab ambayo inaruhusu uthibitishaji wa kitambulisho cha # # KDC) # # Chaguomsingi ni "hapana". # # # ## KerberosGetAFSTToken ############################################## Ikiwa AFS inatumika na mtumiaji amepokea Kerberos 5 TGT, # # iwapo atajaribu kupata tokeni ya AFS kabla ya mtumiaji # # kufikia folda yake ya nyumbani. # # Chaguomsingi ni "hapana". # # # ## KerberosOrLocalPasswd ##################################### # # # Inaonyesha nini cha kufanya katika kesi ya ikiwa uthibitishaji # # kupitia Kerberos hautafaulu. Ikiwa # # thamani = "ndiyo", nenosiri litathibitishwa kwa kutumia # # utaratibu wowote wa ziada wa uidhinishaji wa ndani, # # kwa mfano /etc/passwd. # # Chaguomsingi ni "ndiyo". # # # ## KerberosTicketCleanup #################################### # # # Inaonyesha ikiwa faili itaua kiotomatiki na akiba # ya tikiti za mtumiaji mwishoni mwa kipindi. # # Chaguomsingi ni "ndiyo". # # # ################################################## ################################# Chaguzi za kuelekeza kwingine #################### # ## ################################################## ## ############## # ## RuhusuWakalaUsambazaji ################################# #### ### # # # Inaonyesha iwapo itaruhusu au kuzima uelekezaji kwingine # # wakala wa ssh. Chaguo-msingi ni "ndiyo", yaani kuruhusu. # # Inafaa kukumbuka kuwa kuzima uelekezaji kwingine hakutaongeza # # usalama hadi watumiaji pia # # ufikiaji wa ganda utakataliwa, kwa kuwa wanaweza kusakinisha kila wakati # # ala zao analogi. # # # ## RuhusuUsambazajiTcp ############### # # # Inaonyesha iwapo itawasha au kuzima uelekezaji kwingine wa TCP. kesi ya AllowAgentForwarding, kulemaza # # kuelekeza kwingine hakutaongeza usalama mradi # # watumiaji wana ufikiaji wa kiweko, kwa sababu wanaweza # # kusakinisha wenzao. # # # # # ## GatewayPorts ######### ## ################################## # # # # Inabainisha iwapo itaruhusu majeshi ya mbali ufikiaji wa milango # # iliyosambazwa. Kwa chaguo-msingi, sshd husikiza # # kwa miunganisho kwa milango iliyosambazwa kwenye kiolesura cha ndani cha # # cha nyuma. Hii huzuia wapangishi wengine wa mbali # # kuunganisha kwenye milango iliyosambazwa. Unaweza # # kutumia GatewayPorts kuruhusu sshd # # kufanya hivi. Maagizo yanaweza kuchukua maadili 3: # # "hapana" - kitanzi nyuma pekee. # # "ndiyo" - anwani yoyote. # # "wateja wameainishwa" - anwani zilizobainishwa na mteja. # # # ## Ruhusa Fungua ############################################### ## # # # Huonyesha mahali ambapo usambazaji wa mlango wa TCP unaruhusiwa. # # Kubainisha uelekezaji kwingine lazima kuchukua mojawapo ya # # fomu zifuatazo: # # RuhusaFungua seva pangishi: mlango # # RuhusaFungua IPv4_addr: bandari # # RuhusaFungua :bandari # # Maingizo mengi yanaweza kubainishwa kwa kuyatenganisha na nafasi. # # Hoja ya "yoyote" inaweza kutumika kuondoa vizuizi # # vya usambazaji wa lango. Kwa chaguomsingi, uelekezaji upya wowote # # unaruhusiwa. # # # ## Ruhusa ya Ruhusa ############################################### # # # Inaonyesha kama uelekezaji kwingine wa vifaa vya tun unaruhusiwa. # # Inaweza kuchukua maadili: # # "ndiyo" # # "point-to-point" (safu ya tatu ya mtandao) # # "ethernet" (safu ya 2 ya mtandao) # # "hapana" # # Thamani "ndiyo" inaruhusu "pointi" zote mbili. -to-point" # # na "ethaneti" kwa wakati mmoja. Chaguo msingi ni "hapana". # # # ################################################## ################################ Chaguzi za ukataji miti ################## ### ################################################## ## ############## # ### SyslogFacility ################################# ## ########## # # # Huweka msimbo wa kitu cha kumbukumbu cha kuandika ujumbe kwa # # syslog kutoka sshd. Thamani zinazowezekana: # # DAEMON # # MTUMIAJI # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # Chaguomsingi ni AUTH. # # # SyslogFacility AUTH # # ## LogLevel ############################################ ### ####### # # # Huweka kiwango cha kitenzi cha kumbukumbu ya sshd. # # Chaguzi zinazowezekana: # # KIMYA # # UTULIVU # # FATAL # # HITILAFU # # MAELEZO # # KITENZI # # TENGENEZAJI # # DEBUG1 # # DEBUG2 # # DEBUG3 # # Chaguomsingi ni INFO. # # DEBUG na DEBUG1 ni sawa kwa kila moja. # # DEBUG2 na DEBUG3 huweka viwango vya juu zaidi vya utatuzi # # pato. Kuingia katika kiwango cha DEBUG kunatishia faragha # # ya mtumiaji na haipendekezwi. # # # MAELEZO ya Kiwango cha logi # # ############################################ ##################################### # X11 kuelekeza ############# ##################################################### #################### # ### X11Inasambaza ########################### ### ############### # # # Huonyesha ikiwa mfumo mdogo wa michoro ya X11 # # uelekezaji kwingine umewashwa. Inaweza kuchukua maadili "ndiyo" au "hapana". # # Chaguomsingi ni "hapana". # # Makini - kuwezesha uelekezaji upya rahisi wa X11 ni # # hatari kubwa kwa seva na wateja, kwa sababu Katika # # uelekezaji upya kama huu, onyesho la proksi la sshd # # linakubali miunganisho kutoka kwa anwani zozote. Tumia # # maagizo ya X11UseLocalhost ili kuzuia ufikiaji wa seva ya # # ya kuelekeza kwingine. Inafaa kumbuka kuwa # # kulemaza uelekezaji kwingine hakutahakikisha kuwa watumiaji # # hawataweza kuelekeza X11, kwa sababu kuwa na ufikiaji wa # # wa kiweko kila wakati husakinisha kielekeza upya # #. Uelekezaji upya wa X11 utazimwa kiotomatiki # # ikiwa maagizo ya UseLogin # # yamewezeshwa. # # # X11Inasambaza ndiyo # # ### X11UseLocalhost ############################################ # # # # Inaonyesha ikiwa sshd inapaswa kuweka kikomo kwa wigo wa # # X11 usambazaji kwa anwani ya eneo la nyuma, au # # inapaswa kuruhusu anwani zozote. Kwa chaguo-msingi - sshd # # "mimea" seva ya uelekezaji upya ya X11 imewashwa anwani ya eneo# # na kubainisha sehemu kutofautiana kwa mazingira DISPLAY, ikijibu # # kwa jina la mpangishaji kama "mwenyeji wa ndani". Inafaa kukumbuka kuwa # # baadhi ya wateja wakubwa wa X11 wanaweza wasifanye kazi na mipangilio hii # #. Chaguo msingi ni "ndiyo", i.e. uelekezaji kwingine # # umezuiwa na mwenyeji, thamani - "hapana" - huzima vizuizi # #. # # # ## XAuthLocation ################################################ # # # Inaonyesha njia kamili kwa programu ya xauth. # # Chaguomsingi ni /usr/bin/X11/xauth. # # # ## X11DisplayOffset ############################################# Inaonyesha nambari ya onyesho la kwanza linalopatikana kwa sshd kama # # X11 kuelekeza upya. Hii inafanywa ili # # ambazo X zilizoelekezwa upya zisiingiliane na # # halisi. Chaguomsingi ni 10. # # # X11DisplayOffset 10 # # ########################################### ## ########################################## Chaguzi mbalimbali ##### ################################################### ##### ############################ # # ## IngiaMuda waNeema ############## ####### ######################### # # Muda ambao baada ya hapo seva hutenganisha # # mtumiaji ikiwa hakuweza ingia # # kwa kuridhisha. Thamani 0 - inaruhusu mtumiaji # # kuingia kwa muda usiojulikana. Chaguomsingi ni 120 (sekunde). # # # LoginGraceTime 120 # # ##MaxAuthTries ########################################### ### #### # # # Huonyesha idadi ya juu zaidi ya majaribio ya uthibitishaji # # yanayoruhusiwa kwa kila muunganisho. # # Mara tu idadi ya majaribio yaliyofeli inapozidi nusu # # kuweka thamani, majaribio yote yatakayofuata # # yatarekodiwa. Thamani chaguo-msingi ni 6. # # # ## MaxSessions ######################################### ####### # # # Inaonyesha idadi ya juu zaidi viunganisho vya wakati mmoja # # kwa kila muunganisho wa mtandao. Chaguomsingi ni 10. # # # ## MaxStartups ############################################ ###### # # # Hubainisha idadi ya juu zaidi ya miunganisho isiyoidhinishwa # # kwa sshd kwa wakati mmoja. Iwapo # # idadi ya miunganisho itazidi kikomo, miunganisho yote ya ziada # # itaondolewa hadi miunganisho ya sasa ya # # ikamilishwe ama kwa uidhinishaji uliofanikiwa # # au muda uliobainishwa katika maagizo ya # # LoginGraceTime umekwisha. Thamani chaguo-msingi ni 10. # # Kwa hiari, unaweza kuweka miunganisho ili kuweka upya mapema kwa # # kubainisha thamani tatu kama kigezo, ikitenganishwa # # na koloni "start:rate:full" (kwa mfano: "10:30 :60"). # # sshd itakataa jaribio la muunganisho kwa uwezekano sawa na # # "kiwango/100" (yaani 30% katika mfano wetu) ikiwa tayari kuna miunganisho # # "anza" (10) ambayo haijaidhinishwa. # # Uwezekano huongezeka kimstari na majaribio yoyote # # ya kuunganisha yatakataliwa ikiwa idadi ya miunganisho isiyoidhinishwa # # itafikia "kamili" (60). # # # ## Mfinyazo ############################################### # # # # Huonyesha kama mgandamizo wa data umewashwa. Inaweza kuwa # # "ndiyo" - compression imewezeshwa. # # "imecheleweshwa" - mbano imechelewa hadi # # mtumiaji athibitishwe kwa mafanikio. # # "hapana" - compression imezimwa. # # Chaguomsingi "imecheleweshwa". # # # ## TumiaIngia ############################################## #### # # # Inaonyesha kama kuingia kunafaa kutumiwa kwa kipindi # # shirikishi. Thamani chaguo-msingi ni "hapana". # # Inafaa kumbuka kuwa kuingia hakujawahi kutumiwa # # kutekeleza maagizo ya mbali. Pia kumbuka kuwa # # kutumia kuingia kutafanya isiwezekane kutumia # # maagizo ya Usambazaji ya X11, kwa sababu kuingia hajui nini cha # # kufanya na xauth. Maagizo ya # # UsePrivilegeSeparation yakiwezeshwa, yatazimwa baada ya uidhinishaji # #. # # # ## TumiaPrivilegeSeparation ######################################### # # # Inabainisha kama sshd inapaswa kutenganisha mapendeleo. Ikiwa ndio # # basi mchakato wa mtoto asiye na haki # # utaundwa kwanza kwa trafiki ya mtandao inayoingia. Baada ya uidhinishaji # # uliofaulu, mchakato mwingine utaundwa na mapendeleo # # ya mtumiaji aliyeingia. Kusudi kuu la # # kutenganisha fursa ni kuzuia matumizi mabaya ya haki za ufikiaji. # # Thamani chaguo-msingi ni "ndiyo". # # # TumiaPrivilegeSeparation ndiyo # # ## Njia Mkali ############################################ ### ##### # # # Inaonyesha kama sshd inapaswa kuangalia ufikiaji na # # njia za umiliki wa folda na faili za mtumiaji kabla ya # # kuruhusu mtumiaji kuingia. Hii ni kawaida kwa sababu # # wanaoanza mara nyingi hufanya faili zao kuandikwa # # na kila mtu. Chaguo-msingi ni "ndiyo". # # #Njia Mkali ndiyo # # ## KubaliEnv ######################################### ####### # # # Hubainisha ni viasili vipi vya mazingira vilivyopitishwa # # na mteja vitakubaliwa. Tazama chaguo la SendEnv kwenye mteja. # # Inafaa kumbuka kuwa kupitisha anuwai kunawezekana tu # # kwa itifaki ya ssh2. Vigezo hubainishwa kwa jina, vinyago # # vinaweza kutumika ('*' na '?'). Unaweza kubainisha # # anuwai nyingi zikitenganishwa na nafasi, au kugawanya AcceptEnv katika mistari # # nyingi. Kuwa mwangalifu - baadhi ya vigeu # # vya mazingira vinaweza kutumiwa kukwepa # # mazingira ya mtumiaji yaliyopigwa marufuku. Tumia agizo hili # # kwa uangalifu. Kwa chaguo-msingi, hakuna vigezo # # vya mazingira ya mtumiaji vinavyokubaliwa. # # # KubaliEnv LANG LC_* # # ## RuhusaMazingira ya Mtumiaji ###################################### Hubainisha kama sshd inapaswa kukubali # # ~/.ssh/environment na mazingira= chaguo katika # # ~/.ssh/authorized_keys. Chaguo msingi ni "hapana". Inafaa kuzingatia # # kuwa kuwezesha uchakataji wa mazingira kunaweza kuwapa watumiaji # # uwezo wa kukwepa vikwazo katika baadhi ya usanidi # # unaotumia mbinu kama vile # # LD_PRELOAD. # # # # # # # # PidFile ############################################# # ####### # # # Hubainisha faili iliyo na kitambulisho cha mchakato # # (kitambulisho cha mchakato, PID) cha daemoni ya SSH. # # Chaguomsingi - /var/run/sshd.pid # # # # # ### PrintLastLog ################################ ############## # # # Inabainisha ikiwa sshd inapaswa kuonyesha tarehe na saa # # ya kipindi cha mwisho mtumiaji anapoingia kwa kushirikiana. # # Chaguomsingi ni "ndiyo". # # # PrintLastLog ndiyo # # ## PrintMotd ######################################## ####### # # # Hubainisha ikiwa sshd inapaswa kuonyeshwa /etc/motd # # mtumiaji anapoingia kwa maingiliano. Kwenye baadhi ya mifumo # # (kwa mfano Ubuntu) habari hii pia # # inaonyeshwa na ganda. # # Thamani chaguo-msingi ni "ndiyo". # # # PrintMotd no # # ## Bango ########################################### ########## # # # Inaonyesha ni faili gani iliyo na bango la maandishi ambalo # # litaonyeshwa mtumiaji KABLA ya ## utaratibu wa uthibitishaji. Chaguo linapatikana tu kwa itifaki ya ssh2.# # Kwa chaguo-msingi - haionyeshi chochote. ##NDANI Faili ya Ubuntu issue.net ina maneno Ubuntu (toleo), # # kwa mfano kwa karmic ni "Ubuntu 9.10". # # inaweza kutumika kuvuruga washambuliaji wanaowezekana, # # kwa kuandika hapo, kwa mfano, "My D-Link Interet Router" =) # # # Bango /etc/issue.net # # ## ChrootDirectory ###### ##### ############################### # # # Ikibainishwa, hutoa njia ya # # kung'olewa baada ya uthibitishaji. Njia na maudhui yake yote # # lazima yalingane na folda # # inayomilikiwa na mtumiaji mkuu na isiweze kuandikwa # # na watumiaji wengine. # # Njia inaweza kuwa na lebo ambazo hubadilishwa wakati wa # # mchakato wa uthibitishaji: # # %% - nafasi yake kuchukuliwa na halisi "%" # # %h - nafasi yake kuchukuliwa na saraka ya nyumbani # # ya mtumiaji aliyeidhinishwa # # %u - kubadilishwa na jina la mtumiaji aliyethibitishwa # # chroot -folda inapaswa kuwa na kila kitu faili muhimu na folda # # za kipindi cha mtumiaji. Kipindi shirikishi cha # # kinahitaji angalau: # # ganda, kwa kawaida sh # # vifaa vya msingi katika /dev kama vile: # # null, sifuri, stdin, stdout, stderr, bila mpangilio na tty # # kwa kipindi cha kuhamisha data kwa kutumia sftp no # # mipangilio ya ziada inahitajika ikiwa mchakato wa ndani wa # # sftp seva unatumika. Angalia mfumo mdogo wa # # taarifa zaidi. Kwa chaguo-msingi, chroot haifanyiki. # # # ## Amri ya Nguvu ############################################## # # # Husababisha amri iliyobainishwa kutekelezwa. Hupuuza # # amri zozote zilizotumwa na mteja au zilizoandikwa kwa # # ~/.ssh/rc. Amri inaitwa kutoka kwa ganda # # la mtumiaji na -c chaguo. Inafaa kwa kuzindua ganda, amri # #, au mfumo mdogo. Muhimu zaidi ndani ya kizuizi # # cha Mechi. Amri iliyotolewa awali na mteja huhifadhiwa # # katika kigezo cha mazingira cha SSH_ORIGINAL_COMMAND. Ukibainisha # # amri ya "internal-sftp", seva ya # # ya ndani ya sftp itaanzishwa, ambayo haihitaji faili na folda # # za ziada zilizofafanuliwa katika maagizo ya ChrootDirectory. # # # ## Mfumo mdogo ############################################# ### # # # Inafafanua na kusanidi mfumo mdogo wa nje (kwa mfano # # daemon ya kuhamisha faili). # # Hoja ni jina na amri (pamoja na hoja # # zinazowezekana) ambazo zitatekelezwa wakati wa kuomba mifumo midogo # #. Amri ya sftp-server huanza "sftp" - # # mfumo mdogo wa kuhamisha faili. Zaidi ya hayo, unaweza kubainisha # # "internal-sftp" kama mfumo mdogo - ambao utazindua # # seva ya ndani ya sftp. Hii inaweza kurahisisha pakubwa usanidi wa # # unapotumia maagizo ya # # ChrootDirectory. Kwa chaguomsingi, hakuna mifumo ndogo # # inayoitwa. Inafaa tu kwa itifaki ya ssh2. # # # Mfumo mdogo sftp /usr/lib/openssh/sftp-server # # #################################### ############################ ##################### Mechi Zuia #################################################### ## ##################################### # # # Niliisogeza haswa hadi mwisho wa faili ili kuifanya iwe rahisi zaidi # # andika Sheria za Mechi. # # MadKox. # # # # Maagizo ya Mechi yanawakilisha kuanza kwa kizuizi cha masharti # #. Ikiwa vigezo vyote vilivyoainishwa kwenye # # mstari wa Mechi vimetimizwa, maagizo kwenye mistari inayofuata ya kizuizi yatatekelezwa, # # kuruhusu maadili ya maagizo ya kimataifa katika faili ya # # sshd_config kuepukwa kwa kesi ambayo ni vigezo vya # # Maelekezo ya Mechi. Kizuizi kinazingatiwa kuwa mistari yote inayokuja baada ya laini # # yenye kigezo (Linganisha - mistari) hadi mstari unaofuata unaolingana # # au hadi mwisho wa faili. Hoja ya maagizo ya Mechi ni jozi moja au # # nyingi za maingizo ya vigezo. Aina zinazowezekana maingizo: # # Mtumiaji # # Kikundi # # Mwenyeji # # Anwani # # Maingizo yanaweza kuwa na thamani moja # # (kwa mfano Mtumiaji=mtumiaji) au thamani nyingi # # zikitenganishwa na koma (Mtumiaji=mtumiaji1,mtumiaji2). # # pia inaweza kutumika maneno ya kawaida, iliyoelezewa katika sehemu ya # # PATTERNS ya faili ya ssh_config. Maingizo katika kigezo cha # # Anwani yanaweza kuwa na anwani katika nukuu ya CIDR # # (Anwani/Urefu wa Kinyago, k.m. "192.0.2.0/24" au # # "3ffe:ffff::/32"). Inafaa kukumbuka kuwa urefu uliotolewa wa # # wa barakoa lazima ulingane na anwani, na pia # # ndefu/fupi kwa anwani haitafanya kazi. # # Mechi inaweza tu kutumia # # seti mahususi ya maagizo kama maagizo: # # RuhusuUsambazajiTcp # # Bango # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAuthentication # # HostbasedAuthentication # # KbdInteractiveAuthentication # # Kerberos #UthibitishajiMax #Uthibitishaji # PasswordAuthentication # # PermitOpen # # PermitRootLogin # # RhostsRSAAuthentication # # RSAAUthentication # # X11DisplayOffset # # X11Forwarding # # X11UseLocalHost #

Unaweza kunakili maandishi hapo juu kwenye sshd_config yako na uitumie baadaye kwa usanidi.

Kwa yenyewe, seva ya SSH iliyosanidiwa vibaya ni hatari kubwa katika usalama wa mfumo, kwani mshambuliaji anayewezekana ana fursa ya kupata ufikiaji usio na kikomo kwa mfumo. Kando na hii, sshd ina ziada nyingi chaguzi muhimu, ambayo inashauriwa kujumuisha ili kuboresha utumiaji na usalama.

Bandari, Anwani ya Kusikiliza na AnwaniFamily

Vigezo hivi vitatu huamua ni bandari gani na anwani ambazo seva yako itasikiliza miunganisho inayoingia. Kwanza, inaeleweka, ikiwezekana, kuweka kikomo cha familia ya anwani zinazochakatwa kwa zile zinazotumiwa haswa, yaani, ikiwa unatumia IPv4 pekee, zima IPv6, na kinyume chake. Hii inaweza kufanywa kwa kutumia kigezo cha AnwaniFamily, kwa mfano (kuruhusu IPv4 na kukataa IPv6):

Anwani ajizi ya familia

Pili, inashauriwa kubadilisha bandari ya kawaida (22) ambayo sshd inasikiza. Hii ni kutokana na ukweli kwamba vichanganuzi vingi vya mtandao vinajaribu kuunganishwa kila mara kwenye bandari 22 na angalau kupata ufikiaji kwa kulazimisha kuingia/nenosiri kutoka kwa hifadhidata zao. Hata ikiwa uthibitishaji wa nenosiri umezimwa, majaribio haya huziba kumbukumbu kwa kiasi kikubwa na (kwa kiasi kikubwa) yanaweza kuathiri vibaya kasi ya seva ya ssh. Ikiwa kwa sababu fulani hutaki kubadilisha bandari ya kawaida, unaweza kutumia huduma mbalimbali za nje ili kupambana na vizuizi vya kikatili, kwa mfano kushindwa2ban, na vilivyojengwa ndani, kama vile MaxStartups.
Unaweza kuweka bandari kama ifuatavyo: thamani kamili kwa violesura vyote kwa kutumia maagizo ya Mlango, na thamani mahususi kwa kila kiolesura kwa kutumia maagizo ya ListenAddress. Kwa mfano:

Bandari ya 2002

SikilizaAnuani 192.168.0.1:2003 SikilizaAnuani 192.168.1.1:2004

Kataa ufikiaji wa mbali kwa mtumiaji mkuu

Kwa chaguo-msingi, ufikiaji wa mizizi ni marufuku kwa nenosiri (kwa ufunguo inawezekana) - chaguo la PermitRootLogin limewekwa bila-password . Lakini, mradi tu kwa chaguo-msingi in Mtumiaji wa Ubuntu, iliyoongezwa wakati wa ufungaji wa mfumo, ina uwezo wa kutatua kazi zote za utawala kupitia sudo, kuunda uwezo ufikiaji wa mizizi kwa mfumo kupitia ssh - inaonekana isiyo na maana (hata kwa uthibitishaji muhimu). Inashauriwa kuizima kabisa. chaguo hili, au uitumie tu katika hali ya kulazimishwa-amri-tu. Unaweza kulemaza ufikiaji wa mizizi kama hii:

Nambari ya PermitRootLogin

Uthibitishaji wa nenosiri

Kuruhusu uthibitishaji wa nenosiri kwa chaguo-msingi ndiko karibu zaidi kwa njia ya zamani idhini katika sshd. Kwa upande mmoja, hii hurahisisha usanidi na uunganisho wa watumiaji wapya (mtumiaji anahitaji tu kujua kuingia kwa mfumo/nenosiri lake), kwa upande mwingine, nenosiri linaweza kubashiriwa kila wakati, na watumiaji mara nyingi hupuuza kuunda nywila ngumu na ndefu. . roboti maalum mara kwa mara huchanganua seva za ssh zinazoweza kufikiwa kutoka kwa Mtandao na kujaribu kuingia kwao kwa kulazimisha kuingia/nenosiri kutoka kwa hifadhidata zao. Inapendekezwa sana kutotumia uthibitishaji wa nenosiri. Unaweza kuizima kama hii:

PasswordAuthentication no

Ikiwa kwa sababu fulani bado unataka kutumia uthibitishaji wa nenosiri, hakikisha kwamba hakuna mtu anayeweza kuingia na nenosiri tupu. Ili kufanya hivyo, weka maagizo ya PermitEmptyPasswords:

PermitEmptyPasswords no

Itifaki za SSH1 na SSH2

Kama ilivyotajwa tayari, sshd inaweza kufanya kazi na itifaki za SSH1 na SSH2. Hata hivyo, kutumia SSH1 isiyo salama ni tamaa sana. Unaweza kulazimisha sshd kufanya kazi tu na itifaki ya SSH2 kama hii:

Uthibitishaji kulingana na vitufe vya SSH2 RSA

Njia ya uidhinishaji inayopendelewa zaidi ni uthibitishaji kulingana na vitufe vya SSH2 RSA. Kwa njia hii, mtumiaji hutoa jozi ya funguo upande wake, ambayo ufunguo mmoja ni siri na mwingine ni wa umma. Ufunguo wa umma unanakiliwa kwa seva na hutumiwa kuthibitisha utambulisho wa mtumiaji. Kwa habari zaidi kuhusu kuunda jozi muhimu na jinsi ya kuziweka kwenye seva, angalia maelezo ya mteja wa SSH. Unaweza kuwezesha uthibitishaji wa ufunguo wa umma kama hii:

Uthibitishaji wa Pubkey ndio

Seva lazima ijue mahali pa kutafuta ufunguo wa umma wa mtumiaji. Kwa kusudi hili hutumiwa faili maalum funguo_zilizoidhinishwa. Syntax yake inaweza kuwa kama ifuatavyo:

# Maoni yameandikwa tu kwenye mstari mpya # mwonekano wa jumla wa maingizo katika faili_ya_funguo_zilizoidhinishwa # [chaguo] aina_ya_funguo (ssh-rsa au ssh-dss)_kamba_refu_isiyoeleweka kwa mtu wa kawaida [login@host] ssh-rsa AAAAB3Nza...LiPk == [barua pepe imelindwa] kutoka="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== [barua pepe imelindwa] command="dump /home",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh -dss AAAAB5...21S== tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== [barua pepe imelindwa]

Unaweza kubainisha ama faili moja iliyoshirikiwa na funguo, au faili moja kwa kila mtumiaji. Mbinu ya mwisho ni rahisi zaidi na salama, kwa sababu unaweza kwanza kutaja michanganyiko tofauti funguo kwa kila mtumiaji, na pili, punguza ufikiaji wa ufunguo wa umma wa mtumiaji. Unaweza kubainisha faili iliyo na vitufe kwa kutumia maagizo ya AuthorizedKeysFile:

AuthorizedKeysFile %h/.ssh/my_keys

kwa mtumiaji wa schema - faili
au

AuthorizedKeysFile /etc/ssh/authorized_keys

kwa mzunguko na faili iliyoshirikiwa. Kwa chaguo-msingi, mteja wa SSH hutafuta funguo katika ~/.ssh/authorized_keys faili.

Zaidi kuhusu usalama

Mipangilio ya ziada

Watumiaji na vikundi.

Ikiwa una watumiaji wengi "wanaoishi" kwenye seva yako, na unataka kuruhusu ufikiaji kupitia ssh kwa wachache tu kati yao, unaweza kutumia maagizo ya DenyUsers, AllowUsers, DenyGroups, na AllowGroups. Kwa habari zaidi kuhusu maagizo haya, angalia maoni katika sshd_config mfano.

Chaguzi za Hali ya Muunganisho

Kwa msingi, kati ya njia za kuamua hali ya unganisho, njia pekee ya kuangalia unganisho la TCP imewezeshwa - TCPKeepAlive, hata hivyo, sshd inaweza kuamua hali za unganisho kwa urahisi zaidi na. kwa njia salama. Tazama sehemu inayolingana katika sshd_config mfano kwa maelezo zaidi.

Utendaji. MaxStartups

Usambazaji wa Bandari

Uelekezaji kwingine wa X11

Kwenye seva, kwenye /etc/ssh/sshd_config faili, weka parameta (iliyowezeshwa na chaguo-msingi):

ForwardX11 ndiyo

Kwenye mteja, weka vigezo kwenye /etc/ssh/ssh_config faili (imezimwa kwa chaguo-msingi):

ForwardAgent ndiyo ForwardX11 ndiyo

Unaweza kuiendesha kwa mteja kama hii: ssh yurauname@serverip firefox . Au nenda kwanza kwa ssh yurauname@serverip kisha uendeshe, kwa mfano, sudo synaptic .

SFTP

sshd ina seva ya SFTP iliyojengewa ndani kwa chaguo-msingi. Itifaki ya SFTP(SSH Uhamisho wa Faili Itifaki) - Itifaki ya SSH ya kuhamisha faili. Imeundwa kunakili na kufanya shughuli zingine za faili kupitia muunganisho wa kuaminika na salama. Kama sheria, itifaki ya SSH2 hutumiwa kama itifaki ya msingi inayotoa muunganisho. Ili kuwezesha usaidizi wa SFTP, ongeza laini kwa sshd_config

Mfumo mdogo sftp /usr/lib/openssh/sftp-server

Kwa chaguo-msingi, usaidizi wa SFTP umewezeshwa.

Kwa kutumia vigezo. Maelekezo ya mechi

Kuanzisha mteja wa SSH

Kuingia kwa kutumia ufunguo kunachukuliwa kuwa salama zaidi, na katika hali nyingi kipengele hiki kimewashwa kwenye upande wa seva, kwa hivyo hakuna haki za mtumiaji mkuu zinazohitajika kuitumia. Washa mashine ya mteja toa ufunguo:

ssh-keygen -t rsa

Tunaulizwa kuingia nenosiri ili kulinda faili muhimu (inageuka kuwa muhimu ikiwa faili itaanguka kwenye mikono isiyofaa). Ikiwa tutafanya hati kupitia SSH, basi tunaiacha tupu. Tunahamisha ufunguo wa umma kwa seva na amri

Ssh-copy-id -i ~/ .ssh/ id_rsa.pub user@ seva

Hiyo ni, unaweza kuingia.

Wakati ssh inafanya kazi kwenye bandari isiyo ya kawaida:

Ssh-copy-id -i ~/ .ssh/ id_rsa.pub "-p port user@server"

Hitilafu ikitokea: Mlango mbaya "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

jaribu kuweka vigezo katika nukuu:

Ssh-copy-id "-i /home/user/.ssh/id_rsa.pub "-p port user@server""

Ni rahisi kutumia matumizi ya skrini wakati wa kuunganisha kwenye mfumo wa mbali.

Kuanzisha saraka ya ssh ya mbali huko Nautilus

Kuweka saraka ya mbali kwa kutumia sshfs

Kuweka saraka ya mbali kwa saraka ya ndani

sshfs user@ hostingserver.ru:/ home/ userdir ~/ sshfsdir

Inashusha

Fusermount -u ~/ sshsfdir

Lakabu za SSH

Unapotumia seva kadhaa zilizo na vigezo tofauti vya ufikiaji (bandari isiyo ya kawaida, jina la mwenyeji wa muda mrefu, kuingia zaidi ya ile ya ndani, nk), wakati mwingine ni ngumu kuingiza mipangilio yote ya uunganisho tena kila wakati. Ili kufanya hivyo rahisi, unaweza kutumia lakabu.

Mipangilio huhifadhiwa katika ~/.ssh/config kwa mtumiaji mmoja na katika /etc/ssh/ssh_config kimataifa kwa watumiaji wote.

Mfano wa usanidi. Seva nyingi zinaweza kuelezewa. Maelezo zaidi ndani man ssh_config(sio kuchanganyikiwa na sshd_config)

Jina la Mpangishishaji # Jina la mpangishi holela la Jina la Mpangishi 1.2.3.4 # Unaweza kubainisha IP na jina la mpangishi (ikiwa DNS inaendeshwa) MtumiajiJina LakoMtumiaji # Ikiwa mtumiaji halingani na mtumiaji wa karibu Bandari YakoSSHPort # Ikiwa lango lisilo la kawaida

Baada ya hayo, unaweza kuunganisha kwenye seva na amri

ssh Jina la Alias

ssh-wakala

Utambuzi wa matatizo ya muunganisho

    Uchambuzi wa kumbukumbu ya muunganisho:

ssh -vvv mtumiaji@ mwenyeji

Mahali pa faili za usanidi zinaweza kupatikana

Mtu ssh mtu sshd

Kwa kutumia kadi smart

1. Kuunda cheti na kusafirisha ufunguo wa umma, pamoja na sehemu ya mteja kwenye Windows + Putty SC, imeelezewa kwenye tovuti: http://habrahabr.ru/post/88540/ Nyongeza ya Meneja Muhimu ilivyoelezwa hapo ni. inapatikana tu katika matoleo ya zamani ya Firefox. Ilijaribiwa kwenye toleo la 3.5 la Windows. Kiungo cha moja kwa moja kwa programu jalizi: https://addons.mozilla.org/ru/firefox/addon/key-manager/

2. Kuandaa seva. Unahitaji kuhakikisha kuwa usanidi wako wa sshd unaruhusu uthibitishaji kwa kutumia funguo za umma. Ili kufanya hivyo, unahitaji kutaja thamani ya parameter ya "PubkeyAuthentication" kwa "ndiyo" katika faili ya "sshd_config". Kisha tunaongeza ufunguo wetu wa umma uliopatikana mapema (katika mstari mmoja) kwenye faili "~/.ssh/authorized_keys". Tafadhali kumbuka kuwa faili ya ".ssh/authorized_keys" iko katika saraka ya nyumbani ya mtumiaji ambaye ataingia kwa kutumia ufunguo wa umma.

3. Sehemu ya mteja kwenye Linux. Utahitaji kuunda tena kifurushi cha OpenSSH bila vigezo. Inapendekezwa tu kutaja viambishi vya saraka, kwa mfano -prefix=/usr. Unapaswa pia kumbuka kuwa faili za usanidi zitakuwa ndani /usr/etc. Kabla ya kuanza, unahitaji vifurushi vifuatavyo: opensc-lite-devel, zlib-devel, openssl-devel. Sakinisha kiendeshi cha kadi mahiri. Kwa urahisi, katika usanidi wa ssh_config (usichanganyike na sshd_config), taja njia ya maktaba ya pkcs: PKCS11Provider=<путь к библиотеке>

4. Kwa mteja, endesha ssh user@host Kama kadi mahiri (tokeni) imeunganishwa, utaulizwa nenosiri na kuingia kwenye kipindi cha SSH.

Shida zinazowezekana wakati wa matumizi

Mchanganyiko wa ufunguo wa kawaida Ctrl + S, unaotumiwa katika wahariri wengi kuokoa masahihisho, wakati wa kufanya kazi kwenye terminal na seva ya ssh, itasababisha utekelezaji wa amri ya XOFF, ambayo inafanana na kufungia kikao. Hata hivyo, sivyo. Seva inaendelea kukubali herufi na amri za kuingiza, lakini haiionyeshi kwenye skrini. Ili kuondokana na tatizo hili, tumia tu mchanganyiko Ctrl + Q, na hivyo kuwasha hali ya XON nyuma.

Viungo

Hiyo ni, mtumiaji1 anaweza kusajiliwa kwa ajili yake mwenyewe - katika faili /home/user1/.ssh/keys) na kwa mtumiaji mwingine, ambayo itamruhusu kuingia kutoka kwa kompyuta yake "chini yake" na chini ya "mwingine"

Kuna fursa nyingi za kupanga ufikiaji wa mbali kwa kompyuta yako kupitia muunganisho wa Mtandao. Baadhi yao ni ngumu sana na hutumiwa tu na wataalamu katika mazingira ya kitaaluma, wakati zingine ni rahisi sana na zinaweza kueleweka hata na watumiaji wasio na uzoefu. Tayari tumeandika juu ya njia kadhaa, haswa, kuhusu programu ya TeamViewer na itifaki ya VNC.

Nuances ya kufanya kazi na itifaki ya SSH huko Ubuntu.

Katika makala hii tutazungumzia itifaki ya uunganisho salama wa SSH, ambayo hivi karibuni imekuwa karibu kiwango katika mazingira. Watumiaji wa Linux. Ni salama sana kwani inasaidia usimbaji fiche na pia ni rahisi sana kusanidi. Tutaangalia vipengele vya itifaki ya SSH, na pia kujifunza jinsi ya kusanidi seva na mteja. Yote ambayo itahitajika kwako ni kuwa na kompyuta iliyo na mfumo wa uendeshaji wa Ubuntu iliyosakinishwa na muunganisho wa Mtandao.

Itifaki ya Secure Shell, pia inajulikana kama SSH, ni itifaki maalum ya ufikiaji salama wa mbali kwa kompyuta kupitia muunganisho wa mtandao. Itifaki ina uwezo mwingi, ikiwa ni pamoja na kuanzisha muunganisho salama, kuzindua terminal ya mstari wa amri kwenye kompyuta unayounganisha kwa mbali, kuendesha programu za GUI, kuhamisha faili, na kupeleka mitandao ya kibinafsi.

Kuna huduma nyingi zinazohusika na kusimamia itifaki. Katika chumba cha upasuaji Mfumo wa Ubuntu maarufu zaidi ni Open SSH. Hii ni bidhaa ya bure kabisa na leseni wazi na seti kamili ya kazi muhimu zaidi. Mteja wa kusimamia muunganisho wa SSH tayari amejumuishwa katika usambazaji wa Ubuntu, utahitaji tu kusakinisha na kusanidi vipengele vya seva. Udhibiti unafanywa kupitia amri katika terminal.

Kufunga SSH kwenye Ubuntu

Kwa kuwa itifaki ya mteja wa SSH kwa usimamizi wake ni kiwango kinachokubalika kwa ujumla, unaweza kuisanikisha kwa kutumia amri fupi kwenye terminal ya Ubuntu. ili kufanya hivyo, zindua terminal yenyewe kwa kubonyeza njia ya mkato ya kibodi Ctrl + Alt + T, kisha utumie amri sudo apt-get install ssh. Mara tu ikiwa tayari kupakua, matumizi yatakuuliza ikiwa ungependa kuendelea. badilisha kibodi hadi Kirusi na ubonyeze D. Kwenye kompyuta yako ya Ubuntu, usakinishaji wa ssh utakamilika katika sekunde chache. Ikiwa unataka kuwezesha uanzishaji kiotomatiki wakati wa kuanza kwa mfumo, tumia sudo systemctl wezesha amri ya sshd. ipasavyo, ikiwa baadaye ungependa kuondoa huduma kutoka kuanza moja kwa moja, utahitaji amri sudo systemctl lemaza sshd.

Sasa unaweza kuangalia jinsi kila kitu kinavyofanya kazi. Unachohitaji kufanya ni kujaribu kuunganishwa na seva ya ndani ya SSH: ssh localhost. Huduma hakika itauliza nywila ya mtumiaji mkuu, na pia itatoa kuongeza anwani iliyoingia kwenye orodha ya wanaoruhusiwa. Ikiwa kila kitu kitafanya kazi kama inavyotarajiwa kwako, utaona ujumbe mdogo unaoishia na arifa kuhusu tarehe ya muunganisho wa mwisho kwenye anwani.

Sasa unaweza kuunganisha kwenye kompyuta yoyote kwenye mtandao ikiwa unajua anwani yake ya IP na jina la mtumiaji. Ili kufanya hivyo, kwenye terminal unahitaji kuingiza amri katika muundo ufuatao:

ssh jina la mtumiaji@ip_anwani

Kwa mfano, ikiwa unataka kuunganisha kwenye kompyuta ya Vasya Pupkin na anwani 132.14.25.10, basi amri itaonekana kama hii:

ssh [barua pepe imelindwa]

Kuanzisha SSH katika Ubuntu

Ili kufanya kazi kwa usahihi na kwa usalama na seva ya SSH, lazima isanidiwe kwa njia fulani. Ili kufanya hivyo, unahitaji kuhariri faili ya vigezo vya sshd_config iliyoko kwenye saraka /etc/ssh. Ni vyema kutambua kwamba haiwezi kubadilishwa kwa kuifungua tu kupitia meneja wa faili katika mhariri wa maandishi ya kawaida. Mfumo utakujulisha juu ya haki zisizo za kutosha, na hutaweza kuhifadhi mabadiliko. Kwa hiyo, utahitaji tena terminal na ujuzi wa amri kadhaa, ambazo tutashughulikia sasa. Wacha tuangalie hatua muhimu za kusanidi seva ya ssh kwenye mfumo wa uendeshaji wa Ubuntu.


Unaweza kubadilisha nini katika mipangilio ya SSH?


Amri za chini zinazohitajika


muhtasari: Kifungu kinaelezea vitendaji vya kina vya OpenSSH ambavyo vinaweza kurahisisha sana maisha ya wasimamizi wa mfumo na watayarishaji programu ambao hawaogopi ganda. Tofauti na miongozo mingi, ambayo haielezi chochote isipokuwa funguo na -L/D/R chaguzi, nilijaribu kukusanya huduma zote za kupendeza na matumizi ambayo ssh huleta nayo.

Onyo: chapisho Sana voluminous, lakini kwa urahisi wa matumizi niliamua kutoikata vipande vipande.

Jedwali la Yaliyomo:

  • usimamizi muhimu
  • kunakili faili kupitia ssh
  • Inasambaza mitiririko ya I/O
  • Kuweka FS ya mbali kupitia ssh
  • Utekelezaji wa msimbo wa mbali
  • Lakabu na chaguzi za miunganisho katika .ssh/config
  • Chaguo-msingi
  • Usambazaji wa seva ya X
  • ssh kama wakala wa soksi
  • Usambazaji wa bandari - mbele na nyuma
  • Wakala wa Reverse Sox
  • kuelekeza trafiki ya L2/L3
  • Usambazaji wa wakala wa uidhinishaji
  • Kuweka ssh kupitia ssh kupitia seva isiyoaminika ( uwezekano mkubwa hujui hili)

Usimamizi muhimu

Nadharia kwa maneno machache: ssh inaweza kuingia sio kwa nenosiri, lakini kwa ufunguo. Ufunguo una sehemu ya wazi na iliyofungwa. Ya wazi imewekwa kwenye saraka ya nyumbani ya mtumiaji ambaye anapata seva, iliyofungwa imewekwa kwenye saraka ya nyumbani ya mtumiaji anayeenda kwenye seva ya mbali. Nusu zinalinganishwa (ninatia chumvi) na ikiwa kila kitu kiko sawa, wanaruhusiwa kuingia. Muhimu: sio tu mteja aliyeidhinishwa kwenye seva, lakini pia seva kuhusiana na mteja (yaani, seva ina ufunguo wake mwenyewe). Kipengele kikuu cha ufunguo ikilinganishwa na nenosiri ni kwamba haiwezi "kuibiwa" kwa kudukua seva - ufunguo hauhamishwi kutoka kwa mteja hadi kwa seva, na wakati wa idhini mteja anathibitisha kwa seva kuwa anamiliki ufunguo (hiyo sawa. uchawi wa kriptografia).

Kizazi muhimu

Unaweza kutengeneza ufunguo wako mwenyewe kwa kutumia ssh-keygen amri. Ikiwa hutaweka vigezo, itahifadhi kila kitu kama inavyopaswa.

Kitufe kinaweza kufungwa na nenosiri. Nenosiri hili (katika GUI za kawaida) huulizwa mara moja na huhifadhiwa kwa muda. Ikiwa nenosiri ni tupu, halitaulizwa linapotumiwa. Haiwezekani kurejesha nenosiri lililosahau.

Unaweza kubadilisha nenosiri kwa ufunguo kwa kutumia amri ssh-keygen -p.

Muundo muhimu

(ikiwa swali kuhusu eneo lilijibiwa kwa chaguo-msingi).
~/.ssh/id_rsa.pub - ufunguo wa umma. Imenakiliwa kwa seva ambapo unahitaji kupata ufikiaji.
~/.ssh/id_rsa- ufunguo wa kibinafsi. Haiwezi kuonyeshwa kwa mtu yeyote. Ukiinakili na kuibandika kwenye herufi/soga badala ya baa, basi unahitaji kutengeneza ufunguo mpya. (Sicheshi, karibu 10% ya watu unaowauliza ssh key post id_rsa, na kati ya hizi asilimia kumi, 100% ni wanaume).

Kunakili ufunguo kwa seva

Katika saraka ya mtumiaji unayotaka kuingia kama, ikiwa utaunda faili ~/.ssh/authorized_keys na kuweka ufunguo wa umma huko, unaweza kuingia bila nenosiri. Tafadhali kumbuka kuwa ruhusa za faili hazipaswi kuruhusu watumiaji ambao hawajaidhinishwa kuandika kwa faili hii, vinginevyo ssh haitakubali. Sehemu ya mwisho kwenye ufunguo ni user@machine. Haina uhusiano wowote na idhini na hutumikia tu kwa urahisi wa kuamua ni wapi ufunguo uko. Kumbuka kwamba uwanja huu unaweza kubadilishwa (au hata kufutwa) bila kuvunja muundo muhimu.

Ikiwa unajua nenosiri la mtumiaji, mchakato unaweza kurahisishwa. Timu ssh-copy-id user@server hukuruhusu kunakili ufunguo bila kuhariri faili mwenyewe.

Kumbuka: Miongozo ya zamani ya ssh inataja authorized_keys2. Sababu: kulikuwa na toleo la kwanza la ssh, kisha kulikuwa na la pili (sasa), walitengeneza seti zao za usanidi kwa ajili yake, kila mtu alikuwa amechoka sana, na toleo la pili lilibadilisha matoleo bila "2" kwa muda mrefu. wakati uliopita. Hiyo ni, funguo zilizoidhinishwa kila wakati na usifikirie juu ya matoleo tofauti.

Ikiwa una ssh kwenye bandari isiyo ya kawaida, basi ssh-copy-id inahitaji hila maalum wakati wa kufanya kazi: ssh-copy-id "-p 443 user@server" (makini na nukuu).

Ufunguo wa seva

Mara ya kwanza unapoingia kwenye seva, ssh inakuuliza ikiwa unaamini ufunguo. Ukijibu hapana, unganisho umefungwa. Ikiwa ndio, ufunguo umehifadhiwa kwenye faili ~/.ssh/known_hosts. Haiwezekani kujua ni ufunguo gani (kwa sababu sio salama).

Ikiwa ufunguo wa seva umebadilika (kwa mfano, seva iliwekwa tena), ssh inapiga mayowe kwamba ufunguo umeghushiwa. Tafadhali kumbuka kuwa ikiwa seva haijaguswa, lakini ssh inapiga kelele, basi unaingia kwenye seva isiyo sahihi (kwa mfano, kompyuta nyingine yenye IP sawa ilionekana kwenye mtandao, kila aina ya mitandao ya ndani na 192.168.1.1, ambayo kuna mamilioni kadhaa ulimwenguni, haswa wanaugua hii) . Mfano "mtu mwovu katika mashambulizi ya kati"haiwezekani, mara nyingi zaidi kuliko sivyo ni makosa tu na IP, ingawa ikiwa "kila kitu kiko sawa" na ufunguo umebadilika, hii ni sababu ya kuongeza kiwango cha paranoia viwango kadhaa (na ikiwa una idhini ya kutumia. ufunguo, na seva inauliza ghafla nenosiri, basi paranoia inaweza kugeuka 100% na usiingie nenosiri).

Unaweza kufuta ufunguo wa seva unaojulikana kwa amri seva ya ssh-keygen -R. Katika kesi hii, unahitaji pia kufuta ufunguo wa IP (zimehifadhiwa kando): ssh-keygen -R 127.0.0.1.

Ufunguo wa seva umehifadhiwa ndani /etc/ssh/ssh_host_rsa_key Na /etc/ssh/ssh_host_rsa_key.pub. Wanaweza kuwa:
a) nakala kutoka kwa seva ya zamani hadi mpya.
b) toa kwa kutumia ssh-keygen. Hakuna haja ya kutaja nenosiri (yaani, tupu). Seva ya ssh haitaweza kutumia ufunguo na nenosiri.

Kumbuka kwamba ikiwa unaunganisha seva (kwa mfano, katika mashine za kawaida), basi funguo za ssh za seva lazima zizalishwe upya.

Ni bora kuondoa funguo za zamani kutoka kwa know_hosts, vinginevyo ssh italalamika juu ya ufunguo wa nakala.

Kunakili faili

Kuhamisha faili kwa seva wakati mwingine kunaweza kuchosha. Kando na kutatanisha na sftp na vitu vingine vya kushangaza, ssh hutupatia amri scp, ambayo inakili faili kupitia kikao cha ssh.

Scp njia/myfile [barua pepe imelindwa]:/kamili/njia/kwenda/mpya/mahali/

Unaweza pia kufanya kinyume:
scp [barua pepe imelindwa]:/full/path/to/file /path/to/put/hapa

Onyo la samaki: Licha ya ukweli kwamba mc inaweza kuunganishwa kupitia ssh, nakala faili kubwa Itakuwa chungu sana, kwa sababu ... samaki (moduli ya mc ya kufanya kazi na ssh kama fs pepe) ni polepole sana. 100-200kb ni kikomo, basi mtihani wa uvumilivu huanza. (Nilikumbuka ujana wangu wa mapema, wakati, bila kujua juu ya scp, nilinakili ~ 5GB kupitia samaki kwa mc, ilichukua zaidi ya masaa 12 kwenye FastEthernet).

Kuweza kunakili ni vizuri. Lakini nataka "kuhifadhi kama" - na mara moja kwa seva. Na ili ndani hali ya picha nakala sio kutoka programu maalum, lakini kutoka kwa mtu yeyote anayejulikana.

Hii pia inawezekana:

sshfs

Nadharia: Moduli ya fuse hukuruhusu "kusafirisha" maombi kwa mfumo wa faili kutoka kwa kernel kurudi kwenye nafasi ya mtumiaji hadi kwa programu inayolingana. Hii inaruhusu "mifumo ya faili ya pseudo" kutekelezwa kwa urahisi. Kwa mfano, tunaweza kutoa ufikiaji wa mfumo wa faili wa mbali kupitia ssh ili programu zote za ndani (isipokuwa chache) zisishuku chochote.

Kwa kweli, kuna ubaguzi: O_DIRECT haitumiki, kwa bahati mbaya (hili sio shida ya sshfs, hili ni shida ya fuse kwa ujumla).

Matumizi: sasisha kifurushi cha sshfs (itaburuta fuse pamoja nayo).

Kwa kweli, mfano wa hati yangu ambayo huweka deunote.ru (iko kwenye kompyuta yangu ya nyumbani - picha zinaonyeshwa kutoka kwayo katika nakala hii) kwenye kompyuta yangu ndogo:

#!/bin/bash sshfs desunote.ru:/var/www/desunote.ru/ /media/desunote.ru -o unganisha tena

Tunatengeneza faili +x, iite, nenda kwa programu yoyote, sema hifadhi na uone:

sshfs chaguzi ambazo zinaweza kuwa muhimu: -o kuunganisha tena (inasema jaribu kuunganisha tena badala ya makosa).

Ikiwa unafanya kazi nyingi na data kutoka kwa mizizi, basi unaweza (unapaswa) kutengeneza idmap:

-o idmap=mtumiaji. Inafanya kazi kama ifuatavyo: ikiwa tutaunganishwa kama mtumiaji pupkin@server, na kufanya kazi ndani kama mtumiaji vasiliy, basi tunasema "fikiria kuwa faili za pupkin ni faili za vasiliy." vizuri, au "mzizi", ikiwa tutaunganisha kama mzizi.

Katika kesi yangu, idmap haihitajiki, kwani majina ya watumiaji (ya ndani na ya mbali) ni sawa.

Kumbuka kuwa tunaweza kufanya kazi kwa raha tu ikiwa tuna ufunguo wa ssh (tazama mwanzo wa kifungu), ikiwa sivyo, uidhinishaji wa nenosiri unachukiza kwa miunganisho 2-3.

Unaweza kuizima tena kwa amri fusermount -u /njia, hata hivyo, ikiwa muunganisho umekwama (kwa mfano, hakuna mtandao), basi unaweza/unapaswa kufanya hivyo kutoka kwa mzizi: sudo umount -f /path.

Utekelezaji wa msimbo wa mbali

ssh inaweza kutekeleza amri kwenye seva ya mbali na kufunga unganisho mara moja. Mfano rahisi zaidi:

Ssh user@server ls /etc/

Itaonyesha yaliyomo /etc/ kwenye seva, wakati tutakuwa na safu ya amri ya ndani.

Programu zingine zinataka kuwa na terminal ya kudhibiti. Zinapaswa kuendeshwa na -t chaguo:
ssh user@server -t remove_command

Kwa njia, tunaweza kufanya kitu kama hiki:
ssh user@server paka /some/file|awk "(chapisha $2)" |local_app

Hii inatupeleka kwenye kipengele kifuatacho:

Sambaza stdin/nje

Wacha tuseme tunataka kufanya ombi kwa programu kwa mbali, na kisha kuweka matokeo yake kwenye faili ya kawaida

Ssh [barua pepe imelindwa] amri > faili_langu

Wacha tuseme tunataka kutoa mazao ya ndani kwa mbali

Mycommand |scp - [barua pepe imelindwa]:/path/remote_file

Wacha tuchanganye mfano - tunaweza kuhamisha faili kutoka kwa seva hadi seva: Tunatengeneza mnyororo kuweka stdin kwenye 10.1.1.2, ambayo haipatikani kwetu kutoka nje:

Amri yangu | ssh [barua pepe imelindwa]"scp - [barua pepe imelindwa]:/njia/kwa/faili"

Pia kuna mbinu ya kutatanisha ya kutumia bomba (iliyopendekezwa kwa fadhili kwenye maoni juu ya LJ):

Lami -c * | ssh mtumiaji @ seva "cd && tar -x"

Tar hupakia faili kwa kutumia kinyago, huziandika kwa stdout, kutoka ambapo ssh huzisoma, huzihamisha hadi stdin kwenye seva ya mbali, ambapo cd huzipuuza (hazisomi stdin), na tar huzisoma na kuzifungua. Kwa hivyo kusema, scp ni kwa masikini.

Majina ya utani

Kuwa mkweli, sikuijua au kuitumia hadi hivi majuzi. Waligeuka kuwa rahisi sana.

Katika kampuni kubwa zaidi au chini, mara nyingi hubadilika kuwa majina ya seva yanaonekana kama hii: spb-MX-i3.extrt.int.company.net. Na mtumiaji hapo si sawa na wa ndani. Hiyo ni, unahitaji kuingia kama hii: ssh [barua pepe imelindwa]. Kila wakati unapoandika, hautapata syndromes za kutosha za handaki. Katika kampuni ndogo, shida ni kinyume - hakuna mtu anayefikiria juu ya DNS, na ufikiaji wa seva unaonekana kama hii: ssh. [barua pepe imelindwa]. Kwa kifupi, lakini bado inakera. Kuna mchezo wa kuigiza zaidi ikiwa tuna bandari isiyo ya kawaida, na, kwa mfano, toleo la kwanza la ssh (hujambo kwa Ciscos). Halafu kila kitu kinaonekana kama hii: ssh -1 -p 334 [barua pepe imelindwa]. Jinyonga. Sitaki hata kuzungumza juu ya mchezo wa kuigiza na scp.

Unaweza kusajili lakabu za mfumo mzima kwenye IP (/etc/hosts), lakini hili ni suluhu iliyopotoka (mtumiaji na chaguo bado zimechapishwa). Kuna njia fupi zaidi.

Faili ~/.ssh/config inakuwezesha kuweka vigezo vya uunganisho, ikiwa ni pamoja na wale maalum kwa seva, ambayo ni muhimu zaidi, tofauti kwa kila seva. Hapa kuna mfano wa usanidi:

Jina la mpangishi ric ooo-pembe-na-hooves.rf Msimamizi wa Mtumiaji ForwardX11 ndiyo Mfinyazo ndiyo Nyumba ya mwenyeji Jina la mwenyeji myhome.dyndns.org Mtumiaji vasya Nenosiri la Uthibitishaji

Chaguzi zote zinazopatikana zinaweza kuonekana ndani man ssh_config(sio kuchanganyikiwa na sshd_config).

Chaguo-msingi

Kama kwa kidokezo cha UUSER: unaweza kutaja mipangilio chaguo-msingi ya unganisho kwa kutumia Host * construct, yaani, kwa mfano:

Mpangishi * Mfinyazo wa mzizi wa mtumiaji ndiyo

Vile vile vinaweza kufanywa katika /etc/ssh/ssh_config (sio kuchanganyikiwa na /etc/ssh/ssh d _config), lakini hii inahitaji haki za mizizi na inatumika kwa watumiaji wote.

Usambazaji wa seva ya X

Kwa kweli, niliharibu sehemu hii kidogo kwenye mfano wa usanidi hapo juu. ForwardX11 ni hivyo tu.

Nadharia: Utumizi wa picha katika Unix kawaida hutumia seva ya X (njia iko njiani, lakini bado haiko tayari). Hii inamaanisha kuwa programu huanza na kuunganishwa na seva ya X kwa kuchora. Kwa maneno mengine, ikiwa una seva tupu bila gui na kuna x-seva ya ndani(ambayo unafanya kazi), basi unaweza kuruhusu programu kutoka kwa seva kuchora kwenye eneo-kazi lako. Kawaida kuunganishwa na seva ya mbali ya X- sio jambo salama na lisilo na maana. SSH hukuruhusu kurahisisha mchakato huu na kuifanya kuwa salama kabisa. Na uwezo wa kupunguza trafiki pia hukuruhusu kupata na trafiki kidogo (ambayo ni, kupunguza utumiaji wa kituo, ambayo ni, kupunguza ping (kwa usahihi, latency), ambayo ni, kupunguza lagi).

Vifunguo: -X - Usambazaji wa seva ya X. -Y idhini ya usambazaji.

Unahitaji tu kukumbuka mchanganyiko ssh -XYC user@SERVER.
Katika mfano hapo juu (majina ya kampuni ni ya uwongo), ninaunganisha kwenye seva ya ooo-horns-i-kopyta.rf kwa sababu, lakini ili kupata seva ya Windows. Sote tunajua usalama wa Microsoft tunapofanya kazi kwenye mtandao, kwa hivyo inasikitisha kufichua RDP uchi nje. Badala yake, tunaunganisha kwa seva kupitia ssh, na kisha endesha amri ya rdesktop hapo:
ssh ric
rdesktop -k en-us 192.168.1.1 -g 1900x1200

Na muujiza, dirisha la kuingia kwenye madirisha kwenye desktop yetu. Kumbuka kuwa imesimbwa kwa uangalifu na haiwezi kutofautishwa na trafiki ya kawaida ya ssh.

Wakala wa soksi

Ninapojikuta katika hoteli nyingine (mkahawa, mkutano), wifi ya ndani mara nyingi hugeuka kuwa mbaya - bandari zilizofungwa, kiwango kisichojulikana cha usalama. Na hakuna uaminifu mkubwa katika sehemu za ufikiaji za watu wengine (hii sio paranoia, nimeona jinsi nywila na vidakuzi vinavyoibiwa kwa kutumia kompyuta ndogo ya banal ambayo inasambaza 3G kwa kila mtu aliye na jina la cafe iliyo karibu (na anaandika mambo ya kupendeza katika mchakato. )).

Bandari zilizofungwa husababisha shida fulani. Jabber itafungwa, kisha IMAP, au kitu kingine.

VPN ya kawaida (pptp, l2tp, openvpn) haifanyi kazi katika hali kama hizi - hairuhusiwi kupitia. Inajulikana kwa majaribio kuwa bandari 443 mara nyingi huachwa, na katika hali ya CONNECT, yaani, inapitishwa "kama ilivyo" (http ya kawaida pia inaweza kufungwa kwa uwazi katika SQUID).

Suluhisho ni wakala wa soksi ssh hali ya kufanya kazi. Kanuni yake: mteja wa ssh huunganisha kwa seva na kusikiliza ndani. Baada ya kupokea ombi, huituma (kupitia unganisho wazi) kwa seva, seva huanzisha muunganisho kulingana na ombi na kusambaza data zote kwa mteja wa ssh. Na anajibu mtu aliyeuliza. Ili kufanya kazi, unahitaji kuwaambia programu "tumia soksi-proksi". Na taja anwani ya IP ya wakala. Kwa upande wa ssh, huyu mara nyingi huwa mwenyeji (kwa njia hii hutawapa wageni chaneli yako).

Muunganisho katika modi ya wakala wa soksi inaonekana kama hii:
ssh -D 8080 mtumiaji@server

Kwa sababu ya ukweli kwamba wifi ya watu wengine mara nyingi sio mbaya tu, lakini pia polepole, inaweza kuwa wazo nzuri kuwezesha chaguo la -C (compress trafiki). Inageuka karibu opera turbo(picha tu hazibonyezi). Katika kutumia halisi kwenye http, inachukua mara 2-3 (soma - ikiwa una bahati mbaya ya 64kbit, basi utafungua kurasa za megabyte si kwa dakika mbili, lakini kwa sekunde 40. Inavuta, lakini bado ni bora). Lakini jambo kuu: hakuna kuki zilizoibiwa au vikao vya kusikizwa.

Sio bure kwamba nilisema juu ya bandari zilizofungwa. Bandari ya 22 imefungwa kwa njia sawa na bandari ya jabber "isiyo ya lazima". Suluhisho ni kunyongwa seva kwenye bandari 443. Sio thamani ya kuondoa kutoka 22, wakati mwingine kuna mifumo yenye DPI (ukaguzi wa pakiti ya kina) ambayo haitaruhusu "pseudo-ssl" yako.

Hivi ndivyo usanidi wangu unavyoonekana:

/etc/ssh/sshd_config:
(kipande)
Bandari ya 22
Bandari ya 443

Na hapa kuna kipande cha ~/.ssh/config kutoka kwa kompyuta ya mkononi kinachoelezea vpn

Jina la mpangishi vpn desunote.ru Mtumiaji vasya Mfinyazo ndiyo DynamicForward 127.1:8080 Port 443

(kumbuka aina ya uvivu ya kuandika localhost - 127.1, hii ni njia ya kisheria kabisa kuandika 127.0.0.1)

Usambazaji wa bandari

Tunasonga kwenye sehemu ngumu sana kuelewa ya utendakazi wa SSH, ambayo hukuruhusu kutekeleza shughuli za kutatanisha za upangaji wa TCP "kutoka kwa seva" na "hadi kwenye seva".

Ili kuelewa hali hiyo, mifano yote hapa chini itarejelea mchoro huu:

Maoni: Mitandao miwili ya kijivu. Mtandao wa kwanza unafanana na mtandao wa kawaida wa ofisi (NAT), pili ni "lango", yaani, seva yenye interface nyeupe na moja ya kijivu inakabiliwa na mtandao wake wa kibinafsi. Katika hoja zaidi, tunadhania kwamba kompyuta ndogo "yetu" ni A, na "seva" ni B.

Kazi: Tuna programu inayoendeshwa ndani ya nchi, tunahitaji kuruhusu mtumiaji mwingine (nje ya mtandao wetu) kuiona.

Suluhisho: sambaza bandari ya ndani (127.0.0.1:80) kwa anwani inayoweza kufikiwa na umma. Hebu tuseme B yetu "inayopatikana kwa umma" ina bandari 80 na kitu muhimu, kwa hivyo tutasambaza kwa bandari isiyo ya kawaida (8080).

Usanidi wa mwisho: maombi ya 8.8.8.8:8080 yatatumwa kwa mwenyeji wa kompyuta ndogo A.

Ssh -R 127.1:80:8.8.8.8:8080 [barua pepe imelindwa]

Chaguo -R hukuruhusu kuelekeza kutoka kwa mbali ( R emote) bandari ya seva kwa yako mwenyewe (ya ndani).
Muhimu: ikiwa tunataka kutumia anwani 8.8.8.8, basi tunahitaji kuwezesha GatewayPorts katika mipangilio ya seva B.
Kazi. Kwenye seva "B" daemon fulani (kwa mfano, seva ya sql) inasikiliza. Programu yetu haioani na seva (kiwango tofauti cha biti, Mfumo wa uendeshaji, msimamizi mwovu ambaye anakataza na kuweka vikomo, n.k.). Tunataka kufikia ndani mwenyeji wa mbali.

Usanidi wa mwisho: maombi kwa localhost:3333 kwenye "A" yanapaswa kutumwa na daemon kwenye localhost:3128 "B".

Ssh -L 127.1:3333:127.1:3128 [barua pepe imelindwa]

Chaguo -L inaruhusu simu za ndani ( L ocal) moja kwa moja kwa seva ya mbali.

Kazi: Kwenye seva "B" huduma fulani inasikiza kwenye kiolesura cha kijivu na tunataka kumpa mwenzetu (192.168.0.3) fursa ya kutazama programu hii.

Usanidi wa mwisho: maombi kwa anwani yetu ya kijivu ya IP (192.168.0.2) nenda kwenye kiolesura cha kijivu cha seva B.

Ssh -L 192.168.0.2:8080:10.1.1.1:80 [barua pepe imelindwa]

Vichuguu vilivyowekwa

Bila shaka, vichuguu vinaweza kubadilishwa njia.

Wacha tufanye kazi ngumu: sasa tunataka kumwonyesha mwenzetu programu inayoendesha kwenye mwenyeji kwenye seva iliyo na anwani 10.1.1.2 (kwenye bandari 80).

Suluhisho ni ngumu:
ssh -L 192.168.0.2:8080:127.1:9999 [barua pepe imelindwa] ssh -L 127.1:9999:127.1:80 [barua pepe imelindwa]

Nini kinaendelea? Tunaiambia ssh kuelekeza maombi ya ndani kutoka kwa anwani yetu hadi seva mwenyeji B na mara baada ya kuunganishwa, zindua ssh (yaani, mteja wa ssh) kwenye seva B na chaguo la kusikiliza mwenyeji wa ndani na kusambaza maombi kwa seva 10.1.1.2 (ambapo mteja anapaswa kuunganishwa). Bandari ya 9999 ilichaguliwa kiholela, jambo kuu ni kwamba inafanana na simu ya kwanza na ya pili.

Wakala wa Reverse Sox

Ikiwa mfano uliopita ulionekana kuwa rahisi na dhahiri kwako, basi jaribu kukisia mfano huu utafanya nini:
ssh -D 8080 -R 127.1:8080:127.1:8080 [barua pepe imelindwa] ssh -R 127.1:8080:127.1:8080 [barua pepe imelindwa]

Ikiwa wewe ni afisa wa usalama ambaye kazi yake ni kuzuia matumizi ya Mtandao kwenye seva 10.1.1.2, basi unaweza kuanza kuvuta nywele kwenye kitako chako, kwa sababu amri hii inapanga upatikanaji wa mtandao kwa seva 10.1.1.2 kupitia proksi ya sox inayoendesha. kwenye kompyuta "A". Trafiki imesimbwa kikamilifu na haiwezi kutofautishwa na trafiki nyingine yoyote ya SSH. Na trafiki inayotoka kutoka kwa kompyuta, kutoka kwa mtazamo wa mtandao wa "192.168.0/24", haiwezi kutofautishwa na trafiki ya kawaida ya kompyuta A.

Kuweka vichuguu

Ikiwa kufikia hatua hii kitako cha idara ya usalama hakijang'aa na ssh bado hayuko kwenye orodha ya kwanza ya maadui wa usalama, huyu ndiye muuaji mkuu wa kila kitu: IP tunneling au hata ethernet. Katika hali kali zaidi, hii hukuruhusu kudhibiti dhcp, kufanya uporaji wa arp kwa mbali, kuamka kwenye lan na hasira zingine za kiwango cha pili.

(ole, sijatumia hii mwenyewe).

Ni rahisi kuelewa kuwa katika hali kama hizi haiwezekani kupata vichungi kama hivyo na DPI yoyote (ukaguzi wa pakiti ya kina) - ama ssh inaruhusiwa (soma - fanya chochote unachotaka), au ssh ni marufuku (na unaweza kuacha salama kama hiyo. kampuni ya wajinga bila kujuta hata kidogo).

Usambazaji wa idhini

Ikiwa unafikiri hiyo ndiyo yote, basi ...... hata hivyo, tofauti na mwandishi, ambaye bado hajaandika "kutoka chini," msomaji anaona mapema kuwa kuna barua nyingi hapa chini na hakuna fitina.

OpenSSH hukuruhusu kutumia seva kama chachu kuunganisha kwenye seva zingine, hata kama seva hizo haziaminiki na zinaweza kutumiwa vibaya zipendavyo.

Nitarudia picha:

Hebu tuseme tunataka kuunganisha kwenye seva 10.1.1.2, ambayo iko tayari kukubali ufunguo wetu. Lakini hatutaki kuinakili hadi 8.8.8.8, kwa sababu ni uwanja wa umma na nusu ya watu wana sudo na wanaweza kupekua saraka za watu wengine. Maelewano yatakuwa kuwa na kitufe cha "tofauti" cha ssh ambacho kingeidhinisha [barua pepe imelindwa] hadi 10.1.1.2, lakini ikiwa hatutaki kuruhusu mtu yeyote kutoka 8.8.8.8 hadi 10.1.1.2, basi hii sio chaguo (haswa kwa vile hawawezi kutumia ufunguo tu, lakini pia kunakili kwao wenyewe "kwa siku ya mvua").

Ssh inatoa uwezo wa kusambaza wakala wa ssh (hii ni huduma inayoomba nenosiri la ufunguo). Chaguo ssh -A inapeleka uidhinishaji kwa seva ya mbali.

Simu inaonekana kama hii:

Ssh-A [barua pepe imelindwa] ssh [barua pepe imelindwa]

Mteja wa ssh wa mbali (mnamo 8.8.8.8) anaweza kuthibitisha kwa 10.1.1.2 kuwa sisi ni sisi ikiwa tu tumeunganishwa kwenye seva hii na tumempa mteja wa ssh ufikiaji kwa wakala wake wa uidhinishaji (lakini sio ufunguo!).

Katika hali nyingi hufanya kazi.

Walakini, ikiwa seva ni mbaya kabisa, basi mzizi wa seva unaweza kutumia tundu kwa uigaji tunapounganishwa.

Kuna njia yenye nguvu zaidi - inabadilisha ssh kuwa bomba rahisi (kwa maana ya "bomba") ambayo tunafanya kazi nayo. seva ya mbali.

Faida kuu ya njia hii ni uhuru wake kamili kutoka kwa uaminifu wa seva ya kati. Anaweza kutumia seva bandia ya SSH, kuweka baiti zote na vitendo vyote, kunasa data yoyote na kuipotosha anavyotaka - mwingiliano hufanyika kati ya seva "inayosababisha" na mteja. Ikiwa data ya seva ya mwisho imepotoshwa, basi saini haitalingana. Ikiwa data haijaharibiwa, basi kikao kinaanzishwa kwa hali salama, kwa hiyo hakuna kitu cha kukataza.

Sikujua mpangilio huu mzuri, kwa hivyo nilichimba upya.

Usanidi unategemea chaguzi mbili za ssh: chaguo -W (ambalo hubadilisha ssh kuwa "bomba") na chaguo la usanidi. ProxyCommand(inaonekana kuwa hakuna chaguo la mstari wa amri), ambayo inasema "endesha programu na ushikamishe kwa stdin/out yake". Chaguzi hizi zimeonekana hivi karibuni, hivyo watumiaji wa centos wana shida.

Inaonekana kama hii (nambari za picha hapo juu):

Ssh/config:
Mwenyeji kubaka Jina la Mpangishi 10.1.1.2 Mtumiaji Mtumiaji2 ProxyCommand ssh -W %h:%p [barua pepe imelindwa]

Kweli, unganisho ni mdogo: ssh raep .

Acha nirudie jambo muhimu: seva ya 8.8.8.8 haiwezi kuzuia au kuharibu trafiki, kutumia wakala wa uidhinishaji wa mtumiaji, au vinginevyo kurekebisha trafiki. Kupiga marufuku - ndiyo, inaweza. Lakini ukiiruhusu, itapita kwako bila kusimbua au kurekebisha. Ili usanidi ufanye kazi, unahitaji kuwa na ufunguo wako wa umma katika authorized_keys kama kwa [barua pepe imelindwa], na katika [barua pepe imelindwa]

Kwa kweli, unganisho unaweza kuwa na vifaa vingine vyote - usambazaji wa bandari, kunakili faili, proksi za soksi, vichuguu vya L2, uwekaji wa seva ya X, nk.
ssh tunneling Ongeza vitambulisho

Sehemu ya 2.

Kabla hatujaanza, hebu tuunde mtumiaji mpya aliye na haki za mizizi.

Wacha tupe haki kwa jaribio la mtumiaji kwa kutumia amri

usermod -a -G sudo mtihani

Ili kuthibitisha kuwa mtumiaji wa jaribio ameongezwa kwenye kikundi cha sudo, unaweza kutekeleza amri ifuatayo:


Sasa hebu tuweke ufikiaji wa mbali kwa seva kupitia ssh (mstari wa amri), kwenye mtandao wa ndani na kwenye mtandao.

Wacha tusakinishe ssh

sudo apt-get install openssh-server

Baada ya ufungaji, tunahitaji kusanidi usalama wa uunganisho na upatikanaji wa moja kwa moja. Hebu tuende kwenye faili ya mipangilio

sudo nano /etc/ssh/sshd_config

Kwa chaguo-msingi, ssh hutumia bandari 22. Wacha tuibadilishe na isiyo ya kawaida, hii itaongeza usalama wa ufikiaji wetu. Wacha tubadilishe bandari, kwa mfano, na 2200

Wakati wa kuunganisha kupitia ssh, seva yetu itahitaji ufunguo wa RSA badala ya nenosiri. Ili kuzuia hili kutokea, ingiza "HAPANA" katika vigezo vya Uthibitishaji wa RSAA na Uthibitishaji wa Pubkey. Pia tunakataa ufikiaji wa mtumiaji wa ROOT; ili kufanya hivyo, unahitaji kufuta Uthibitishaji: paramu na uingize "NO" kwenye parameta ya PermitRootLogin.

Sasa hebu tuwape watumiaji ufikiaji

Katika mstari wa KuruhusuWatumiaji, tunaingiza watumiaji waliotenganishwa na nafasi katika fomu user@host, yaani, tunaonyesha ni mtumiaji gani anaweza kuunganisha kutoka wapi. Unaweza kutumia *

Hebu tupe haki za ufikiaji kwa jaribio la mtumiaji na tuziangalie.

    test@* - jaribio la mtumiaji linaweza kuunganishwa kutoka popote
    [barua pepe imelindwa].* - jaribio la mtumiaji linaweza kuunganisha ikiwa tu yuko kwenye subnet ya 192.168.0.0
    [barua pepe imelindwa]- jaribio la mtumiaji linaweza tu kuunganishwa kutoka kwa anwani ya IP 192.168.0.104
    *@192.168.0.* - watumiaji wote wanaweza kuunganisha wakiwa kwenye subnet ya 192.168.0.0

Unaweza pia kukataa ufikiaji watumiaji fulani(kwa mfano, mtihani wa mtumiaji2), kwa hili unahitaji kuingia hapa chini

Hebu tuzindue

sudo /etc/init.d/ssh anza

Tumesanidi SSH. Sasa hebu tufungue ufikiaji wake. Ili kufanya hivyo, tutafungua ufikiaji wa bandari 2200.

Katika sehemu ya mwisho, tuliweka firewall na amri ya arno-iptables-firewall, sasa tunahitaji kufanya mabadiliko huko. Kwa hivyo wacha tuisanidi upya.

sudo dpkg-rekebisha upya arno-iptables-firewall

Mpangilio umeanza

Ingiza bandari inayohitaji kufunguliwa. Unaweza pia kuingiza bandari zingine kwenye dirisha hili ikiwa zinahitaji kufunguliwa.

Katika dirisha linalofuata, tunaingia pia bandari 2200.

Mara tu unapoingiza milango, unaweza kubonyeza ENTER kila mahali na uwashe upya Firewall.

Baada ya hii, bandari ya ssh itapatikana kutoka kwa mtandao

Ili kuongeza usalama wa muunganisho wa ssh, unaweza kusanidi matumizi ya denyhosts. Huduma ni hati ya chatu ambayo inachambua /var/log/auth.log faili kwa rekodi za majaribio yasiyoidhinishwa ya kuingia kwenye seva kupitia ssh na kuongeza anwani za IP ambazo majaribio haya yalifanywa kwa /etc/hosts.deny faili. , ambayo hairuhusiwi kuingia kupitia ssh.

Sakinisha na amri

sudo aptitude kufunga denyhosts

Mara tu baada ya usakinishaji, shirika litachanganua faili ya /var/log/auth.log na kuongeza anwani za IP ambazo nywila zilikusanywa kwa /etc/hosts.deny. Uchanganuzi utachukua muda ikiwa tayari kuna maingizo mengi kama hayo kwenye faili ya /var/log/auth.log.

Baada ya usakinishaji unahitaji kuhariri faili ya usanidi

sudo nano /etc/denyhosts.conf

Hebu turekebishe mpangilio wa PURGE_DENY hadi saa 3. Vinginevyo, tunaweza kuzuia ufikiaji kwa sisi wenyewe kwa kuingiza nenosiri lisilo sahihi mara kadhaa.

Pia, kwa udhibiti, unahitaji kubainisha anwani ya barua pepe ili kutuma arifa kuhusu majaribio yasiyofanikiwa ya kufikia seva:

ADMIN_EMAIL = [barua pepe imelindwa] badala ya [barua pepe imelindwa] onyesha barua pepe yako

Ili mipangilio mipya ianze kutumika, unahitaji kuanzisha upya huduma ya kunyima huduma:

sudo service denyhosts inaanza tena

P.S. Ikiwa unahitaji kubadilisha nenosiri la akaunti yako. Ingiza amri

mtumiaji wa passwd - ambapo mtumiaji ni jina la mtumiaji

P.S.S. Ikiwa una matatizo na encoding, kisha chimba kwenye mipangilio ya programu ya mteja wa shh

Programu maarufu zaidi ya kufanya kazi kupitia ssh, programu ya PuttY.