Ko nga toa o nga whakataetae o te ao SSH me sudo kei runga ano i te atamira. Ka arahina e te Kaitohutohu Whaiaronga Whaiaro

I nga wa o mua, i whakahaerehia nga whakaaetanga sudo e nga ihirangi o nga konae mai i /etc/sudoers.d и matapo, me te whakamanatanga matua i mahia ma te whakamahi ~/.ssh/authorized_keys. Heoi, i te tipu haere o nga hanganga, ka puta te hiahia ki te whakahaere i enei tika ki waenganui. I tenei ra he maha nga whiringa otinga:

  • Pūnaha Whakahaere Whirihoranga - Kaitao Kai, Peporo, Ka taea, tote
  • Whaiaronga Active + ssd
  • Nga rereke rereke i te ahua o nga tuhinga me te whakatika i nga konae a-ringa

Ki taku whakaaro ake, ko te whiringa pai mo te whakahaeretanga o te pokapū he huinga tonu Whaiaronga Active + ssd. Ko nga painga o tenei huarahi ko:

  • He tino whaiaronga kaiwhakamahi kotahi.
  • Te tohatoha motika Tuhinga ka heke iho ki te taapiri i tetahi kaiwhakamahi ki tetahi roopu haumarutanga motuhake.
  • Mo nga momo punaha Linux, me whakauru etahi atu tirotiro hei whakatau i te OS i te wa e whakamahi ana i nga punaha whirihoranga.

Ko te huinga o tenei ra ka whakatapua ki te hononga Whaiaronga Active + ssd mo te whakahaere tika Tuhinga me te rokiroki SSH nga taviri i roto i te putunga kotahi.
No reira, ka maroke te whare i roto i te wahangu, ka whakaarahia e te kaiarataki tana patu, ka rite te kaiwaiata.
Tatou haere.

Ka hoatu:
— rohe Active Directory testtopf.local i runga i te Windows Server 2012 R2.
— Ka whakahaerehia e te kaihautu Linux Centos 7
- Whakaaetanga whirihora whakamahi ssd
Ka huri nga otinga e rua ki te aronuinga Whaiaronga Active, no reira ka tirohia e matou nga mea katoa i roto i te taiao whakamatautau katahi ka whakarereke i nga hanganga mahi. E hiahia ana ahau ki te mahara ko nga huringa katoa e whaaia ana, me te mea, ka taapirihia nga huanga me nga karaehe e tika ana.

Mahi 1: mana whakahaere Tuhinga tūranga mā Whaiaronga Active.

Hei whakawhānui i te ara iahiko Whaiaronga Active me tango e koe te tukunga hou Tuhinga — 1.8.27 i tenei ra. Wewetehia ka kape i te konae schema.ActiveDirectory mai i te whaiaronga ./doc ki te kaiwhakahaere rohe. Mai i te raina whakahau me nga mana kaiwhakahaere mai i te raarangi i kapehia te konae, whakahaere:
ldifde -i -f schema.ActiveDirectory -c dc=X dc=testopf,dc=local
(Kaua e wareware ki te whakakapi i o uara)
Tuwhera adsiedit.msc ka hono ki te horopaki taunoa:
Waihangatia he wehenga ki te putake o te rohe Tuhinga o mua. (Ko te bourgeoisie e kii ana kei roto i tenei waahanga te rewera ssd e rapu ana i tetahi mea sudoRole taonga. Heoi, i muri i te hurihanga o te patuiro me te ako i nga raarangi, ka kitea i mahia te rapu puta noa i te rakau raarangi katoa.)
Ka waihangahia e matou te mea tuatahi no te karaehe i te wehenga sudoRole. Ka taea te kowhiri i te ingoa, na te mea he mea tika mo te tautuhi tika.
I roto i nga huanga e waatea ana mai i te toronga aronuinga, ko nga mea nui e whai ake nei:

  • sudoCommand — ka whakatau ko wai nga whakahau ka whakaaetia kia mahia ki te kaihautu.
  • sudoHost — ka whakatau ko wai nga kaihautu e pa ana ki tenei mahi. Ka taea te tohu hei KATOA, mo te kaihautu takitahi ma tona ingoa. Ka taea hoki te whakamahi i te kanohi kanohi.
  • sudoUser — tohu ko wai nga kaiwhakamahi ka whakaaetia kia mahia Tuhinga.
    Mena ka tohua e koe he roopu haumarutanga, taapirihia he tohu "%" ki te timatanga o te ingoa. Mena he waahi kei roto i te ingoa roopu, kaore he mea hei awangawanga. Ki te whakatau i nga rakau, ko te mahi o te mawhiti i nga waahi ka riro ma te miihini ssd.

Ko nga toa o nga whakataetae o te ao SSH me sudo kei runga ano i te atamira. Ka arahina e te Kaitohutohu Whaiaronga Whaiaro
Fig 1. sudoRole ahanoa i roto i te wehenga sudoers i te pakiaka o te whaiaronga

Ko nga toa o nga whakataetae o te ao SSH me sudo kei runga ano i te atamira. Ka arahina e te Kaitohutohu Whaiaronga Whaiaro
Whakaatu 2. Te mema i roto i nga roopu haumaru kua tohua i roto i nga taonga sudoRole.

Ko te tatūnga e whai ake nei ka mahia ki te taha Linux.
I roto i te kōnae /etc/nsswitch.conf tāpirihia te rārangi ki te mutunga o te kōnae:

sudoers: files sss

I roto i te kōnae /etc/sssd/sssd.conf i te wahanga [sssd] tāpiri ki ngā ratonga Tuhinga

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

I muri i nga mahi katoa, me whakakore koe i te keteroki daemon sssd. Ka puta nga whakahou aunoa ia 6 haora, engari he aha me tatari roa ina hiahia ana inaianei?

sss_cache -E

He maha nga wa ka kore e awhina te whakakore i te keteroki. Na ka mutu te ratonga, ka horoi i te paataka korero, ka timata te ratonga.

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

Ka hono matou hei kaiwhakamahi tuatahi ka tirohia nga mea e waatea ana ki a ia i raro i te 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

Ka pena ano ta maatau kaiwhakamahi tuarua:

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

Ma tenei huarahi ka taea e koe te tautuhi i nga mahi sudo mo nga roopu kaiwhakamahi rereke.

Te rokiroki me te whakamahi i nga taviri ssh ki Active Directory

Na te iti o te roha o te kaupapa, ka taea te penapena i nga taviri ssh i roto i nga huanga kaiwhakamahi Active Directory me te whakamahi i te wa e whakamana ana i nga kaihautu Linux.

Me whirihora te whakamanatanga ma te sssd.
Tāpirihia te huanga e hiahiatia ana ma te whakamahi i te tuhinga PowerShell.
AddsshPublicKeyAttribute.ps1Taumahi Hou-HuangaID {
$Prefix="1.2.840.113556.1.8000.2554"
$GUID=[System.Guid]::NewGuid().ToString()
$Wahanga=@()
$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 = (Tikina-ADRootDSE).schemaNamingContext
$oid = Hou-HuangaID
$huanga = @{
lDAPDisplayName = 'sshPublicKey';
attributeId = $oid;
oMSyntax = 22;
attributeSyntax = "2.5.5.5";
isSingleValued = $pono;
adminDescription = 'Kī Tūmatanui Kaiwhakamahi mō te takiuru SSH';
}

New-ADObject -Ingoa sshPublicKey -Momo huangaRauanga -Ara $arohanga -AtahiAhuatanga $huanga
$userSchema = tiki-kaiwhakamahi -SearchBase $schemapath -Tatari 'ingoa -eq "kaiwhakamahi"'
$userSchema | Tautuhi-ADObject -Taapiri @{mayContain = 'sshPublicKey'}

Whai muri i te taapiri i te huanga, me whakaara ano koe i nga Ratonga Rohe Whaiaronga Active.
Me neke atu ki nga kaiwhakamahi Active Directory. Ka whakaputahia e matou he takirua matua mo te hononga ssh ma te whakamahi i tetahi tikanga pai mo koe.
Ka whakarewahia e matou a PuttyGen, ka pehi i te paatene "Hanga" ka nukuhia te kiore ki roto i te waahi kau.
I te otinga o te tukanga, ka taea e matou te tiaki i nga taviri a te iwi me nga taviri tūmataiti, te tuku i te taviri tūmatanui ki te huanga kaiwhakamahi Active Directory me te pai ki te tukanga. Heoi, me whakamahi te kī tūmatanui mai i te "Kī tūmatanui hei whakapiri ki te kōnae OpenSSH authorized_keys:".
Ko nga toa o nga whakataetae o te ao SSH me sudo kei runga ano i te atamira. Ka arahina e te Kaitohutohu Whaiaronga Whaiaro
Tāpirihia te kī ki te huanga kaiwhakamahi.
Kōwhiringa 1 - GUI:
Ko nga toa o nga whakataetae o te ao SSH me sudo kei runga ano i te atamira. Ka arahina e te Kaitohutohu Whaiaronga Whaiaro
Kōwhiringa 2 - PowerShell:
get-aduser user1 | set-aduser -add @{sshPublicKey = 'AAAAB...XAVnX9ZRJJ0p/Q=='}
Na, kei a matou i tenei wa: he kaiwhakamahi kua whakakiia te huanga sshPublicKey, he kaihoko Putty kua whirihorahia mo te whakamana ma te whakamahi i nga taviri. Kei te noho tonu tetahi waahanga iti: me pehea te akiaki i te daemon sshd ki te tango i te kii a te iwi e hiahiatia ana mai i nga huanga o te kaiwhakamahi. Ko tetahi tuhinga iti i kitea i runga i te Ipurangi bourgeois ka taea te whakatutuki angitu.

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'

Ka whakatauhia e matou nga whakaaetanga ki runga ki te 0500 mo te pakiaka.

chmod 0500  /usr/local/bin/fetchSSHKeysFromLDAP

I tenei tauira, ka whakamahia he kaute kaiwhakahaere hei here ki te whaiaronga. I roto i nga tikanga whawhai me noho he putea motuhake me te iti rawa o nga mana.
I tino raruraru ahau i te wa o te kupuhipa i roto i tona ahua parakore i roto i te tuhinga, ahakoa nga mana kua whakaritea.
Kōwhiringa Rongoā:

  • Ka tiakina e ahau te kupuhipa ki tetahi konae motuhake:
    echo -n Supersecretpassword > /usr/local/etc/secretpass

  • I tautuhia e ahau nga whakaaetanga konae ki te 0500 mo te pakiaka
    chmod 0500 /usr/local/etc/secretpass

  • Te huri i nga tawhā whakarewatanga ldapsearch: tawhā -w superSecretPassword Ka huri ahau ki -y /usr/local/etc/secretpass

Ko te waahanga whakamutunga o te huinga o tenei ra ko te whakatika sshd_config

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

Ko te mutunga, ka whiwhi tatou i te raupapa e whai ake nei me te whakamanatanga matua kua whirihorahia ki te kiritaki ssh:

  1. Ka hono te kaiwhakamahi ki te tūmau ma te tohu i tana takiuru.
  2. Ko te daemon sshd, na roto i te tuhinga, ka tango i te uara matua mo te iwi mai i tetahi huanga kaiwhakamahi i roto i te Active Directory me te mahi whakamana ma te whakamahi i nga ki.
  3. Ko te daemon sssd ka whakamotuhēhēhia te kaiwhakamahi i runga i te mema o te roopu. Te aro! Ki te kore tenei i whirihorahia, katahi ka uru tetahi kaiwhakamahi rohe ki te kaihautu.
  4. Ka ngana koe ki te sudo, ka rapu te daemon sssd i te Active Directory mo nga mahi. Mena kei reira nga mahi, ka tirohia nga huanga o te kaiwhakamahi me te mema roopu (mehemea kua whirihorahia te sudoRoles ki te whakamahi i nga roopu kaiwhakamahi)

Ko te hua.

No reira, ka penapena nga taviri i roto i nga huanga kaiwhakamahi Active Directory, whakaaetanga sudo - pera ano, ko te uru ki nga kaihautu Linux ma nga kaute rohe ka mahia ma te tirotiro i te mema ki te roopu Active Directory.
Ko te ngaru whakamutunga o te toka a te kaihautu - ka maroke te whare i te wahangu.

Nga rauemi i whakamahia ki te tuhi:

Sudo mā Active Directory
Ko nga taviri Ssh ma te Active Directory
Hōtuhi Powershell, me te taapiri i tetahi huanga ki te Aronui Whaiaronga Hohe
sudo stable tuku

Source: will.com

Tāpiri i te kōrero