Ар бир абонентке бир түзмөк убада кылган туннель кызматтары бул убаданы MaxSessions-тен сейрек алышат, жана биринчи тест адатта муну далилдейт. Абонент экинчи ssh процессин ачат, биринчи сессия ишин улантат, жана эки туннель тең трафикти ташыйт. Ар бир конфигурация опциясы башка нерсени санайт, жана алардын эч бири түзмөктөрдү санабайт. Убаданы биринчи атоо алардын ортосундагы тандоону айкын кылат.

Ар бир опция чындап эмнени санайт

MaxSessions бир аутентификацияланган тармактык байланыш ташый турган ачык сессиялардын санын чектейт. Бул жердеги сессия — shell, exec суроосу, SFTP сыяктуу ички система же бир SSH транспортунун ичинде мультиплекстелген окшош канал. Экинчи ssh чакыруусу экинчи транспорт ачат, кайра аутентификацияланат жана өз уруксатын алат. Биринчи байланыштын сессия саны ага тиешеси жок.

MaxStartups али аутентификацияланбаган параллелдүү байланыштарды чектейт, алар баштапкы босого, ылдамдык жана толук босого катары көрсөтүлөт. Ал жарым ачык кол алышуулардын жарылуусу демондун аутентификацияга чейинки ресурстарын бүтүрүп сабаалбашы үчүн бар. Кардар аутентификациялангандан кийин бул байланыш MaxStartups-ка каршы саналуудан калат жана бирөөнүн сессиясына айланат. Ал эч качан колдонуучуга карата квота болгон эмес, жана аны көтөрүү абонентке көбүрөөк иштөөгө мүмкүндүк бербейт.

Түзмөктү каттоо эрежеси такыр sshd опциясы эмес. Ал каттоо маалыматтарын берүүчү жана кайсы түзмөк аларды кармап турганын көзөмөлдөгөн системага таандык, бул санагычтын ордуна каттоо, тизме жана жокко чыгаруу керек дегенди билдирет. Бул талапты sshd конфигурациясына аралаштыруу — бул долбоорлордун көбү токтоп калган жер.

MaxSessions кайсы жерде квота болуудан калат

Match User блогу кайсы конфигурация маанилери ошол колдонуучуга колдонуларын өзгөртөт, ошондуктан кызматтык эсеп үчүн катаалраак MaxSessions орнотуунун табигый жери. Ал кыла албаганы — байланыштар боюнча бириктирүү, анткени опция ар бир транспорт боюнча бааланат. Эки транспорт ар бири өз чегин алат, жана колдонуучу акырында блок уруксат кылгандан эки эсе көп алат.

Багыттоо өзүнчө таң калаарлык нерсе. TCP багыттоо сессия каналын талап кылбайт, ошондуктан MaxSessions 0 shell жана ички системаларга тыюу сала алат, ал эми -L жана -R туннелдерине дагы уруксат берет. Бир гана багыттай турган жана сессия санын өзүнүн туннель квотасы деп эсептеген кызмат эч нерсени өлчөбөйт. Бул жүрүм-турум OpenSSH серверинин конфигурациялык маалымдамасында документтелген, жана опция атынын айланасында долбоорлоодон мурун аны окуу пайдалуу.

Жүктөлдү деп ойлогон файлдын ордуна натыйжалуу конфигурацияны чыгарыңыз. Кошуулар жана drop-in папкалары көбүнчө колдонуудагы маани сиз оңдогон маани эмес экенин билдирет.

MaxStartups абонентти эмес, демонду коргойт

MaxStartups-тун үч бөлүктүү формасы демон жаңы байланыштардын белгилүү бир пайызын таштай баштаганга чейин канча аутентификацияланбаган байланыш болушу мүмкүн экенин сүрөттөйт. Анын демейки формасы аутентификацияланбаган SSH байланышын ачуу арзан, кармоо кымбат болгондуктан бар. Бул сервер үчүн ресурсту коргоо көзөмөлү, жана ал баарына бир убакта колдонулат.

Кирүү бороон-чапкыны учурунда аны көтөрүү демон коргоосун кирүүгө алмаштырат, бул кээде туура алмашуу жана ар дайым атайын жасалган. Экинчи туннель каалаган абонент үчүн ал эч нерсе кылбайт, анткени биринчи туннель уже аутентификацияланган. Экөөнү чаташтыруу туура эмес симптомду оңдогон жана ошол эле учурда серверди алсыздаткан өзгөрүүгө алып келет.

Кирүүлөр топ-топ менен четке кагылганда, эки опциянын бирине да тийбестен мурун демон журналындагы аутентификацияга чейинки билдирүүнү караңыз. Билдирүү кайсы кайтаруучу иштегенин атайт, жана кайтаруучулар бири-бирине алмаштырылбайт.

Колдонуучуга карата слот жалпы абалды талап кылат

Чыныгы бир активдүү транспорт саясаты sshd-ден тышкары бир жерде кармалган резервдөөнү талап кылат. Кабыл алуу кадамы эсептин слотун атомдук түрдө ээлеши, байланыш жабылганда аны бошотуусу, кардар жаппай жоголгондо мөөнөтүн бүтүрүшү жана жаңы аракет четке кагылабы же эскисин алмаштырабы чечиши керек. Бул акыркы чечим — продукттук чечим, техникалык деталь эмес, анткени активдүү туннелди алмаштыруу бирөөнүн байланышын үзөт.

Резервдөөнү эсепти кабыл алган ар бир сервер да бөлүшүшү керек. Көз карандысыз жергиликтүү санагычтары бар эки хост эки өзүнчө чекти колдонот, жана башка шлюз аркылуу кайра туташкан абонент акысыз экинчи слот алат. Абалды сактаган нерсенин өзүнүн бузулуу жүрүм-туруму болушу керек, анткени жеткиликсиз кампа баардык абоненттерди кулпулабашы керек.

Бир түзмөк убадасы үчүн ар бир катталган түзмөккө өзүнчө каттоо маалыматын бериңиз жана ошол катмарда каттоо менен жокко чыгарууну көзөмөлдөңүз. Көчүрүлгөн жеке ачкыч дагы эле кайсы жерден болсо да аутентификацияланат, ошондуктан колдонуучуга бир ачкыч берүү аны канча машина кармап турганынын далили эмес.

Саясатты эки чыныгы байланыш менен текшериңиз

Саясатты жазганга чейин кабыл алуу тесттерин буйруктар катары жазыңыз. Беш учур: биринчиси активдүү кезде ачылган экинчи транспорт, бир транспорттун ичиндеги бир нече канал, портторду гана багыттаган кардар, байланыш үзүлгөндөн кийинки кайра туташуу жана ошол эсептин башка шлюзге келиши.

Адегенде натыйжалуу чектерди окуңуз, анан саясат четке кагууга тийиш болгон байланыштарды ачыңыз. Бул тесттин эки жарымы тең маанилүү, жана эч бири экинчисинин ордун баспайт.

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]

Туннель буйругун эки терминалда эки жолу иштетип, 22 портунда орнотулган байланыштарды санаңыз. Эгер саясатыңыз бир активдүү транспорт деп ырастап турганда экөө тең трафик ташыса, саясат аткаруу эмес, документ. Бул кемчиликти кабыл алуу катмарында оңдоңуз, MaxSessions-ту төмөндөтүп, экинчи транспорт байкайт деп үмүттөнүү менен эмес.

Тектеш макалалар