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

Аңыз: плагин — қолдау көрсетілетін жол

Плагин — 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 сөйлейтін шлюзде аяқтайды, және бұл жағдайда осы сервер директиваларының ешқайсысы қолданылмайды. Өз платформаңыз құжаттайтын үлгіні көшіріңіз, көрші өнімнің үлгісін емес. Маңызды директивалар бір-бірінен жеткілікті ерекшеленеді, сондықтан оларды араластыру талданатын, содан кейін ешкімді аутентификацияламайтын конфигурация береді.

Қатысты мақалалар