د نړیوالو سیالیو ګټونکي SSH او sudo بیا په سټیج کې دي. د نامتو فعال لارښود کنډکټر لخوا رهبري کیږي

په تاریخي توګه، د sudo اجازې د فایلونو مینځپانګې لخوا اداره شوي /etc/sudoers.d и ویډودو، او کلیدي واک په کارولو سره ترسره شو ~/.ssh/authorized_keys. په هرصورت، لکه څنګه چې زیربنا وده کوي، په مرکزي توګه د دې حقونو اداره کولو لیوالتیا شتون لري. نن ورځ ممکن د حل ډیری اختیارونه وي:

  • د تنظیم مدیریت سیسټم - مشر, ګوډاګی, ناڅاپي, د مالګې
  • فعال نوملړ + ssd
  • د سکریپټونو او لاسي فایل ایډیټ کولو په شکل کې مختلف تخریبونه

زما په نظر کې، د مرکزي مدیریت لپاره غوره انتخاب لاهم یو ترکیب دی فعال نوملړ + ssd. د دې طریقې ګټې په لاندې ډول دي:

  • واقعیا یو واحد مرکزي کارونکي لارښود.
  • د حقوقو ویش سوډو یو ځانګړي امنیتي ګروپ ته د کاروونکي اضافه کولو لپاره راځي.
  • د مختلف لینکس سیسټمونو په حالت کې ، دا اړینه ده چې د OS ټاکلو لپاره اضافي چیکونه معرفي کړئ کله چې د ترتیب کولو سیسټمونو کاروئ.

د نن ورځې سویټ به په ځانګړي ډول پیوستون ته وقف شي فعال نوملړ + ssd د حقوقو مدیریت لپاره سوډو او ذخیره کول SSH کیلي په یوه ذخیره کې.
نو، تالار په سخته چوپتیا کې کنډک و، کنډکټر خپل ډنډ پورته کړ، او آرکیسټرا چمتو شو.
ځه

ورکړل شوی:
- د فعال لارښود ډومین testopf.local په وینډوز سرور 2012 R2 کې.
- د لینکس کوربه Centos 7 چلوي
- په کارولو سره تنظیم شوی اجازه ssd
دواړه حلونه په سکیما کې بدلون راولي فعال نوملړ، نو موږ هرڅه د ازموینې چاپیریال کې ګورو او یوازې بیا په کاري زیربنا کې بدلونونه راوړو. زه غواړم یادونه وکړم چې ټول بدلونونه په نښه شوي او په حقیقت کې یوازې اړین صفات او ټولګي اضافه کړئ.

لومړی عمل: کنټرول سوډو له لارې رولونه فعال نوملړ.

د سرکټ پراخولو لپاره فعال نوملړ تاسو اړتیا لرئ وروستی ریلیز ډاونلوډ کړئ سوډو - له نن څخه 1.8.27. فایل خلاص او کاپي کړئ schema.ActiveDirectory د ./doc لارښود څخه د ډومین کنټرولر ته. د لارښود څخه د مدیر حقونو سره د کمانډ لاین څخه چیرې چې فایل کاپي شوی و ، چل کړئ:
ldifde -i -f schema.ActiveDirectory -c dc=X dc=testopf,dc=local
(خپل ارزښتونه بدلول مه هیروئ)
خلاص adsiedit.msc او د ډیفالټ شرایطو سره وصل کړئ:
د ډومین په ریښه کې یوه څانګه جوړه کړئ سوډرونه. (بورژوازي په کلکه ادعا کوي چې په دې واحد کې شیطان دی ssd د یو توکي لټون کوي sudoRole توکي په هرصورت، د تفصيلي ډیبګ کولو او د لاګونو مطالعې وروسته، دا معلومه شوه چې لټون د ټول لارښود ونې په اوږدو کې ترسره شوی.)
موږ لومړی څیز جوړوو چې په ویش کې ټولګي پورې اړه لري sudoRole. نوم په بشپړ ډول په خپله خوښه غوره کیدی شي، ځکه چې دا یوازې د اسانه پیژندنې لپاره کار کوي.
د سکیما توسیع څخه د ممکنه موجودو ځانګړتیاو څخه، اصلي یې په لاندې ډول دي:

  • sudoCommand - مشخص کوي چې کوم حکمونه په کوربه کې د اجرا کولو اجازه لري.
  • sudoHost - ټاکي چې دا رول په کوم کوربه باندې تطبیق کیږي. په توګه مشخص کیدی شي ټول، او د نوم له مخې د انفرادي کوربه لپاره. د ماسک کارول هم امکان لري.
  • sudoUser - په ګوته کړئ چې کوم کاروونکي د اجرا کولو اجازه لري سوډو.
    که تاسو یوه امنیتي ډله مشخص کړئ، د نوم په پیل کې د "%" نښه اضافه کړئ. که چیرې د ګروپ په نوم کې ځایونه شتون ولري، د اندیښنې لپاره هیڅ شی نشته. د لوګو په واسطه قضاوت کول، د ځایونو څخه د تیښتې دنده د میکانیزم لخوا اخیستل کیږي ssd.

د نړیوالو سیالیو ګټونکي SSH او sudo بیا په سټیج کې دي. د نامتو فعال لارښود کنډکټر لخوا رهبري کیږي
شکل 1. د ډایرکټر په ریښه کې د sudoers فرعي برخې کې sudoRole توکي

د نړیوالو سیالیو ګټونکي SSH او sudo بیا په سټیج کې دي. د نامتو فعال لارښود کنډکټر لخوا رهبري کیږي
شکل 2. په امنیتي ګروپونو کې غړیتوب چې په sudoRole څیزونو کې مشخص شوي.

لاندې ترتیب د لینکس اړخ کې ترسره کیږي.
په دوتنه کې /etc/nsswitch.conf د فایل پای ته کرښه اضافه کړئ:

sudoers: files sss

په دوتنه کې /etc/sssd/sssd.conf په برخه کې [sssd] خدماتو ته اضافه کړئ سوډو

cat /etc/sssd/sssd.conf | grep services
services = nss, pam, sudo

د ټولو عملیاتو وروسته ، تاسو اړتیا لرئ د ایس ایس ایس ډی ډیمون کیچ پاک کړئ. اتوماتیک تازه معلومات په هر 6 ساعتونو کې پیښیږي، مګر ولې موږ باید دومره اوږد انتظار وکړو کله چې موږ اوس غواړو؟

sss_cache -E

دا ډیری وختونه پیښیږي چې د کیچ پاکول مرسته نه کوي. بیا موږ خدمت ودروو، ډیټابیس پاک کړو، او خدمت پیل کړو.

service sssd stop
rm -rf /var/lib/sss/db/*
service sssd start

موږ د لومړي کارونکي په توګه وصل کوو او وګورو چې هغه ته د sudo لاندې څه شتون لري:

su user1
[user1@testsshad log]$ id
uid=1109801141(user1) gid=1109800513(domain users) groups=1109800513(domain users),1109801132(admins_)
[user1@testsshad log]$ sudo -l
[sudo] password for user1:
Matching Defaults entries for user1 on testsshad:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User user1 may run the following commands on testsshad:
    (root) /usr/bin/ls, /usr/bin/cat

موږ د خپل دوهم کارونکي سره ورته کوو:

su user2
[user2@testsshad log]$ id
uid=1109801142(user2) gid=1109800513(domain users) groups=1109800513(domain users),1109801138(sudo_root)
[user2@testsshad log]$ sudo -l
Matching Defaults entries for user2 on testsshad:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User user2 may run the following commands on testsshad:
    (root) ALL

دا طریقه تاسو ته اجازه درکوي په مرکزي توګه د مختلف کاروونکو ډلو لپاره د سوډو رولونه تعریف کړئ.

په فعال لارښود کې د ssh کیلي ذخیره کول او کارول

د سکیم د لږ پراخولو سره، دا ممکنه ده چې د فعال ډایرکټر کاروونکي ځانګړتیاو کې د ssh کیلي ذخیره کړئ او د لینکس کوربه کولو په وخت کې یې وکاروئ.

د sssd له لارې واک باید تنظیم شي.
د پاور شیل سکریپټ په کارولو سره اړین خاصیت اضافه کړئ.
AddsshPublicKeyAttribute.ps1فنکشن نوی-AttributeID {
$Prefix="1.2.840.113556.1.8000.2554"
$GUID=[System.Guid]::NewGuid().ToString()
$Parts=@()
$Parts+=[UInt64]::Parse($guid.SubString(0,4),"AllowHexSpecifier")
$Parts+=[UInt64]::Parse($guid.SubString(4,4),"AllowHexSpecifier")
$Parts+=[UInt64]::Parse($guid.SubString(9,4),"AllowHexSpecifier")
$Parts+=[UInt64]::Parse($guid.SubString(14,4),"AllowHexSpecifier")
$Parts+=[UInt64]::Parse($guid.SubString(19,4),"AllowHexSpecifier")
$Parts+=[UInt64]::Parse($guid.SubString(24,6),"AllowHexSpecifier")
$Parts+=[UInt64]::Parse($guid.SubString(30,6),"AllowHexSpecifier")
$oid=[String]::Format(«{0}.{1}.{2}.{3}.{4}.{5}.{6}.{7}»,$prefix,$Parts[0],
$Parts[1],$Parts[2],$Parts[3],$Parts[4],$Parts[5],$Parts[6])
$oid
}
$schemaPath = (Get-ADRootDSE). schemaNamingContext
$oid = نوی-AttributeID
$خاصیت = @{
lDAPDisplayName = 'sshPublicKey';
attributeId = $oid؛
oMSyntax = 22 ;
attributeSyntax = "2.5.5.5" ;
isSingleValued = $true;
adminDescription = 'د SSH ننوتلو لپاره د کارن عامه کیلي'؛
}

نوی-ADObject-نوم sshPublicKey-نوم خاصیت سکیما-پت $schemapath-نور خاصیتونه $ځانګړتیاوې
$userSchema = get-adobject -SearchBase $schemapath -Filter 'name -eq "user"'
$userSchema | Set-ADObject-Add @{mayContain = 'sshPublicKey'}

د ځانګړتیا اضافه کولو وروسته، تاسو باید د فعال ډایرکټر ډومین خدمتونه بیا پیل کړئ.
راځئ چې د فعال لارښود کاروونکو ته لاړ شو. موږ به ستاسو لپاره د هر ډول مناسب میتود په کارولو سره د ssh اتصال لپاره کلیدي جوړه جوړه کړو.
موږ PuttyGen په لاره واچوو، د "جوړولو" تڼۍ فشار ورکړئ او موږک په خالي سیمه کې په لیوالتیا سره حرکت وکړئ.
د پروسې په بشپړیدو سره، موږ کولی شو عامه او شخصي کیلي خوندي کړو، عامه کیلي د فعال ډایرکټر کارونکي ځانګړتیا ته پورته کړو او د پروسې څخه خوند واخلو. په هرصورت، عامه کیلي باید د "د OpenSSH authorized_keys فایل کې د پیسټ کولو لپاره عامه کیلي:".
د نړیوالو سیالیو ګټونکي SSH او sudo بیا په سټیج کې دي. د نامتو فعال لارښود کنډکټر لخوا رهبري کیږي
د کارونکي ځانګړتیا ته کلیدي اضافه کړئ.
اختیار 1 - GUI:
د نړیوالو سیالیو ګټونکي SSH او sudo بیا په سټیج کې دي. د نامتو فعال لارښود کنډکټر لخوا رهبري کیږي
اختیار 2 - PowerShell:
get-aduser user1 | set-aduser -add @{sshPublicKey = 'AAAAB...XAVnX9ZRJJ0p/Q=='}
نو، موږ اوس مهال لرو: د sshPublicKey خاصیت سره یو کارن ډک شوی، د کیلي په کارولو سره د اختیار لپاره ترتیب شوی Putty مراجع. دلته یو کوچنی ټکی پاتې دی: څنګه د sshd ډیمون مجبور کړو چې عامه کیلي راوباسي چې موږ د کارونکي ځانګړتیاو څخه ورته اړتیا لرو. په بورژوا انټرنیټ کې موندل شوی یو کوچنی سکریپټ کولی شي په بریالیتوب سره د دې سره مقابله وکړي.

cat /usr/local/bin/fetchSSHKeysFromLDAP
#!/bin/sh
ldapsearch -h testmdt.testopf.local -xb "dc=testopf,dc=local" '(sAMAccountName='"${1%@*}"')' -D [email protected] -w superSecretPassword 'sshPublicKey' | sed -n '/^ /{H;d};/sshPublicKey:/x;$g;s/n *//g;s/sshPublicKey: //gp'

موږ په دې کې د روټ لپاره 0500 ته اجازه ټاکلې.

chmod 0500  /usr/local/bin/fetchSSHKeysFromLDAP

په دې مثال کې، د مدیر حساب د لارښود سره تړلو لپاره کارول کیږي. په جنګي شرایطو کې باید یو جلا حساب وي چې لږ تر لږه حقوق ولري.
زه په شخصي توګه په سکریپټ کې د هغې په خالص شکل کې د پټنوم د شیبې له امله خورا مغشوش وم ، سره له دې چې د حقونو ټاکل شوي.
د حل لاره:

  • زه پاسورډ په جلا فایل کې خوندي کوم:
    echo -n Supersecretpassword > /usr/local/etc/secretpass

  • ما د روټ لپاره 0500 ته د فایل اجازې تنظیم کړې
    chmod 0500 /usr/local/etc/secretpass

  • د ldapsearch لانچ پیرامیټونو بدلول: پیرامیټر -w superSecretPassword زه به یې بدل کړم -y/usr/local/etc/secretpass

د نن ورځې سویټ کې وروستی کارډ د sshd_config ترمیم دی

cat /etc/ssh/sshd_config | egrep -v -E "#|^$" | grep -E "AuthorizedKeysCommand|PubkeyAuthe"
PubkeyAuthentication yes
AuthorizedKeysCommand /usr/local/bin/fetchSSHKeysFromLDAP
AuthorizedKeysCommandUser root

د پایلې په توګه، موږ لاندې ترتیب ترلاسه کوو د کلیدي اختیار سره چې په ssh مراجع کې ترتیب شوي:

  1. کارونکي د خپل ننوتلو په ګوته کولو سره سرور سره وصل کیږي.
  2. د sshd ډیمون، د سکریپټ له لارې، په فعاله ډایرکټر کې د کارونکي ځانګړتیا څخه د عامه کلیدي ارزښت استخراج کوي او د کیلي په کارولو سره اجازه ورکوي.
  3. د sssd ډیمون د ګروپ غړیتوب پراساس کارونکي نور تصدیق کوي. پاملرنه! که دا تنظیم شوی نه وي، نو هر ډومین کارونکي به کوربه ته لاسرسی ولري.
  4. کله چې تاسو د sudo هڅه وکړئ، د sssd ډیمون د رولونو لپاره فعال لارښود لټوي. که چیرې رولونه شتون ولري، د کارونکي ځانګړتیاوې او د ډلې غړیتوب چک کیږي (که sudoRoles د کاروونکو ګروپونو کارولو لپاره ترتیب شوي وي)

ټوله

په دې توګه، کیلي د فعال ډایرکټر کاروونکي ځانګړتیاو کې زیرمه شوي، د sudo اجازه - په ورته ډول، د ډومین حسابونو لخوا د لینکس کوربه ته لاسرسی د فعال لارښود ګروپ کې د غړیتوب په چک کولو سره ترسره کیږي.
د کنډکټر د ډنډ وروستۍ څپې - او تالار په درناوی چوپتیا کې کنګل کیږي.

هغه سرچینې چې په لیکلو کې کارول کیږي:

سوډو د فعال لارښود له لارې
د فعال لارښود له لارې Ssh کیلي
د پاورشیل سکریپټ، د فعال ډایرکټر سکیما ته د ځانګړتیا اضافه کول
sudo مستحکم خوشې کول

سرچینه: www.habr.com

Add a comment