áááá¯ááºážá¡áá sudo ááœáá·áºááŒá¯áá»ááºáá»á¬ážááᯠááá¯ááºáá»á¬ážá០á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááŒáá·áº á¡á¯ááºáá»á¯ááºáá²á·áááºá /etc/sudoers.d О áá»ááºáá¯á¶ážááŸáá·áº áá±á¬á·ááœáá·áºááŒá¯áá»ááºááᯠá¡áá¯á¶ážááŒá¯á áá±á¬ááºááœááºáá²á·áá«áááºá ~/.ssh/authorized_keys. ááá¯á·áá±á¬áºáááºáž á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá»á¬áž ááŒá®ážááœá¬ážáá¬áááºááŸáá·áºá¡áá»áŸ á€á¡ááœáá·áºá¡áá±ážáá»á¬ážááᯠáááá¯á០á á®áá¶ááá·áºááœá²ááẠááá¹áááŸááá«áááºá ááá±á·ááœáẠááŒá±ááŸááºážáááºážáá»á¬ážá áœá¬ ááŸáááá¯ááºáááº-
- ááœá²á·á ááºážááŸá¯á á®áá¶ááá·áºááœá²ááŸá¯á áá Ạ- á¥á®ážáá±á«ááºážááá¯, áá¯ááºáá±áž, ááŒááºáááá°áž, áá¬ážáááº
- active Directory + ááŒá±á¬áá±
- script áá»á¬ážááŸáá·áº manual file áááºážááŒááºááŒááºážáá¯á¶á á¶á¡áá»áá¯ážáá»áá¯ážááŒáá·áºáá±á¬ááºááŒááºááŒááºáž
áá»áœááºá¯ááºááá¯áá¹ááá¡ááŒááºá¡áá áááá¯áá»á¯ááºááá¯ááºááŸá¯á á®áá¶ááá·áºááœá²ááŒááºážá¡ááœáẠá¡áá±á¬ááºážáá¯á¶ážááœá±ážáá»ááºááŸá¯ááŸá¬ áá±á«ááºážá ááºáá áºáᯠááŒá áºáá±áá²ááŒá áºáááºá active Directory + ááŒá±á¬áá±. á€áá»ááºážáááºááŸá¯áá¡á¬ážáá¬áá»ááºáá»á¬ážááŸá¬-
- á¡ááŸááºááááºááẠáááá¯áá»á¯ááºááá¯ááºáá¬ážáá±á¬ áá¯á¶ážá áœá²áá°áááºážááœáŸááºáá áºáá¯ááŒá áºáááºá
- á¡ááœáá·áºá¡áá±ážáá»á¬áž ááŒáá·áºáá±ááŒááºážá sudo á¡áá¯á¶ážááŒá¯áá°áá áºáŠážá¡á¬áž áá®ážááŒá¬ážáá¯á¶ááŒá¯á¶áá±ážá¡á¯ááºá á¯áá áºáá¯ááá¯á· ááá·áºááœááºážááŒááºážá០áááºážáááºáá¬áááºá
- Linux á áá áºá¡áá»áá¯ážáá»áá¯ážááœááºá configuration á áá áºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááá·áºá¡áá« OS ááá¯áá¯á¶ážááŒááºáááºáá±á¬ááºáááºá á áºáá±ážááŸá¯áá»á¬ážááá¯ááá·áºááœááºážáááºááá¯á¡ááºáá¬áááºá
ááá±á·áá±ááºá¡á
á¯á¶ááẠáá»áááºáááºááŸá¯á¡ááœáẠá¡áá°ážáá®ážááá·áºáá¯ááºáá±á¬ááºáá«áááºá active Directory + ááŒá±á¬áá± á¡ááœáá·áºá¡áá±ážá
á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáẠsudo ááá¯ááŸá±á¬ááºááŸá¯ ssh repository áá
áºáá¯áá²ááŸá áá±á¬á·áá»á¬ážá
ááá¯á·ááŒá±á¬áá·áº áááºážáááẠááááºááááºááŒáááºáááºá
áœá¬ á¡á±ážáá²ááœá¬ážááŒá®áž á
áááºáá¬á áá°á·áá¶áá«ááºáá¯ááºááᯠááŒáŸá±á¬ááºááá¯ááºááŒá®áž áá¶á
á¯á¶áá®ážááá¯ááºážá á¡áááºááá·áºááŒá
áºáá±áá«ááŒá®á
ááœá¬áž
áá±ážáá¬ážáá±á¬:
- Active Directory ááá¯ááááºáž testopf.local Windows Server 2012 R2 ááœááº
- Centos 7 áááºáááºáá±áá±á¬ Linux host
- ááœáá·áºááŒá¯áá»ááºááᯠá¡áá¯á¶ážááŒá¯á ááŒááºáááºáá¬ážáááºá ááŒá±á¬áá±
ááŒá±ááŸááºážáá»ááºááŸá
áºáá¯áá¯á¶ážááẠschema ááᯠááŒá±á¬ááºážáá²á
á±áááºá active Directoryááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠá
ááºážáááºááŸá¯áááºáááºážáá»ááºááœáẠá¡áá¬á¡á¬ážáá¯á¶ážááᯠá
á
áºáá±ážááŒá®ážááŸáᬠá¡áá¯ááºáá¯ááºáá±á¬ á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááᯠá¡ááŒá±á¬ááºážá¡áá²áá¯ááºáá«á ááŒá±á¬ááºážáá²ááŸá¯á¡á¬ážáá¯á¶ážááᯠáá
áºááŸááºáá¬ážááŒá®áž á¡ááŸááºáááẠááá¯á¡ááºáá±á¬ á¡áááºá¡áá»ááºážáá»á¬ážááŸáá·áº á¡áááºážáá»á¬ážááá¯áᬠááá·áºááœááºážáá¬ážááŒá±á¬ááºáž áááááŒá¯á
á±ááá¯áá«áááºá
áá¯ááºáá±á¬ááºáá»áẠ1- ááááºážáá»á¯ááºááŸá¯ sudo á¡áááºážááá¹ááá»á¬ážááŸáááá·áº active Directory.
áááºáááºážáá»á²á·ááœááºááẠactive Directory áá±á¬ááºáá¯á¶ážááœááºááŸáááŸá¯ááᯠáá±á«ááºážáá¯ááºáá¯ááºááẠááá¯á¡ááºáááºá
ldifde -i -f schema.ActiveDirectory -c dc=X dc=testopf,dc=local
(ááá¯áá·áºáááºááá¯ážááœá±ááᯠá¡á
á¬ážááá¯ážááá¯á· ááá±á·áá«áá²á·)
ááœáá·áº adsiedit.msc ááŸáá·áº áá°áááºážá¡ááŒá±á¬ááºážá¡áá¬ááá¯á· áá»áááºáááºáá«-
ááá¯ááááºážá á¡ááŒá
áºááœáẠááá¯ááºážááŒá¬ážááŸá¯áá
áºáá¯ááᯠáááºáá®ážáá«á áá¶áááº. (ááááŸááºáá°áááºážá
á¬ážááẠá€áá¬áááœáẠáááºááá¯ážááŒá
áºáááºáᯠáá±á«ááºážáá¬á
áœá¬ á¡ááá¯ááºá¡áá¬ááá¯áááºá ááŒá±á¬áá± á¡áá¬áá
áºáá¯ááᯠááŸá¬ááœá±áááºá sudoRole á¡áá¬ááá¹áá¯áá»á¬ážá ááá¯á·áá±á¬áºá á¡áá±ážá
ááẠá¡ááŸá¬ážááŸá¬ááŒááºááŒááºážááᯠááœáá·áºááŒá®áž ááŸááºáááºážáá»á¬ážááᯠáá±á·áá¬ááŒá®ážáá±á¬ááºá áááºážááœáŸááºáá
áºáááºáá
áºáá¯áá¯á¶ážááœáẠááŸá¬ááœá±ááŸá¯ááᯠááŒá¯áá¯ááºáá²á·ááŒá±á¬ááºáž áááºááŸá¬ážáá«áááºá)
áá»áœááºá¯ááºááá¯á·ááẠáá¬áááœá²ááŸá class ááŸáá·áºáááºááá¯ááºááá·áº ááááá¯á¶ážá¡áá¬ááá¹áá¯ááᯠáááºáá®ážáááºá sudoRole. á¡áááºááŒá±áá±á¬ áááºáá±áá¶ááŒááºážá¡ááœááºáᬠáá±á¬ááºááœááºáá±ážáá±á¬ááŒá±á¬áá·áº á¡áááºááᯠááá¯ááºáááºá
á®ážáááºáž ááœá±ážáá»ááºááá¯ááºáá«áááºá
schema extension á០áááŸáááá¯ááºáá±á¬ á¡áááºá¡áá»ááºážáá»á¬áž á¡áááºá á¡ááá áá»á¬ážááŸá¬ á¡á±á¬ááºáá« á¡ááá¯ááºáž ááŒá
áºáááºá
- sudoCommand - host ááœáẠáááºááá·áº command áá»á¬ážááᯠáá¯ááºáá±á¬ááºááœáá·áºááŒá¯áááºááᯠáá¯á¶ážááŒááºáááºá
- sudoHost â á€á¡áááºážááá¹áááᯠáááºáá¶áá±á¬ááºááœááºáá±ážááá·áºáá°á¡á¬áž áá¯á¶ážááŒááºáá±ážáááºá á¡ááŒá áºáááºááŸááºááá¯ááºáááºá á¡á¬ážáá¯á¶áž, ááŸáá·áºáá áºáŠážáá»ááºážá á® host ááá¯á¡áááºá¡á¬ážááŒáá·áºá Mask ááá¯áááºáž áá¯á¶ážááá¯á·ááá«áááºá
- sudoUser â áááºááá·áºá¡áá¯á¶ážááŒá¯áá°áá»á¬ážááᯠáá¯ááºáá±á¬ááºááœáá·áºááŒá¯áá¬ážááŒá±á¬ááºáž áá±á¬áºááŒáá«á sudo.
áá¯á¶ááŒá¯á¶áá±ážá¡ááœá²á·ááᯠáááºááŸááºáá«áá á¡áááºáá¡á ááœáẠâ%â ááá¯ááºážáá¯ááºááᯠááá·áºáá«á á¡ááœá²á·á¡áááºááœáẠáá±áá¬ááœááºáá»á¬ážááŸááá»áŸáẠá áááºáá°á áá¬áááŸááá«á áá áºáá¯á¶ážáá»á¬ážááŒáá·áº á¡áá²ááŒááºáá¬ááœáẠáá±áá¬ááœááºáá»á¬ážááᯠááœááºááŒá±á¬ááºááẠáá¬áááºááᯠááá¹ááá¬ážááŒáá·áº ááœáŸá²ááŒá±á¬ááºážáá°áááºá ááŒá±á¬áá±.
áá¯á¶ 1. áááºážááœáŸááºáá¡ááŒá
áºááŸá sudoers ááœá²ááœá²ááŸá sudoRole á¡áá¬ááá¹áá¯áá»á¬áž
áá¯á¶ 2á sudoRole á¡áá¬ááá¹áá¯áá»á¬ážááœáẠáááºááŸááºáá¬ážáá±á¬ áá¯á¶ááŒá¯á¶áá±ážá¡ááœá²á·áá»á¬ážááœáẠá¡ááœá²á·áááºááŒááºáž
á¡á±á¬ááºáá« setup ááᯠLinux áááºááŸá¬ ááŒá®ážáá«ááŒá®á
ááá¯ááºáá²ááŸá¬ /etc/nsswitch.conf ááá¯ááºáá¡áá¯á¶ážááœáẠá
á¬ááŒá±á¬ááºážááá·áºáá«á
sudoers: files sss
ááá¯ááºáá²ááŸá¬ /etc/sssd/sssd.conf á¡ááá¯ááºáž [ssd] áááºáá±á¬ááºááŸá¯áá»á¬ážááá¯á·ááá·áºáá«á sudo
cat /etc/sssd/sssd.conf | grep services
services = nss, pam, sudo
áá¯ááºáá±á¬ááºáá»ááºá¡á¬ážáá¯á¶ážááŒá®ážáá±á¬ááºá áááºááẠsssd daemon cache ááá¯ááŸááºážáááºážáááºááá¯á¡ááºáááºá á¡ááá¯á¡áá»á±á¬áẠá¡ááºááááºáá»á¬ážááẠ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
á€áááºážáááºážááẠááá°áá®áá±á¬á¡áá¯á¶ážááŒá¯áá°á¡á¯ááºá á¯áá»á¬ážá¡ááœáẠsudo á¡áááºážááá¹ááá»á¬ážááᯠáááá¯ááŸáááºááŸááºááá¯ááºá á±áá«áááºá
Active Directory ááœáẠssh áá®ážáá»á¬ážááᯠááááºážáááºážááŒááºážááŸáá·áº á¡áá¯á¶ážááŒá¯ááŒááºážá
á¡á á®á¡á á¥áºááᯠá¡áááºážáááºáá»á²á·ááœááºááŒááºážááŒáá·áºá Active Directory á¡áá¯á¶ážááŒá¯áá° attribute áá»á¬ážááœáẠssh key áá»á¬ážááᯠááááºážáááºážááá¯ááºááŒá®áž Linux hosts áá»á¬ážááᯠááœáá·áºááŒá¯ááá·áºá¡áá« áááºážááá¯á·ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
sssd ááŸáá
áºááá·áº ááœáá·áºááŒá¯áá»ááºááᯠááŒááºáááºáááºááŸááºááá«áááºá
PowerShell script ááá¯á¡áá¯á¶ážááŒá¯á ááá¯á¡ááºáá±á¬ attribute ááá¯ááá·áºáá«á
AddsshPublicKeyAttribute.ps1Function New-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 = New-AttributeID
$attributes = @{
lDAPDisplayName = 'sshPublicKey';
attributeId = $oid;
oMSyntax = 22;
attributeSyntax = "2.5.5.5";
isSingleValued = $true;
adminDescription = 'SSH áááºáá±á¬ááºááŸá¯á¡ááœáẠá¡áá¯á¶ážááŒá¯áá° á¡áá»á¬ážáá°ááŸá¬áá±á¬á·';
}
New-ADObject -Name sshPublicKey -Type attributeSchema -Path $schemapath -OtherAttributes $attributes
$userSchema = get-adobject -SearchBase $schemapath -Filter 'name -eq "user"'
$userSchema | Set-ADObject -Add @{mayContain = 'sshPublicKey'}
á¡áááºá¡áá»ááºážááᯠááá·áºááœááºážááŒá®ážáá±á¬ááºá Active Directory Domain Services ááᯠááŒááºáááºá
áááºááá«áááºá
Active Directory á¡áá¯á¶ážááŒá¯áá°áá»á¬ážáᶠáááºááœá¬ážááŒáá«á
áá¯á·á ááá·áºá¡ááœáẠá¡áááºááŒá±ááá·áº áááºááá·áºáááºážáááºážááá¯áááᯠá¡áá¯á¶ážááŒá¯á ssh áá»áááºáááºááŸá¯á¡ááœáẠáá±á¬á·ááœá²áá
áºá
á¯á¶ááᯠáá¯ááºáá±ážáá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠPuttyGen ááá¯ááœáá·áºáá«á âáá¯ááºáá¯ááºáááºâ ááá¯ááºááá¯ááŸáááºááŒá®áž áá±á¬ááºá
áºááᯠááœááºáá±áá±á¬á§áááá¬á¡ááœááºáž á¡áá°ážá¡áá°ážááœáŸá±á·áá«á
áá¯ááºáááºážá
ááºááŒá®ážáá¯á¶ážáá±á¬á¡áá«á áá»áœááºá¯ááºááá¯á·ááẠá¡áá»á¬ážáá°ááŸá¬ááŸáá·áº áá®ážááá·áºáá±á¬á·áá»á¬ážááᯠááááºážáááºážááá¯ááºááŒá®ážá á¡áá»á¬ážáá°ááŸá¬áá±á¬á·ááᯠActive Directory á¡áá¯á¶ážááŒá¯áá°ááááºááœáŸááºážáá»ááºááá¯á· á¡ááºáá¯ááºáá¯ááºáᬠáá¯ááºáááºážá
ááºááᯠáá¶á
á¬ážááá¯ááºáááºááŒá
áºáááºá ááá¯á·áá±á¬áº á¡áá»á¬ážáá°ááŸá¬ áá±á¬á·ááᯠá¡áá¯á¶ážááŒá¯ááááºâáOpenSSH authorized_keys ááá¯ááºááá¯á· áá°ážááá·áºáááºá¡ááœáẠá¡áá»á¬ážáá°ááŸá¬áá®áž"á
á¡áá¯á¶ážááŒá¯áá° attribute ááœáẠáá±á¬á·ááᯠááá·áºáá«á
ááœá±ážáá»ááºááŸá¯ 1 - GUI-
ááœá±ážáá»ááºááŸá¯ 2 - PowerShell:
get-aduser user1 | set-aduser -add @{sshPublicKey = 'AAAAB...XAVnX9ZRJJ0p/Q=='}
ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááœáẠáá±á¬áá±á¬áááºááœááº- ááŒáá·áºááœááºážáá¬ážáá±á¬ sshPublicKey áááºááœáŸááºážáá»ááºáá«áá±á¬ áá¯á¶ážá
áœá²áá°áá
áºáŠážá áá±á¬á·áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááœáá·áºááŒá¯áá»ááºá¡ááœáẠááŒááºáááºáá¬ážáá±á¬ Putty client áá
áºáá¯ááŸááááºá áá±ážáááºáá±á¬á¡áá»ááºáá
áºáá¯áá»ááºáááº- áá¯á¶ážá
áœá²áá°áá¡áááºá¡áá»ááºážáá»á¬ážááŸáá»áœááºá¯ááºááá¯á·ááá¯á¡ááºáá±á¬á¡áá»á¬ážááŒááºáá°áá±á¬á·ááá¯áá¯ááºáá°ááẠsshd daemon á¡á¬áž áááºááá¯á·ááœááºážá¡á¬ážáá±ážááááºáááºážá áá°ááœá¬á¡ááºáá¬áááºáá±á«áºááœáẠááœá±á·ááŸááááá·áº áá±ážáááºáá±á¬ áá¬ááºááœáŸááºážáá
áºáá¯ááẠáááºážááᯠá¡á±á¬ááºááŒááºá
áœá¬ áááºááá¯ááºááá¯ááºáááºá
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 ááᯠroot á¡ááœááºáá»áœááºá¯ááºááá¯á·áááºááŸááºáá¬ážáááºá
chmod 0500 /usr/local/bin/fetchSSHKeysFromLDAP
á€á¥ááá¬ááœááºá á
á®áá¶ááá·áºááœá²áá°á¡áá±á¬áá·áºááᯠáááºážááœáŸááºááŸáá·áºááœá²áááºááẠá¡áá¯á¶ážááŒá¯áááºá ááá¯ááºááœá²á¡ááŒá±á¡áá±áá»á¬ážááœáẠá¡áááºážáá¯á¶ážá¡ááœáá·áºá¡áá±ážá¡á
á¯á¶áá«áá±á¬ áá®ážááŒá¬ážá¡áá±á¬áá·áºáá
áºáá¯ááŸáááááºá
á¡ááœáá·áºá¡áá±ážáá»á¬ážáááºááŸááºáá¬ážáá±á¬áºáááºáž Script áá²ááœáẠáááºážáá
ááºááŒááºáá±á¬áá¯á¶á
á¶ááŒáá·áº á
áá¬ážááŸááºáá¡ááá¯ááºá¡ááá·áºááᯠáá»áœááºá¯ááºááá¯ááºááá¯ááºááẠááŸá¯ááºááœá±ážáá±áá«áááºá
ááŒá±ááŸááºážáá»ááºááœá±ážá
áá¬
- á
áá¬ážááŸááºááᯠáá®ážááŒá¬ážááá¯ááºááœáẠááááºážáááºážáá«áááº-
echo -n Supersecretpassword > /usr/local/etc/secretpass
- root á¡ááœáẠ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 client ááœáẠáááºááŸááºáá¬ážáá±á¬ áá±á¬á·ááœáá·áºááŒá¯áá»ááºááŒáá·áº á¡á±á¬ááºáá«á¡á á®á¡á á¥áºááᯠáá»áœááºá¯ááºááá¯á· áááŸááááº-
- á¡áá¯á¶ážááŒá¯áá°ááẠáááºážááááºáá±á¬ááºááŸá¯ááᯠááœáŸááºááŒááŒááºážááŒáá·áº áá¬áá¬ááá¯á· áá»áááºáááºáááºá
- sshd daemon ááẠscript áá áºáá¯ááŸáááá·áºá Active Directory ááŸá áá¯á¶ážá áœá²áá° attribute áá áºáá¯á០á¡áá»á¬ážáá°ááŸá¬áá±á¬á·áááºááá¯ážááᯠáá¯ááºáá°ááŒá®áž áá±á¬á·áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááœáá·áºááŒá¯áá»ááºáá¯ááºáá±á¬ááºáááºá
- sssd daemon ááẠá¡ááœá²á·á¡ááœá²á·áááºááŒá áºááŸá¯á¡áá±á«áº á¡ááŒá±áá¶á áá¯á¶ážá áœá²áá°ááᯠá á áºááŸááºááŒá±á¬ááºáž áááºáá¶á¡áááºááŒá¯áááºá ááááá¬áž! áááºážááᯠááŒá¯ááŒááºááœááºážáá¶áá«áá ááá¯ááááºážá¡áá¯á¶ážááŒá¯áá°ááá¯ááºážááẠhost ááá¯á· áááºáá±á¬ááºááœáá·áºááŸááá«áááºá
- sudo áá¯ááºáááºááŒáá¯ážá á¬ážáá±á¬á¡áá«á sssd daemon ááẠá¡áááºážááá¹ááá»á¬ážá¡ááœáẠActive Directory ááá¯ááŸá¬ááœá±áááºá á¡áááºážááá¹ááá»á¬ážááŸááá±áá«áá á¡áá¯á¶ážááŒá¯áá°ááááºááœáŸááºážáá»ááºáá»á¬ážááŸáá·áº á¡ááœá²á·á¡ááœá²á·áááºááŒá áºááŒááºážááᯠá¡ááŸááºááŒá áºáá±ážááẠ(á¡áááºá sudoRoles ááᯠá¡áá¯á¶ážááŒá¯áá°á¡á¯ááºá á¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠááŒááºáááºáááºááŸááºáá¬ážáá«á)
á¡á±á¬ááºááŒá±ááá¯ááºážá
ááá¯á·ááŒá±á¬áá·áºá áá±á¬á·áá»á¬ážááᯠActive Directory á¡áá¯á¶ážááŒá¯áá° attribute áá»á¬ážá sudo ááœáá·áºááŒá¯áá»ááºáá»á¬ážááœáẠááááºážáááºážáá¬ážáá«ááẠ- á¡áá¬ážáá°áááºá domain á¡áá±á¬áá·áºáá»á¬ážá០Linux host áá»á¬ážááá¯á· áááºáá±á¬ááºááœáá·áºááᯠActive Directory á¡á¯ááºá
á¯ááœáẠá¡ááœá²á·áááºááŸá¯ááᯠá
á
áºáá±ážááŒááºážááŒáá·áº áá¯ááºáá±á¬ááºáá«áááºá
á
áááºáá¬á áá¶áá«ááºáá¯ááºá áá±á¬ááºáá¯á¶ážááŸáá¯ááºáž- áááºážáááŒá®ážááẠááá¯áá±á
áœá¬ ááááºááááºá
áœá¬ á¡á±ážáá²ááœá¬ážáááºá
á á¬áá±ážáá¬ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº á¡áááºážá¡ááŒá áºáá»á¬áž
source: www.habr.com