Suid файлуудаас салахын тулд sudo-ийн оронд UNIX залгуур дээр SSH ашиглах

Fedora Silverblue болон Fedora Kinoite төслүүдийн хөтлөгч, Red Hat-ийн Тимоти Равиер давуу эрхээ нэмэгдүүлэхийн тулд suid бит ашигладаг sudo хэрэгслийг ашиглахаас зайлсхийх арга замыг санал болгов. Sudo-ийн оронд энгийн хэрэглэгч root эрхтэй командуудыг гүйцэтгэхийн тулд ssh хэрэгслийг UNIX залгуураар нэг системд локал холболтоор ашиглаж, SSH түлхүүрүүд дээр үндэслэн зөвшөөрлийг баталгаажуулахыг санал болгож байна.

Sudo-ийн оронд ssh-г ашигласнаар систем дээрх suid программуудаас салж, Fedora Silverblue, Fedora Kinoite, Fedora Sericea, Fedora Onyx зэрэг контейнер тусгаарлах бүрэлдэхүүн хэсгүүдийг ашигладаг түгээлтийн хост орчинд давуу эрхтэй командуудыг гүйцэтгэх боломжийг олгоно. Хандалтыг хязгаарлахын тулд USB токен (жишээ нь, Yubikey) ашиглан эрх мэдлийн баталгаажуулалтыг нэмж ашиглаж болно.

OpenSSH серверийн бүрэлдэхүүн хэсгүүдийг локал Unix залгуураар дамжуулан тохируулах жишээ (тусдаа sshd жишээ нь өөрийн тохиргооны файлтай хамт нээгдэнэ):

/etc/systemd/system/sshd-unix.socket: [Нэгж] Тодорхойлолт=OpenSSH Сервер Unix Socket Documentation=man:sshd(8) man:sshd_config(5) [Socket] ListenStream=/run/sshd.sock Зөвшөөрөх=тийм [Суулгах] WantedBy=sockets.target

/ гэх мэт / systemd / system /[имэйлээр хамгаалагдсан]: [Нэгж] Тодорхойлолт=Нээлттэй SSH серверийн дэмон (Unix залгуур) Баримт бичиг=man:sshd(8) man:sshd_config(5) Хүсч байна=sshd-keygen.target After=sshd-keygen.target [Үйлчилгээ] ExecStart=- /usr/sbin/sshd -i -f /etc/ssh/sshd_config_unix StandardInput=сокет

/etc/ssh/sshd_config_unix: # Зөвхөн түлхүүр нэвтрэлт танилтыг үлдээнэ PermitRootLogin prohibit-password PasswordAuthentication no PermitEmptyPasswords no GSSAPIAuthentication no # сонгосон хэрэглэгчдэд хандах хандалтыг хязгаарладаг AllowUsers root adminusername # Зөвхөн ашиглахыг үлдээнэ. AuthorizedKeysFile .ssh /эрх бүхий_түлхүүрүүд # sftp дэд системийг идэвхжүүлэх sftp /usr/libexec/openssh/sftp-server

Системийн нэгжийг идэвхжүүлж, ажиллуулна уу: sudo systemctl дэмон-дахин ачаалах sudo systemctl идэвхжүүлэх —одоо sshd-unix.socket

SSH түлхүүрээ /root/.ssh/authorized_keys руу нэмнэ үү

SSH клиентийг тохируулж байна.

Socat хэрэгслийг суулгана уу: sudo dnf install socat

Бид /.ssh/config-г UNIX залгуураар нэвтрэхэд зориулж socat-г прокси болгон зааж өгдөг: Host host.local Хэрэглэгчийн үндэс # ProxyCommand socat - UNIX-CLIENT-аас ажиллахын тулд /run-ын оронд /run/host/run-ыг ашиглана уу: / run/ host/run/sshd.sock # SSH түлхүүр рүү хүрэх зам IdentityFile ~/.ssh/keys/localroot # Интерактив бүрхүүлд зориулсан TTY дэмжлэгийг идэвхжүүлэх RequestTTY тийм # Шаардлагагүй гаралтыг арилгах LogLevel CUIET

Одоогийн байдлаар хэрэглэгчийн админ нэр нь нууц үг оруулахгүйгээр тушаалуудыг root хэлбэрээр гүйцэтгэх боломжтой болно. Үйлдлийг шалгаж байна: $ ssh host.local [root ~]#

Бид sudo-той төстэй “ssh host.local”-ыг ажиллуулахын тулд bash-д sudohost-ын нэр үүсгэнэ: sudohost() { if [[ ${#} -eq 0 ]]; дараа нь ssh host.local "cd \"${PWD}\"; exec \"${SHELL}\" --login" else ssh host.local "cd \"${PWD}\"; exec \»${@}\»» fi }

Шалгана уу: $ sudohost id uid=0(root) gid=0(root) groups=0(root)

Бид итгэмжлэлүүдийг нэмж, хоёр хүчин зүйлийн баталгаажуулалтыг идэвхжүүлж, зөвхөн Yubikey USB токен оруулсан үед root хандалтыг зөвшөөрдөг.

Бид аль алгоритмыг одоо байгаа Yubikey дэмждэг болохыг шалгадаг: lsusb -v 2>/dev/null | grep -A2 Yubico | grep "bcdDevice" | awk '{2$XNUMX} хэвлэх'

Хэрэв гаралт 5.2.3 ба түүнээс дээш бол түлхүүр үүсгэхдээ ed25519-sk, эс бөгөөс ecdsa-sk: ssh-keygen -t ed25519-sk эсвэл ssh-keygen -t ecdsa-sk ашиглана уу.

Нийтийн түлхүүрийг /root/.ssh/authorized_keys-д нэмнэ

Sshd тохиргоонд холбох түлхүүрийн төрлийг нэмнэ үү: /etc/ssh/sshd_config_unix: PubkeyAcceptedKeyTypes [имэйлээр хамгаалагдсан],[имэйлээр хамгаалагдсан]

Бид Unix залгуурт нэвтрэх эрхийг зөвхөн өндөр эрх бүхий хэрэглэгчдэд хязгаарладаг (бидний жишээнд админ хэрэглэгчийн нэр). /etc/systemd/system/sshd-unix.socket дотор нэмнэ үү: [Socket] ... SocketUser=adminusername SocketGroup=adminusername SocketMode=0660

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх