வரலாற்று ரீதியாக, சூடோ அனுமதிகள் கோப்புகளின் உள்ளடக்கத்தால் நிர்வகிக்கப்படுகின்றன /etc/sudoers.d и visudo, மற்றும் முக்கிய அங்கீகாரம் பயன்படுத்தி மேற்கொள்ளப்பட்டது ~/.ssh/authorized_keys. இருப்பினும், உள்கட்டமைப்பு வளரும்போது, இந்த உரிமைகளை மையமாக நிர்வகிக்க விருப்பம் உள்ளது. இன்று பல தீர்வு விருப்பங்கள் இருக்கலாம்:
- கட்டமைப்பு மேலாண்மை அமைப்பு - செஃப், பப்பட், Ansible, உப்பு
- செயலில் உள்ள அடைவு + ssd
- ஸ்கிரிப்டுகள் மற்றும் கையேடு கோப்பு எடிட்டிங் வடிவத்தில் பல்வேறு வக்கிரங்கள்
எனது அகநிலை கருத்துப்படி, மையப்படுத்தப்பட்ட நிர்வாகத்திற்கான சிறந்த விருப்பம் இன்னும் ஒரு கலவையாகும் செயலில் உள்ள அடைவு + ssd. இந்த அணுகுமுறையின் நன்மைகள்:
- உண்மையிலேயே ஒரு மையப்படுத்தப்பட்ட பயனர் கோப்பகம்.
- உரிமைகள் விநியோகம் சூடோ ஒரு குறிப்பிட்ட பாதுகாப்புக் குழுவில் ஒரு பயனரைச் சேர்ப்பது கீழே வருகிறது.
- பல்வேறு லினக்ஸ் அமைப்புகளின் விஷயத்தில், கட்டமைப்பு அமைப்புகளைப் பயன்படுத்தும் போது OS ஐத் தீர்மானிக்க கூடுதல் சோதனைகளை அறிமுகப்படுத்துவது அவசியமாகிறது.
இன்றைய தொகுப்பு குறிப்பாக இணைப்பிற்கு அர்ப்பணிக்கப்படும் செயலில் உள்ள அடைவு + ssd உரிமை மேலாண்மைக்காக சூடோ மற்றும் சேமிப்பு எஸ்எஸ்ஹெச் ஒரே களஞ்சியத்தில் உள்ள விசைகள்.
எனவே, மண்டபம் பதட்டமான அமைதியில் உறைந்தது, நடத்துனர் தனது தடியை உயர்த்தினார், ஆர்கெஸ்ட்ரா தயாராகியது.
போ.
கொடுக்கப்பட்ட:
— செயலில் உள்ள அடைவு டொமைன் testopf.உள்ளூர் விண்டோஸ் சர்வர் 2012 R2 இல்.
— லினக்ஸ் ஹோஸ்ட் சென்டோஸ் 7 இல் இயங்குகிறது
— பயன்படுத்தி கட்டமைக்கப்பட்ட அங்கீகாரம் ssd
இரண்டு தீர்வுகளும் திட்டத்தில் மாற்றங்களைச் செய்கின்றன செயலில் உள்ள அடைவு, எனவே சோதனைச் சூழலில் அனைத்தையும் சரிபார்த்து, அதன் பிறகுதான் வேலை செய்யும் உள்கட்டமைப்பில் மாற்றங்களைச் செய்கிறோம். அனைத்து மாற்றங்களும் இலக்காகக் கொண்டவை என்பதை நான் கவனிக்க விரும்புகிறேன், உண்மையில், தேவையான பண்புக்கூறுகள் மற்றும் வகுப்புகளை மட்டும் சேர்க்கவும்.
செயல் 1: கட்டுப்பாடு சூடோ மூலம் பாத்திரங்கள் செயலில் உள்ள அடைவு.
சுற்று விரிவாக்கம் செய்ய செயலில் உள்ள அடைவு நீங்கள் சமீபத்திய பதிப்பைப் பதிவிறக்க வேண்டும்
ldifde -i -f schema.ActiveDirectory -c dc=X dc=testopf,dc=local
(உங்கள் மதிப்புகளை மாற்ற மறக்காதீர்கள்)
திறக்க adsiedit.msc மற்றும் இயல்புநிலை சூழலுடன் இணைக்கவும்:
டொமைனின் மூலத்தில் ஒரு பிரிவை உருவாக்கவும் சூடூயர்கள். (இந்த அலகில் தான் பேய் என்று முதலாளித்துவம் பிடிவாதமாக கூறுகிறது ssd ஒரு பொருளைத் தேடுகிறது sudoRole பொருள்கள். இருப்பினும், விரிவான பிழைத்திருத்தத்தை இயக்கி, பதிவுகளைப் படித்த பிறகு, முழு அடைவு மரத்திலும் தேடுதல் மேற்கொள்ளப்பட்டது தெரியவந்தது.)
வகுப்பிற்குரிய முதல் பொருளை வகுப்பில் உருவாக்குகிறோம் sudoRole. பெயர் முற்றிலும் தன்னிச்சையாக தேர்ந்தெடுக்கப்படலாம், ஏனெனில் இது வசதியான அடையாளத்திற்காக மட்டுமே செயல்படுகிறது.
ஸ்கீமா நீட்டிப்பிலிருந்து கிடைக்கக்கூடிய சாத்தியமான பண்புக்கூறுகளில், முக்கியமானது பின்வருபவை:
- sudoCommand - ஹோஸ்டில் எந்த கட்டளைகளை இயக்க அனுமதிக்கப்படுகிறது என்பதை தீர்மானிக்கிறது.
- sudoHost - இந்தப் பாத்திரம் எந்த ஹோஸ்ட்களுக்குப் பொருந்தும் என்பதைத் தீர்மானிக்கிறது. என குறிப்பிடலாம் அனைத்து, மற்றும் பெயரின்படி ஒரு தனிப்பட்ட ஹோஸ்டுக்கு. முகமூடியைப் பயன்படுத்துவதும் சாத்தியமாகும்.
- sudoUser - எந்த பயனர்கள் இயக்க அனுமதிக்கப்படுகிறார்கள் என்பதைக் குறிக்கவும் சூடோ.
நீங்கள் பாதுகாப்புக் குழுவைக் குறிப்பிட்டால், பெயரின் தொடக்கத்தில் "%" அடையாளத்தைச் சேர்க்கவும். குழுவின் பெயரில் இடைவெளிகள் இருந்தால், கவலைப்பட ஒன்றுமில்லை. பதிவுகள் மூலம் ஆராய, இடைவெளிகளை வெளியேற்றும் பணி பொறிமுறையால் எடுக்கப்படுகிறது ssd.
படம் 1. கோப்பகத்தின் மூலத்தில் உள்ள sudoers உட்பிரிவில் உள்ள sudoRole பொருள்கள்
படம் 2. sudoRole பொருட்களில் குறிப்பிடப்பட்ட பாதுகாப்பு குழுக்களில் உறுப்பினர்.
பின்வரும் அமைப்பு லினக்ஸ் பக்கத்தில் செய்யப்படுகிறது.
கோப்பில் /etc/nsswitch.conf கோப்பின் முடிவில் வரியைச் சேர்க்கவும்:
sudoers: files sss
கோப்பில் /etc/sssd/sssd.conf பிரிவில் [sssd] சேவைகளில் சேர்க்கவும் சூடோ
cat /etc/sssd/sssd.conf | grep services
services = nss, pam, sudo
அனைத்து செயல்பாடுகளுக்கும் பிறகு, நீங்கள் sssd டீமான் தற்காலிக சேமிப்பை அழிக்க வேண்டும். ஒவ்வொரு 6 மணி நேரத்திற்கும் தானியங்கி புதுப்பிப்புகள் ஏற்படும், ஆனால் இப்போது நாம் விரும்பும் போது ஏன் இவ்வளவு நேரம் காத்திருக்க வேண்டும்?
sss_cache -E
தற்காலிக சேமிப்பை அழிப்பது உதவாது என்பது பெரும்பாலும் நிகழ்கிறது. பின்னர் நாங்கள் சேவையை நிறுத்தி, தரவுத்தளத்தை சுத்தம் செய்து, சேவையைத் தொடங்குகிறோம்.
service sssd stop
rm -rf /var/lib/sss/db/*
service sssd start
நாங்கள் முதல் பயனராக இணைத்து, சூடோவின் கீழ் அவருக்கு என்ன கிடைக்கும் என்பதைச் சரிபார்க்கிறோம்:
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செயல்பாடு புதிய-பண்பு ஐடி {
$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 = New-AtributeID
$பண்புகள் = @{
lDAPDisplayName = 'sshPublicKey';
attributeId = $oid;
oMsyntax = 22;
attributeSyntax = "2.5.5.5";
isSingleValued = $true;
adminDescription = 'SSH உள்நுழைவுக்கான பயனர் பொது விசை';
}
புதிய-ADObject -Name sshPublicKey -வகை பண்புக்கூறு திட்டம் -பாதை $schemapath -பிற பண்புக்கூறுகள் $பண்புகள்
$userSchema = get-adobject -SearchBase $schemapath -Filter 'name -eq "user"'
$userSchema | Set-ADObject -சேர் @{mayContain = 'sshPublicKey'}
பண்புக்கூறைச் சேர்த்த பிறகு, நீங்கள் செயலில் உள்ள அடைவு டொமைன் சேவைகளை மறுதொடக்கம் செய்ய வேண்டும்.
செயலில் உள்ள அடைவு பயனர்களுக்கு செல்லலாம். உங்களுக்கு வசதியான எந்த முறையையும் பயன்படுத்தி ssh இணைப்புக்கான முக்கிய ஜோடியை உருவாக்குவோம்.
நாங்கள் PuttyGen ஐத் தொடங்குகிறோம், "உருவாக்கு" பொத்தானை அழுத்தி, வெற்றுப் பகுதிக்குள் சுட்டியை வெறித்தனமாக நகர்த்துகிறோம்.
செயல்முறை முடிந்ததும், பொது மற்றும் தனிப்பட்ட விசைகளைச் சேமித்து, பொது விசையை ஆக்டிவ் டைரக்டரி பயனர் பண்புக்கூறில் பதிவேற்றலாம் மற்றும் செயல்முறையை அனுபவிக்கலாம். இருப்பினும், பொது விசையை "OpenSSH authorized_keys கோப்பில் ஒட்டுவதற்கான பொது விசை:".
பயனர் பண்புக்கூறில் விசையைச் சேர்க்கவும்.
விருப்பம் 1 - GUI:
விருப்பம் 2 - பவர்ஷெல்:
get-aduser user1 | set-aduser -add @{sshPublicKey = 'AAAAB...XAVnX9ZRJJ0p/Q=='}
எனவே, தற்போது எங்களிடம் உள்ளது: sshPublicKey பண்புடன் நிரப்பப்பட்ட ஒரு பயனர், விசைகளைப் பயன்படுத்தி அங்கீகாரத்திற்காக கட்டமைக்கப்பட்ட புட்டி கிளையன்ட். ஒரு சிறிய புள்ளி உள்ளது: பயனரின் பண்புக்கூறுகளிலிருந்து நமக்குத் தேவையான பொது விசையைப் பிரித்தெடுக்க 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 கிளையண்டில் கட்டமைக்கப்பட்ட முக்கிய அங்கீகாரத்துடன் பின்வரும் வரிசையைப் பெறுகிறோம்:
- பயனர் தனது உள்நுழைவைக் குறிப்பதன் மூலம் சேவையகத்துடன் இணைக்கிறார்.
- sshd டீமான், ஸ்கிரிப்ட் மூலம், ஆக்டிவ் டைரக்டரியில் உள்ள பயனர் பண்புக்கூறிலிருந்து பொது விசை மதிப்பைப் பிரித்தெடுத்து, விசைகளைப் பயன்படுத்தி அங்கீகாரத்தைச் செய்கிறது.
- குழு உறுப்பினர்களின் அடிப்படையில் sssd டீமான் பயனரை மேலும் அங்கீகரிக்கிறது. கவனம்! இது கட்டமைக்கப்படவில்லை என்றால், எந்த டொமைன் பயனரும் ஹோஸ்டுக்கான அணுகலைப் பெறுவார்கள்.
- நீங்கள் சூடோ செய்ய முயலும்போது, sssd டீமான் ஆக்டிவ் டைரக்டரியில் பாத்திரங்களைத் தேடுகிறது. பாத்திரங்கள் இருந்தால், பயனரின் பண்புக்கூறுகள் மற்றும் குழு உறுப்பினர் ஆகியவை சரிபார்க்கப்படும் (பயனர் குழுக்களைப் பயன்படுத்த sudoRoles கட்டமைக்கப்பட்டிருந்தால்)
இதன் விளைவாக.
எனவே, விசைகள் ஆக்டிவ் டைரக்டரி பயனர் பண்புக்கூறுகள், சூடோ அனுமதிகளில் சேமிக்கப்படுகின்றன - இதேபோல், டொமைன் கணக்குகள் மூலம் லினக்ஸ் ஹோஸ்ட்களுக்கான அணுகல் ஆக்டிவ் டைரக்டரி குழுவில் உறுப்பினர்களை சரிபார்ப்பதன் மூலம் மேற்கொள்ளப்படுகிறது.
நடத்துனரின் தடியடியின் இறுதி அலை - மற்றும் மண்டபம் பயபக்தியான அமைதியில் உறைகிறது.
எழுத்தில் பயன்படுத்தப்படும் வளங்கள்:
ஆதாரம்: www.habr.com