Timothee Ravier frá Red Hat, umsjónarmaður Fedora Silverblue og Fedora Kinoite verkefnanna, lagði til leið til að forðast að nota sudo tólið, sem notar suid bitann til að auka forréttindi. Í stað sudo, fyrir venjulegan notanda til að framkvæma skipanir með rótarréttindum, er lagt til að nota ssh tólið með staðbundinni tengingu við sama kerfi í gegnum UNIX fals og staðfestingu á heimildum byggðar á SSH lyklum.
Notkun ssh í stað sudo gerir þér kleift að losna við suid forrit á kerfinu og gera kleift að framkvæma forréttindaskipanir í hýsilumhverfi dreifinga sem nota ílátaeinangrunaríhluti, eins og Fedora Silverblue, Fedora Kinoite, Fedora Sericea og Fedora Onyx. Til að takmarka aðgang er einnig hægt að nota staðfestingu á heimild með USB-táki (til dæmis Yubikey).
Dæmi um að stilla OpenSSH miðlara íhluti fyrir aðgang í gegnum staðbundna Unix fals (sérstakt sshd tilvik verður sett af stað með eigin stillingarskrá):
/etc/systemd/system/sshd-unix.socket: [Eining] Lýsing=OpenSSH Server Unix Socket Documentation=man:sshd(8) man:sshd_config(5) [Socket] ListenStream=/run/sshd.sock Samþykkja=já [Setja upp] WantedBy=sockets.target
/ etc / systemd / system /[netvarið]: [Eining] Lýsing=OpenSSH fyrir hverja tengingu miðlara (Unix fals) Documentation=man:sshd(8) man:sshd_config(5) Wants=sshd-keygen.target After=sshd-keygen.target [Þjónusta] ExecStart=- /usr/sbin/sshd -i -f /etc/ssh/sshd_config_unix StandardInput=socket
/etc/ssh/sshd_config_unix: # Skilur aðeins eftir lykilauðkenningu PermitRootLogin bannað-lykilorð LykilorðAuthentication no PermitEmptyPasswords engin GSSAPIAautentication no # takmarkar aðgang að völdum notendum. Leyfa notendum rót adminusername # Skilur aðeins eftir notkun .ssheysauthorized/Fithorizedkeys/. .ssh /authorized_ lyklar # virkja sftp undirkerfi sftp /usr/libexec/openssh/sftp-þjónn
Virkjaðu og ræstu systemd eininguna: sudo systemctl daemon-reload sudo systemctl enable —nú sshd-unix.socket
Bættu SSH lyklinum þínum við /root/.ssh/authorized_keys
Að setja upp SSH biðlarann.
Settu upp socat tólið: sudo dnf settu upp socat
Við bætum við /.ssh/config með því að tilgreina socat sem proxy fyrir aðgang í gegnum UNIX fals: Host host.local Notandarót # Notaðu /run/host/run í stað /run til að vinna úr gámum ProxyCommand socat - UNIX-CLIENT: / run/ host/run/sshd.sock # Slóð að SSH lykilnum IdentityFile ~/.ssh/keys/localroot # Virkja TTY stuðning fyrir gagnvirku skelina RequestTTY já # Fjarlægðu óþarfa úttak LogLevel QUIET
Í núverandi formi mun notandinn adminusername nú geta framkvæmt skipanir sem rót án þess að slá inn lykilorð. Athugar aðgerðina: $ ssh host.local [root ~]#
Við búum til sudohost samnefni í bash til að keyra “ssh host.local”, svipað og sudo: sudohost() { if [[ ${#} -eq 0 ]]; þá ssh host.local "cd \"${PWD}\"; exec \"${SHELL}\" --login" else ssh host.local "cd \"${PWD}\"; exec \»${@}\»» fi }
Athugaðu: $ sudohost id uid=0(rót) gid=0(rót) hópar=0(rót)
Við bætum við skilríkjum og virkum tvíþætta auðkenningu, sem leyfum aðeins aðgang að rótum þegar Yubikey USB tákn er sett í.
Við athugum hvaða reiknirit eru studd af núverandi Yubikey: lsusb -v 2>/dev/null | grep -A2 Yubico | grep "bcdDevice" | awk '{prenta $2}'
Ef úttakið er 5.2.3 eða hærra, notaðu ed25519-sk þegar þú býrð til lykla, annars notaðu ecdsa-sk: ssh-keygen -t ed25519-sk eða ssh-keygen -t ecdsa-sk
Bætir almenningslyklinum við /root/.ssh/authorized_keys
Bættu lykiltegundarbindingu við sshd stillinguna: /etc/ssh/sshd_config_unix: PubkeyAcceptedKeyTypes [netvarið],[netvarið]
Við takmörkum aðgang að Unix falsinu við aðeins notandann sem getur haft réttindi aukin (í okkar dæmi, adminusername). Í /etc/systemd/system/sshd-unix.socket bæta við: [Socket] ... SocketUser=adminusername SocketGroup=adminusername SocketMode=0660
Heimild: opennet.ru