የ suid ፋይሎችን ለማስወገድ ከሱዶ ይልቅ ኤስኤስኤች በ UNIX ሶኬት ላይ መጠቀም

የፌዶራ ሲልቨርብሉ እና የፌዶራ ኪኖይት ፕሮጄክቶች ጠባቂ ቲሞቲ ራቪየር ከሬድ ኮፍያ፣ የሱዶ መገልገያን ከመጠቀም መቆጠብ የሚቻልበትን መንገድ አቅርበዋል፣ ይህም ልዩ መብቶችን ለመጨመር ሱይድ ቢት ይጠቀማል። ከሱዶ ይልቅ፣ ለመደበኛ ተጠቃሚ ከስር መብቶች ጋር ትዕዛዞችን እንዲፈጽም፣ የ ssh utility ከአካባቢያዊ ግንኙነት ጋር ከተመሳሳይ ስርዓት ጋር በ UNIX ሶኬት እና በኤስኤስኤች ቁልፎች ላይ ተመስርተው የፍቃዶች ማረጋገጫ እንዲጠቀሙ ይመከራል።

ከሱዶ ይልቅ ssh ን መጠቀም በሲስተሙ ላይ ያለውን የሱይድ ፕሮግራሞችን ለማስወገድ እና እንደ ፌዶራ ሲልቨርብሉ ፣ ፌዶራ ኪኖይት ፣ ፌዶራ ሴሪሲያ እና ፌዶራ ኦኒክስ ያሉ የእቃ መያዥያ ክፍሎችን የሚጠቀሙ ስርጭቶችን በአስተናጋጅ አካባቢ ውስጥ ልዩ ትዕዛዞችን እንዲፈፀሙ ያስችልዎታል። መዳረሻን ለመገደብ የዩኤስቢ ቶከን (ለምሳሌ ዩቢኪ) በመጠቀም የስልጣን ማረጋገጫ በተጨማሪ መጠቀም ይቻላል።

በአካባቢያዊ የዩኒክስ ሶኬት በኩል ለመድረስ የOpenSSH አገልጋይ ክፍሎችን የማዋቀር ምሳሌ (የተለየ የsshd ምሳሌ ከራሱ የውቅር ፋይል ጋር ይጀምራል)

/etc/systemd/system/sshd-unix.socket: [ዩኒት] መግለጫ=OpenSSH አገልጋይ Unix Socket Documentation=man:sshd(8) man:sshd_config(5) [ሶኬት] ListenStream=/run/sshd.sock ተቀበል=አዎ [ጫን] WantedBy = sockets.target

/ ወዘተ / systemd / system /[ኢሜል የተጠበቀ]: [ዩኒት] መግለጫ=SSH በአንድ ግንኙነት አገልጋይ ዴሞን (ዩኒክስ ሶኬት) Documentation=man:sshd(8) man:sshd_config(5) Wants=sshd-keygen.target After=sshd-keygen.target በኋላ=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 የለም # ለተመረጡት ተጠቃሚዎች መዳረሻን ይገድባል AllowUsers root adminusername # መተው የ.ssh/የተፈቀደለት ቁልፍ መጠቀም ብቻ ነው። ኤስኤስኤስ /የተፈቀዱ_ቁልፎች # sftp Subsystem sftp /usr/libexec/openssh/sftp-server አንቃ

የስርዓት ክፍሉን ያግብሩ እና ያስጀምሩ፡ sudo systemctl daemon-reload sudo systemctl አንቃ —አሁን sshd-unix.socket

የኤስኤስኤች ቁልፍዎን ወደ /root/.ssh/authorized_keys ያክሉ

የኤስኤስኤች ደንበኛን በማዋቀር ላይ።

የ socat መገልገያ ጫን፡ sudo dnf install socat

እኛ /.ssh/config በ UNIX ሶኬት በኩል ለመድረስ እንደ ፕሮክሲ በመጥቀስ ሶካትን እንጨምራለን፡ Host host.local User root # ከኮንቴይነሮች ለመስራት ከመሞከር ይልቅ ይጠቀሙ /አሂድ/አስተናጋጅ/አሂድ - UNIX-CLIENT: / run/host/run/sshd.sock # ዱካ ወደ ኤስኤስኤች ቁልፍ ማንነት ፋይል ~/.ssh/keys/localroot # የ TTY ድጋፍን ያንቁ በይነተገናኝ ሼል ጥያቄTTY አዎ # አላስፈላጊ ውፅዓት አስወግድ LogLevel QUIET

አሁን ባለው ቅጽ የተጠቃሚው አስተዳዳሪ ስም የይለፍ ቃል ሳያስገባ ትእዛዞችን እንደ root ማድረግ ይችላል። ክዋኔውን በመፈተሽ ላይ፡ $ssh host.local [ሥር ~]#

እኛ "ssh host.local" ለማስኬድ sudohost ተለዋጭ ስም እንፈጥራለን፣ ከ sudo: sudohost() {If [[${#} -eq 0]]; ከዚያ ssh host.local "cd \"${PWD}\"; exec \"${SHELL}\" --login ሌላ ssh host.local "cd \"${PWD}\"; exec \"${@}\" fi}

ይመልከቱ፡ $ sudohost id uid=0(ሥር) gid=0(ሥር) ቡድኖች=0(ሥር)

ምስክርነቶችን እንጨምራለን እና ባለ ሁለት ደረጃ ማረጋገጥን እናነቃለን፣ ይህም የዩቢኪ ዩኤስቢ ማስመሰያ ሲገባ ብቻ ስርወ እንዲደርስ ያስችላል።

የትኞቹ ስልተ ቀመሮች በነባሩ ዩቢኪ እንደሚደገፉ እንፈትሻለን፡ lsusb -v 2>/dev/null | grep -A2 Yubico | grep "bcdDevice" | አዋክ '{አትም $2}'

ውጤቱ 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 [ኢሜል የተጠበቀ],[ኢሜል የተጠበቀ]

የዩኒክስ ሶኬት መዳረሻ ከፍ ያለ ልዩ መብቶች ሊኖረው ለሚችል ተጠቃሚ ብቻ እንገድባለን (በእኛ ምሳሌ የአስተዳዳሪ ስም)። በ /etc/systemd/system/sshd-unix.socket አክል፡ [ሶኬት] ... SocketUser=adminusername SocketGroup=adminusername SocketMode=0660

ምንጭ: opennet.ru

አስተያየት ያክሉ