Копчето за VPN бара sudo: стеснете го правилото, проверете ја политиката
Копче на работната површина не е причина за root без лозинка. Проверете дали мрежниот менаџер може да го направи тоа, стеснете една команда, потоа проверете ја целата sudo политика.
Копчето за VPN работи кај администраторот и не успева кај сите други, па некој додава ред во sudoers. Тој ред обично живее подолго од проблемот што требало да го реши и често дава повеќе отколку што му треба на копчето. Пред да ја уредите политиката, проверете дали поддржаниот сопственик на врската веќе може да ја заврши работата. Трите услови подолу одлучуваат дали sudo воопшто учествува.
Услов 1: поддржаниот сопственик може да го направи тоа без sudo
На повеќето Linux работни површини мрежниот менаџер веќе ги поседува VPN врските и неговата авторизација оди преку polkit, а не преку sudo. Корисник на кој му е дозволено да подигне врска може да го направи тоа од командната линија без никакво root правило. Проверете што дозволува менаџерот пред да претпоставите дека на копчето му треба привилегија. Ако одговорот е да, промената во sudoers решава проблем што не постои.
nmcli connection show
nmcli connection up "Work VPN"
Ако менаџерот одбие, прочитајте зошто: правило за polkit што недостасува, врска во сопственост на друг корисник или профил зачуван таму каде што корисникот не може да го прочита. Секој од нив има поддржано решение кое е потесно од правило за sudo. Подигнувањето привилегии е последно средство, а не прво.
Услов 2: правилото именува една извршна датотека и нејзините аргументи
Ако sudo е навистина потребен, правилото треба да ја именува точната команда и, каде што е можно, аргументите што смее да ги користи. Правило што дозволува корисник да изврши замотувачка скрипта е безбедно онолку колку што се безбедни дозволите на таа скрипта, бидејќи корисникот може да го уреди она што ќе го изврши root. Правило со џокер знак по командата е истиот проблем во пократка форма.
sudo -l -U alice
ls -l /usr/local/sbin/vpn-up
Проверете ја секоја патека во синџирот на командата: бинарната датотека, скриптата што ја повикува, конфигурациската датотека што ја чита и секој директориум помеѓу. Ако корисникот може да пишува во било која од нив, стеснетото правило е практично неограничен root. Аргументите се исто така важни, бидејќи команда што прифаќа конфигурациска патека може да се насочи кон датотека што ја контролира корисникот. Напишете го правилото за операцијата, не за копчето.
Запрете ако на командата ѝ треба датотека контролирана од корисникот за да работи. Тогаш дизајнот е погрешен и никаква sudoers синтакса нема да го направи безбеден.
Услов 3: се парсира целата политика, не само вашиот ред
Проверете со уредувачот што ја заклучува датотеката и ја проверува синтаксата и проверете ја составената политика, а не фрагмент. Датотека што се парсира сама може сепак да го наруши редоследот на вклучување или да дуплира правило на начин што го менува однесувањето.прирачникот за visudo ги документира и уредувачот што заклучува и режимот само за проверка што се користи овде.
sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher
Проверката при неуспех ја пријавува датотеката и редот, и токму тој извештај е корисниот дел. Поправете ја предвидената промена преку уредувачот наместо насилно да зачувате позната грешка, бидејќи расипана политика може да ги заклучи сите администратори одеднаш. Датотеките во директориумот за вклучување исто така бараат сопственост и режим што ги бара прирачникот, инаку ќе бидат игнорирани или одбиени. Синтаксата е само првата порта: откако ќе помине, прочитајте го правилото повторно и прашајте што всушност дозволува.
Запрете ако единствениот начин промената да работи е да ја исклучите проверката на синтакса. Тоа не е политика, тоа е прекин што чека рестарт.
Враќање: задржете сесија што сѐ уште работи
Пред да зачувате, проверете дали овластена административна сесија е веќе отворена и дали постои втор пат во машината. Грешка во sudoers може да ви ја одземе можноста да ја поправите, а копче на работната површина не вреди за тој ризик. Ако sudo е веќе расипан, користете го документираниот пат за враќање на системот наместо да импровизирате свој.
sudo -n true
id
Алтернативи како pkexec зависат од сопствената инсталација и политика, па не се гарантирано второ барање за root. Чувајте ја локалната авторизација одделно и од доставувањето на VPN тајната: правило за sudo не може да отклучи отсутен агент за тајни и не го задоволува MFA на портата. По исправката тестирајте го нормалниот профил изведувајќи ја само предвидената операција, потоа користете ги вообичаените контроли на менаџерот.
Одлуката завршува кога можете да кажете кој услов го оправда sudo, што именува правилото, дека целата политика се парсира и како би се вратиле ако не. Привилегиран стартер што ве чини без административен пристап е лоша зделка и обично може да се избегне.