Uża SSH fuq socket UNIX minflok sudo biex teħles mill-fajls suid

Timothee Ravier minn Red Hat, manutenzjoni tal-proġetti Fedora Silverblue u Fedora Kinoite, ippropona mod kif tevita li tuża l-utilità sudo, li tuża s-suid bit biex teskala l-privileġġi. Minflok sudo, biex utent normali jesegwixxi kmandi bi drittijiet tal-għeruq, huwa propost li tuża l-utilità ssh b'konnessjoni lokali mal-istess sistema permezz ta 'socket UNIX u verifika ta' permessi bbażati fuq ċwievet SSH.

L-użu ta 'ssh minflok sudo jippermettilek teħles minn programmi suid fuq is-sistema u tippermetti l-eżekuzzjoni ta' kmandi privileġġjati fl-ambjent ospitanti ta 'distribuzzjonijiet li jużaw komponenti ta' iżolament ta 'kontenitur, bħal Fedora Silverblue, Fedora Kinoite, Fedora Sericea u Fedora Onyx. Biex tirrestrinġi l-aċċess, tista 'tintuża wkoll konferma ta' awtorità bl-użu ta 'token USB (per eżempju, Yubikey).

Eżempju tal-konfigurazzjoni tal-komponenti tas-server OpenSSH għall-aċċess permezz ta’ socket Unix lokali (istanza sshd separata se titnieda bil-fajl ta’ konfigurazzjoni tagħha stess):

/etc/systemd/system/sshd-unix.socket: [Unità] Deskrizzjoni=Dokumentazzjoni tas-Socket OpenSSH Server Unix=man:sshd(8) man:sshd_config(5) [Socket] ListenStream=/run/sshd.sock Aċċetta=iva [Installa] WantedBy=sockets.target

/ etc / systemd / system /[protett bl-email]: [Unità] Deskrizzjoni=Demon ta' server OpenSSH għal kull konnessjoni (socket Unix) Dokumentazzjoni=man:sshd(8) man:sshd_config(5) Jixtieq=sshd-keygen.target Wara=sshd-keygen.target [Servizz] ExecStart=- /usr/sbin/sshd -i -f /etc/ssh/sshd_config_unix StandardInput=socket

/etc/ssh/sshd_config_unix: # Jħalli biss l-awtentikazzjoni taċ-ċavetta PermitRootLogin prohibit-password PasswordAuthentication le PermitEmptyPasswords ebda GSSAPIAuthentication le # tirrestrinġi l-aċċess għal utenti magħżula AllowUsers root adminusername # Iħalli biss l-użu ta’ .ssh/withoutthorized.Authorized_keys. ssh /authorized_ keys # enable sftp Subsystem sftp /usr/libexec/openssh/sftp-server

Attiva u tniedi l-unità systemd: sudo systemctl daemon-reload sudo systemctl enable —issa sshd-unix.socket

Żid iċ-ċavetta SSH tiegħek ma' /root/.ssh/authorized_keys

Twaqqif tal-klijent SSH.

Installa l-utilità socat: sudo dnf install socat

Nissupplimentaw /.ssh/config billi nispeċifikaw socat bħala prokura għall-aċċess permezz ta' socket UNIX: Host host.local User root # Uża /run/host/run minflok /run biex taħdem minn kontenituri ProxyCommand socat - UNIX-CLIENT: / run/ host/run/sshd.sock # Passaġġ għaċ-ċavetta SSH IdentityFile ~/.ssh/keys/localroot # Ippermetti l-appoġġ TTY għall-qoxra interattiva RequestTTY yes # Neħħi l-output mhux meħtieġ LogLevel QUIET

Fil-forma attwali tiegħu, l-utent adminusername issa jkun jista' jesegwixxi kmandi bħala root mingħajr ma jdaħħal password. Iċċekkja l-operazzjoni: $ ssh host.local [root ~]#

Noħolqu alias sudohost f'bash biex inħaddmu “ssh host.local”, simili għal sudo: sudohost () { if [[ ${#} -eq 0 ]]; imbagħad ssh host.local "cd \"${PWD}\"; exec \"${SHELL}\" --login" inkella ssh host.local "cd \"${PWD}\"; exec \»${@}\»» fi }

Iċċekkja: $ sudohost id uid=0(root) gid=0(root) groups=0(root)

Aħna nżidu l-kredenzjali u nippermettu awtentikazzjoni b'żewġ fatturi, li tippermetti aċċess għall-għeruq biss meta jiddaħħal token Yubikey USB.

Aħna niċċekkjaw liema algoritmi huma appoġġjati mill-Yubikey eżistenti: lsusb -v 2>/dev/null | grep -A2 Yubico | grep "bcdDevice" | awk '{print $2}'

Jekk l-output huwa 5.2.3 jew akbar, uża ed25519-sk meta tiġġenera ċwievet, inkella uża ecdsa-sk: ssh-keygen -t ed25519-sk jew ssh-keygen -t ecdsa-sk

Iżżid iċ-ċavetta pubblika ma' /root/.ssh/authorized_keys

Żid rabta tat-tip taċ-ċavetta mal-konfigurazzjoni sshd: /etc/ssh/sshd_config_unix: PubkeyAcceptedKeyTypes [protett bl-email],[protett bl-email]

Aħna nirrestrinġu l-aċċess għas-socket Unix għall-utent biss li jista 'jkollu privileġġi elevati (fl-eżempju tagħna, adminusername). F'/etc/systemd/system/sshd-unix.socket żid: [Socket] ... SocketUser=adminusername SocketGroup=adminusername SocketMode=0660

Sors: opennet.ru

Żid kumment