سوڊ فائلن کان نجات حاصل ڪرڻ لاءِ سوڊو بدران UNIX ساکٽ تي SSH استعمال ڪريو

ريڊ هٽ مان ٽيموٿي رويئر، فيڊورا سلور بليو ۽ فيڊورا ڪينوائيٽ پروجيڪٽس جو هڪ سنڀاليندڙ، سوڊو يوٽيلٽي کي استعمال ڪرڻ کان بچڻ جو هڪ طريقو پيش ڪيو، جيڪو استحقاق کي وڌائڻ لاءِ سوڊ بٽ استعمال ڪري ٿو. sudo جي بدران، هڪ عام صارف لاء روٽ حقن سان حڪمن تي عمل ڪرڻ لاء، اهو تجويز ڪيو ويو آهي ته ssh يوٽيلٽي کي مقامي ڪنيڪشن سان گڏ هڪ UNIX ساکٽ ذريعي ۽ SSH ڪيز جي بنياد تي اجازتن جي تصديق.

sudo جي بدران ssh استعمال ڪرڻ توهان کي سسٽم تي سوڊ پروگرامن کان نجات حاصل ڪرڻ ۽ تقسيم جي ميزبان ماحول ۾ امتيازي حڪمن جي عمل کي فعال ڪرڻ جي اجازت ڏئي ٿو جيڪي ڪنٽينر آئسوليشن اجزاء استعمال ڪن ٿا، جهڙوڪ Fedora Silverblue، Fedora Kinoite، Fedora Sericea ۽ Fedora Onyx. رسائي کي محدود ڪرڻ لاء، يو ايس بي ٽوڪن استعمال ڪندي اختيار جي تصديق (مثال طور، يوبيڪي) اضافي طور تي استعمال ڪري سگھجي ٿو.

مقامي يونڪس ساکٽ ذريعي رسائي لاءِ OpenSSH سرور اجزاء کي ترتيب ڏيڻ جو هڪ مثال (هڪ الڳ sshd مثال ان جي پنهنجي ترتيب واري فائل سان شروع ڪيو ويندو):

/etc/systemd/system/sshd-unix.socket: [Unit] Description=OpenSSH سرور يونڪس ساکٽ دستاويزن = man:sshd(8) man:sshd_config(5) [Socket] ListenStream=/run/sshd.sock قبول = ها [انسٽال ڪريو] WantedBy=sockets.target

/ وغيره / systemd / سسٽم /[ايميل محفوظ ٿيل]: [يونٽ] تفصيل = OpenSSH في ڪنيڪشن سرور ڊيمون (يونڪس ساکٽ) دستاويز = 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=socket

/etc/ssh/sshd_config_unix: # ڇڏي ٿو صرف اهم تصديق جي اجازت ڏئي ٿو روٽ لاگ ان منع-پاسورڊ پاسورڊ تصديق نه اجازت EmptyPasswords نه GSSAPIA تصديق نه # منتخب ٿيل استعمال ڪندڙن تائين رسائي کي محدود ڪري ٿو استعمال ڪندڙن کي روٽ منتظم نالو # ڇڏي ٿو صرف استعمال ڪرڻ جي اجازت ڏئي ٿو. 2 اختيار ڪيل ڪيز فائل .ssh /اختيار ٿيل_ چاٻيون # فعال ڪريو sftp سبسسٽم sftp /usr/libexec/openssh/sftp-server

سسٽم ڊي يونٽ کي چالو ۽ لانچ ڪريو: sudo systemctl daemon-reload sudo systemctl enable - now sshd-unix.socket

پنھنجي SSH ڪي کي /root/.ssh/authorized_keys ۾ شامل ڪريو

SSH ڪلائنٽ کي ترتيب ڏيڻ.

انسٽال ڪريو ساڪٽ يوٽيلٽي: sudo dnf install socat

اسان /.ssh/config کي يونڪس ساکٽ ذريعي رسائي حاصل ڪرڻ لاءِ پراکسي طور socat کي بيان ڪندي اضافي ڪريون ٿا: Host host.local يوزر روٽ # ڪنٽينرز کان ڪم ڪرڻ لاءِ /run/host/run بدران استعمال ڪريو ProxyCommand socat - UNIX-CLIENT: / run/host/run/sshd.sock # SSH ڪيئي IdentityFile ڏانھن رستو ~/.ssh/keys/localroot # انٽرايڪٽو شيل لاءِ TTY سپورٽ کي فعال ڪريو RequestTTY yes # غير ضروري ٻاھر ڪڍو LogLevel QUIET

ان جي موجوده شڪل ۾، صارف منتظم جو نالو ھاڻي پاس ورڊ داخل ڪرڻ کان سواءِ روٽ جي طور تي حڪمن کي انجام ڏئي سگھندو. آپريشن جي جانچ ڪندي: $ssh host.local [root ~]#

اسان "ssh host.local" کي هلائڻ لاءِ bash ۾ sudohost عرف ٺاهيندا آهيون، جهڙوڪ sudo: 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) گروپ=0(root)

اسان سندون شامل ڪريون ٿا ۽ ٻن عنصر جي تصديق کي فعال ڪريون ٿا، روٽ رسائي جي اجازت ڏئي ٿي صرف ان وقت جڏهن يوبيڪي يو ايس بي ٽوڪن داخل ڪيو وڃي.

اسان چيڪ ڪريون ٿا ته موجوده Yubikey: lsusb -v 2>/dev/null | grep -A2 Yubico | grep "bcdDevice" | awk '{پرنٽ $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 ۾ شامل ڪريو: [Socket] ... SocketUser=adminusername SocketGroup=adminusername SocketMode=0660

جو ذريعو: opennet.ru

تبصرو شامل ڪريو