Tlačítko VPN potřebuje sudo: zúžete pravidlo a ověřte politiku
Tlačítko na ploše není důvod pro root bez hesla. Zkontrolujte, zda to zvládne síťový správce, zúžete jeden příkaz a pak ověřte celou politiku sudo.
Tlačítko VPN funguje administrátorovi a všem ostatním selhává, takže někdo přidá řádek do sudoers. Ten řádek obvykle přežije problém, který měl vyřešit, a často uděluje víc, než tlačítko potřebuje. Než politiku upravíte, zkontrolujte, zda podporovaný vlastník připojení už práci zvládne. Tři níže uvedené podmínky rozhodují, zda je sudo vůbec zapojeno.
Podmínka 1: podporovaný vlastník to zvládne bez sudo
Na většině linuxových ploch už síťový správce vlastní připojení VPN a jeho autorizace jde přes polkit, ne přes sudo. Uživatel, který smí připojení zvednout, to zvládne z příkazové řádky bez jakéhokoli pravidla root. Než budete předpokládat, že tlačítko potřebuje oprávnění, zkontrolujte, co správce dovoluje. Pokud je odpověď ano, změna v sudoers řeší problém, který neexistuje.
nmcli connection show
nmcli connection up "Work VPN"
Pokud správce odmítne, přečtěte si proč: chybějící pravidlo polkit, připojení vlastněné jiným uživatelem nebo profil uložený tam, kde ho uživatel nemůže přečíst. Každý z těchto případů má podporovanou opravu užší než pravidlo sudo. Eskalace oprávnění je poslední možnost, ne první.
Podmínka 2: pravidlo jmenuje jeden spustitelný soubor a jeho argumenty
Pokud je sudo skutečně potřeba, pravidlo by mělo jmenovat přesný příkaz a pokud možno argumenty, které smí použít. Pravidlo, které uživateli dovolí spustit obalový skript, je bezpečné jen tak jako oprávnění toho skriptu, protože uživatel může upravit, co root vykoná. Pravidlo s divokým znakem za příkazem je stejný problém v kratší podobě.
sudo -l -U alice
ls -l /usr/local/sbin/vpn-up
Zkontrolujte každou cestu v řetězu příkazu: binárku, skript, který volá, konfigurační soubor, který čte, a každý adresář mezi nimi. Pokud do kteréhokoli z nich uživatel může zapisovat, je zúžené pravidlo fakticky neomezený root. Argumenty také záleží, protože příkaz, který přijímá cestu ke konfiguraci, lze namířit na soubor, který uživatel ovládá. Pište pravidlo pro operaci, ne pro tlačítko.
Zastavte se, pokud příkaz k práci potřebuje soubor, který uživatel ovládá. Pak je návrh špatný a žádná syntaxe sudoers ho bezpečným neudělá.
Podmínka 3: celá politika se parsuje, ne jen váš řádek
Ověřujte editorem, který soubor zamyká a kontroluje syntaxi, a ověřujte sestavenou politiku, ne fragment. Soubor, který se parsuje sám, může přesto narušit pořadí vkládání nebo pravidlo zduplikovat tak, že změní chování.manuál visudo dokumentuje jak zamykající editor, tak režim pouze kontroly použitý zde.
sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher
Kontrola při selhání hlásí soubor a řádek a právě tento výstup je užitečná část. Opravte zamýšlenou změnu editorem, místo abyste násilím uložili známou chybu, protože rozbitá politika může naráz uzamknout všechny administrátory. Soubory v adresáři vkládání také potřebují vlastnictví a režim, které manuál vyžaduje, jinak budou ignorovány nebo odmítnuty. Syntaxe je jen první brána: až projde, přečtěte pravidlo znovu a ptejte se, co skutečně dovoluje.
Zastavte se, pokud jediným způsobem, jak změnu rozchodit, je vypnout kontrolu syntaxe. To není politika, to je výpadek čekající na restart.
Obnova: udržte relaci, která ještě funguje
Než uložíte, ujistěte se, že je už otevřená autorizovaná administrativní relace a že existuje druhá cesta do stroje. Chyba v sudoers vám může vzít schopnost ji opravit a tlačítko na ploše za to riziko nestojí. Pokud je sudo už rozbité, použijte dokumentovanou cestu obnovy systému, místo abyste improvizovali vlastní.
sudo -n true
id
Alternativy jako pkexec závisí na vlastní instalaci a politice, takže nejsou zaručeným druhým dotazem na root. Držte lokální autorizaci odděleně i od dodání tajemství VPN: pravidlo sudo neodemkne chybějícího agenta tajemství a nesplní MFA brány. Po opravě otestujte běžný účet, který provádí jen zamýšlenou operaci, a pak použijte obvyklé ovládací prvky správce.
Rozhodnutí končí, když dokážete říci, která podmínka sudo ospravedlnila, co pravidlo jmenuje, že se celá politika parsuje a jak byste se obnovili, kdyby ne. Privilegovaný spouštěč, který vás stojí administrativní přístup, je špatný obchod a obvykle je mu možné se vyhnout.