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

Уламыш: плагин колдоого алынган жол

Плагин OpenVPN процессине жүктөлүүчү жалпы объект, ошондуктан ал ошол процесс сунуш кылган интерфейске дал келиши керек. Курулуштар өзгөрөт, таңгактоо өзгөрөт, жана эски интерфейс үчүн компиляцияланган китепкана жүктөлүүдөн баш тартат. Сервер конфигурациясында эч нерсе бул ажырымды жаба албайт, ошондуктан «жөн гана radiusplugin орнотуңуз» деген кеңеш иштебеген сервер менен бүтөт.

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

Эки ыкманын эч бири түзүлүшү боюнча кооптуу эмес. Бири демондун ичинде бөтөн кодду иштетет; экинчиси сиздин кодду анын жанында, кирүү маалыматтарын колдо кармап иштетет. Туура суроо — бул эки тобокелдиктин кайсынысын чындыгында башкара аласыз.

Плагин эмнени бириктирген

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

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

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

Скрипт илгичи чындыгында эмнеге ишенет

Илгич auth-user-pass-verify жана жеткирүү механизми менен конфигурацияланат: чөйрө өзгөрмөлөрү же убактылуу файл. Чөйрө формасында OpenVPN script-security 3 деңгээлин талап кылат, бул сырсөздү скрипттерге ачууга жол берген документтелген деңгээл. Бул деңгээл демейкинин атайын алсыратылышы, жана ага негиздеме тиркелген уруксат катары мамиле кылуу керек.

Скрипт тийгендин баары ошол ишенимди мураска алат. Ал root менчигинде болушу, топ же башкалар жаза албагандай болушу, абсолюттук жол менен көрсөтүлүшү жана ишенимсиз маани shell'ге жеткен эч бир жери болбошу керек. Ар бир өзгөрмөнү тырмакчага алыңыз, күтүлбөгөн белгилерди четке кагыңыз жана берилген колдонуучу атынан эч качан буйрук курабаңыз. Ар бир кирүү аракетинде root катары иштеген скрипт дал ушул төрт касиет үчүн бир жолу карап чыгууга татыктуу.

ls -l /usr/local/sbin/radius-auth.sh
stat -c '%U %a' /usr/local/sbin/radius-auth.sh

Файл менен жеткирүү формасы чөйрө мураскерлиги маселесинен качат жана кирүү маалыматтарын чектелген укуктардагы убактылуу файл аркылуу скриптке берет. Эгер кардарыңыз аны колдосо, бул адатта жакшыраак демейки, бирок ийгиликсиздикте тазалоого дагы бир объект кошот.

Чыгуу коддору ачык ийгиликсиздикке учурайсызбы же жокпу чечет

Скрипттин чыгуу статусу — өкүм: нөл кабыл алат, нөл эмес четке кагат. Кыйынчылык жараткан үлгү — RADIUS жообунда белгилүү кабыл алуу токени болгондо гана кабыл алып, калганынын баарына ийгиликсиздик кайтарган shell скрипти, анткени бул үч түрдүү окуяны бир жоопко бириктирет. Туура эмес сырсөз, жетүүгө мүмкүн эмес сервер жана бузулган жооп — баары бирдей четке кагууга айланат.

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

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

Сертификат жоголгондо эмнеден баш тартасыз

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

Көзөмөл каналынын коргоосун ордунда кармаңыз, ошондо аутентификацияланбаган шерик кол алышууну изилдей же каптай албайт, жана колдонуучуга жараша конфигурация жалпы атка көз каранды болгондо username-as-common-name колдонуңуз. Башкарылуучу шлюздар муну көп учурда башкача чечет, сертификат аутентификациясын RADIUS менен EAP-TLS сүйлөгөн шлюзда бүтүрөт, жана бул учурда бул сервер директиваларынын эч бири колдонулбайт. Өз платформаңыз документтеген моделди көчүрүңүз, коңшу продукттукун эмес. Маанилүү директивалар бири-биринен жетишээрлик айырмаланат, ошондуктан аларды аралаштыруу талданган, андан кийин эч кимди аутентификациялаган эмес конфигурацияны берет.

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