Kutumia SSH juu ya tundu la UNIX badala ya sudo kuondoa faili za suid

Timothee Ravier kutoka Red Hat, mtunzaji wa miradi ya Fedora Silverblue na Fedora Kinoite, alipendekeza njia ya kuepuka kutumia matumizi ya sudo, ambayo hutumia suid bit ili kuongeza mapendeleo. Badala ya sudo, kwa mtumiaji wa kawaida kutekeleza amri na haki za mizizi, inapendekezwa kutumia matumizi ya ssh na muunganisho wa ndani kwa mfumo huo huo kupitia tundu la UNIX na uthibitishaji wa ruhusa kulingana na funguo za SSH.

Kutumia ssh badala ya sudo hukuruhusu kuondoa programu za suid kwenye mfumo na kuwezesha utekelezaji wa amri zilizobahatika katika mazingira mwenyeji wa usambazaji unaotumia vipengee vya kutenganisha vyombo, kama vile Fedora Silverblue, Fedora Kinoite, Fedora Sericea na Fedora Onyx. Ili kuzuia ufikiaji, uthibitisho wa mamlaka kwa kutumia tokeni ya USB (kwa mfano, Yubikey) unaweza kutumika zaidi.

Mfano wa kusanidi vipengee vya seva ya OpenSSH kwa ufikiaji kupitia soketi ya ndani ya Unix (mfano tofauti wa sshd utazinduliwa na faili yake ya usanidi):

/etc/systemd/system/sshd-unix.socket: [Unit] Description=OpenSSH Server Unix Socket Documentation=man:sshd(8) man:sshd_config(5) [Socket] ListenStream=/run/sshd.sock Kubali=ndio [Sakinisha] WantedBy=sockets.target

/ nk / mfumo / mfumo /[barua pepe inalindwa]: [Kitengo] Description=Fungua daemoni ya seva kwa kila muunganisho (tundu la Unix) Hati=man:sshd(8) man:sshd_config(5) Wants=sshd-keygen.target After=sshd-keygen.target [Service] ExecStart=- /usr/sbin/sshd -i -f /etc/ssh/sshd_config_unix StandardInput=soketi

/etc/ssh/sshd_config_unix: # Huacha uthibitishaji wa ufunguo pekee PermitRootLogin prohibit-passwordAuthentication no PermitEmptyPasswords no GSSAPIUthibitishaji hapana # huzuia ufikiaji kwa watumiaji waliochaguliwa RuhusuWatumiaji mzizi wa jina la mtumiaji # Huacha tu matumizi ya . izedKeysFile .ssh /vifunguo_ vilivyoidhinishwa # wezesha sftp Mfumo mdogo sftp /usr/libexec/openssh/sftp-server

Washa na uzindue kitengo cha mfumo: sudo systemctl daemon-reload sudo systemctl wezesha -sasa sshd-unix.socket

Ongeza kitufe chako cha SSH kwa /root/.ssh/authorized_keys

Kuanzisha mteja wa SSH.

Sakinisha matumizi ya socat: sudo dnf install socat

Tunaongeza /.ssh/config kwa kubainisha socat kama proksi ya ufikiaji kupitia tundu la UNIX: seva mwenyeji. Mzizi wa mtumiaji wa ndani # Tumia /endesha/mwenyeshi/endesha badala ya /kimbia kufanya kazi kutoka kwa vyombo ProxyCommand socat - UNIX-CLIENT: / run/ host/run/sshd.sock # Njia ya Kitambulisho cha ufunguo wa SSH ~/.ssh/keys/localroot # Washa usaidizi wa TTY kwa ganda shirikishi RequestTTY ndiyo # Ondoa pato lisilo la lazima LogLevel QUIET

Katika hali yake ya sasa, jina la mtumiaji la mtumiaji sasa litaweza kutekeleza amri kama mzizi bila kuingiza nenosiri. Inakagua operesheni: $ ssh host.local [root ~]#

Tunaunda sudohost alias katika bash ili kuendesha β€œssh host.local”, sawa na sudo: sudohost() { if [[ ${#} -eq 0 ]]; kisha ssh host.local "cd \"${PWD}\"; exec \"${SHELL}\" --login" else ssh host.local "cd \"${PWD}\"; kutekeleza \Β»${@}\»» fi }

Angalia: $ sudohost id uid=0(mizizi) gid=0(mizizi) groups=0(mizizi)

Tunaongeza vitambulisho na kuwezesha uthibitishaji wa vipengele viwili, kuruhusu ufikiaji wa mizizi tu wakati ishara ya USB ya Yubikey imeingizwa.

Tunaangalia ni algoriti zipi zinatumika na Yubikey iliyopo: lsusb -v 2>/dev/null | grep -A2 Yubico | grep "bcdDevice" | awk '{print $2}'

Ikiwa pato ni 5.2.3 au zaidi, tumia ed25519-sk wakati wa kutengeneza vitufe, vinginevyo tumia ecdsa-sk: ssh-keygen -t ed25519-sk au ssh-keygen -t ecdsa-sk

Huongeza ufunguo wa umma kwa /root/.ssh/authorized_keys

Ongeza aina muhimu inayofunga kwenye usanidi wa sshd: /etc/ssh/sshd_config_unix: PubkeyAcceptedKeyTypes [barua pepe inalindwa],[barua pepe inalindwa]

Tunazuia ufikiaji wa soketi ya Unix kwa mtumiaji pekee ambaye anaweza kuwa na haki zilizoinuliwa (katika mfano wetu, jina la mtumiaji). Katika /etc/systemd/system/sshd-unix.socket ongeza: [Socket] ... SocketUser=adminusername SocketGroup=adminusername SocketMode=0660

Chanzo: opennet.ru

Kuongeza maoni