Huduma za handaki zinazoahidi kifaa kimoja kwa kila mteja mara chache hupata ahadi hiyo kutoka MaxSessions, na jaribio la kwanza kwa kawaida huthibitisha hilo. Mteja hufungua mchakato wa pili wa ssh, kipindi cha kwanza kinaendelea kufanya kazi, na handaki zote mbili hubeba trafiki. Kila chaguo la usanidi huhesabu kitu tofauti, na hakuna hata moja linalohesabu vifaa. Kutaja ahadi kwanza ndiko kunafanya uchaguzi kati yao uwe wazi.

Kila chaguo huhesabu nini kwa kweli

MaxSessions huzuia idadi ya vipindi wazi vinavyobebwa na muunganisho mmoja wa mtandao uliothibitishwa. Kipindi hapa kinamaanisha shell, ombi la exec, mfumo mdogo kama SFTP, au chaneli kama hiyo iliyogawanywa ndani ya usafirishaji mmoja wa SSH. Wito wa pili wa ssh hufungua usafirishaji wa pili, huthibitisha tena na hupata idhini yake yenyewe. Idadi ya vipindi vya muunganisho wa kwanza haina umuhimu kwake.

MaxStartups huzuia miunganisho ya wakati mmoja ambayo bado haijathibitishwa, ikionyeshwa kama kizingiti cha kuanza, kiwango na kizingiti kamili. Ipo ili mlipuko wa salamu za mkono zilizofunguliwa nusu usiweze kumaliza rasilimali za daemon kabla ya uthibitishaji. Mteja anapothibitisha, muunganisho huo huacha kuhesabiwa dhidi ya MaxStartups na huwa kipindi cha mtu. Haikuwa kamwe kwa mgawo kwa kila mtumiaji, na kuipandisha hakumruhusu mteja kufanya zaidi.

Kanuni ya usajili wa kifaa si chaguo la sshd hata kidogo. Ni mali ya mfumo wowote unaotoa vitambulisho na kufuatilia ni kifaa gani kinachovishikilia, ambayo inamaanisha inahitaji usajili, orodha na kubatilisha badala ya kihesabu. Kuchanganya hitaji hilo katika usanidi wa sshd ndiko kunakozuia miundo hii mingi.

Mahali MaxSessions huacha kuwa mgawo

Kizuizi cha Match User hubadilisha ni maadili gani ya usanidi yanayotumika kwa mtumiaji huyo, kwa hivyo ni mahali pa asili pa kuweka MaxSessions kali zaidi kwa akaunti ya huduma. Kitu ambacho hakiwezi kufanya ni kukusanya kwa jumla kwenye miunganisho, kwa sababu chaguo hilo hutathminiwa kwa kila usafirishaji. Usafirishaji mbili hupata kila moja kikomo chake, na mtumiaji huishia na mara mbili ya kile kizuizi kinavyoruhusu.

Upelekaji ni mshangao tofauti. Upelekaji wa TCP hauhitaji chaneli ya kipindi, kwa hivyo MaxSessions 0 unaweza kuzuia shell na mifumo midogo huku ukiruhusu handaki za -L na -R. Huduma inayopeleka tu na kuchukua idadi ya vipindi kama mgawo wake wa handaki haipimi chochote. Tabia hiyo imeandikwa katika marejeo ya usanidi wa seva ya OpenSSH, na inafaa kusoma kabla ya kubuni kuzunguka jina la chaguo.

Toa usanidi unaofanya kazi badala ya faili unayodhani imepakiwa. Ujumuishaji na folda za drop-in mara nyingi humaanisha kuwa thamani inayotumika si thamani uliyohariri.

MaxStartups hulinda daemon, si mteja

Umbo la sehemu tatu la MaxStartups hufafanua ni miunganisho mingapi isiyothibitishwa inaweza kuwepo kabla daemon haijaanza kudondosha asilimia ya mpya. Umbo lake la chaguo-msingi lipo kwa sababu muunganisho wa SSH usiothibitishwa ni rahisi kufungua na ghali kudumisha. Ni udhibiti wa ulinzi wa rasilimali kwa seva, na unatumika kwa kila mtu kwa wakati mmoja.

Kuipandisha wakati wa dhoruba ya kuingia hubadilisha ulinzi wa daemon na kiingilio, ambayo wakati mwingine ni ubadilishaji sahihi na kila mara ni wa kukusudia. Haifai chochote kwa mteja anayetaka handaki ya pili, kwa sababu handaki ya kwanza tayari imethibitishwa. Kuchanganya hizo mbili hupelekea mabadiliko yanayotengeneza dalili isiyo sahihi na kudhoofisha seva wakati huo huo.

Kuingia kunapokataliwa kwa mawimbi, angalia kwenye kumbukumbu ya daemon ujumbe wa kabla ya uthibitishaji kabla ya kugusa mojawapo ya chaguo. Ujumbe huo unataja ni mlinzi gani ulioamka, na walinzi hawabadilishani.

Nafasi kwa kila mtumiaji inahitaji hali inayoshirikiwa

Sera ya kweli ya usafirishaji mmoja unaofanya kazi inahitaji uhifadhi unaoshikiliwa mahali pengine nje ya sshd. Hatua ya kiingilio lazima ichukue nafasi ya akaunti kwa atomiki, iifungue wakati muunganisho unafungwa, iiruhusu kuisha wakati mteja anatoweka bila kufunga, na kuamua kama jaribio jipya linakataliwa au linachukua nafasi ya la zamani. Uamuzi huo wa mwisho ni uamuzi wa bidhaa, si maelezo ya kiufundi, kwa sababu kubadilisha handaki inayofanya kazi humkatisha mtu.

Uhifadhi lazima ushirikiwe pia na kila seva inayokubali akaunti. Wenyeji wawili wenye vihesabu vya ndani huru hutekeleza vikomo viwili tofauti, na mteja anayeunganisha tena kupitia lango lingine hupata nafasi ya pili bila malipo. Kitu chochote kinachohifadhi hali kinahitaji tabia yake ya kushindwa, kwa kuwa hifadhi isiyofikika haipaswi kuwafungia nje wateja wote.

Kwa ahadi ya kifaa kimoja, toa vitambulisho tofauti kwa kila kifaa kilichosajiliwa na udhibiti usajili na ubatilishaji katika tabaka hilo. Ufunguo wa faragha ulionakiliwa bado huthibitisha kutoka mahali popote, kwa hivyo kutoa ufunguo mmoja kwa kila mtumiaji si ushahidi wa mashine ngapi zinazoushikilia.

Angalia sera kwa miunganisho miwili halisi

Andika majaribio ya kukubali kama amri kabla ya kuandika sera. Kesi tano ni usafirishaji wa pili uliofunguliwa wakati wa kwanza unafanya kazi, chaneli nyingi ndani ya usafirishaji mmoja, mteja anayepeleka bandari tu, kuunganisha tena baada ya kiungo kuanguka, na akaunti hiyo hiyo kuwasili lango lingine.

Soma vikomo vinavyofanya kazi kwanza, kisha fungua miunganisho ambayo sera inapaswa kuikataa. Nusu zote mbili za jaribio hilo ni muhimu, na hakuna moja inachukua nafasi ya nyingine.

sshd -T | grep -iE "maxsessions|maxstartups|allowtcpforwarding|permitopen"
ss -tn state established '( sport = :22 )' | head
ssh -N -L 8080:127.0.0.1:80 [email protected]

Endesha amri ya handaki mara mbili katika terminali mbili na uhesabu miunganisho iliyoanzishwa kwenye bandari 22. Ikiwa zote mbili hubeba trafiki wakati sera yako inadai usafirishaji mmoja unaofanya kazi, sera ni nyaraka na si utekelezaji. Rekebisha pengo hilo katika tabaka la kiingilio, si kwa kupunguza MaxSessions na kutumaini kwamba usafirishaji wa pili utaona.

Makala zinazohusiana