Tha buannaichean nam farpaisean eadar-nàiseanta SSH agus sudo air an àrd-ùrlar a-rithist. Air a stiùireadh le Neach-stiùiridh cliùiteach Active Directory

Gu h-eachdraidheil, bha ceadan sudo air an riaghladh le susbaint nam faidhlichean bho /etc/sudoers.d и visudo, agus chaidh prìomh ùghdarrachadh a dhèanamh a’ cleachdadh ~/.ssh/authorized_keys. Ach, mar a bhios bun-structar a’ fàs, tha miann ann na còraichean sin a riaghladh sa mheadhan. An-diugh faodaidh grunn roghainnean fuasgladh a bhith ann:

  • Siostam riaghlaidh rèiteachaidh - ceann, Pupaid, Freagair, Salt
  • Active Directory + ssd
  • Diofar sheilbh ann an cruth sgriobtaichean agus deasachadh faidhle làimhe

Nam bheachd-sa, tha an roghainn as fheàrr airson riaghladh meadhanaichte fhathast na mheasgachadh Active Directory + ssd. Is e buannachdan an dòigh-obrach seo:

  • Dìreach aon eòlaire cleachdaiche meadhanaichte.
  • Sgaoileadh chòraichean sudo a’ tighinn sìos gu bhith a’ cur cleachdaiche ri buidheann tèarainteachd sònraichte.
  • A thaobh diofar shiostaman Linux, bidh feum air sgrùdaidhean a bharrachd a thoirt a-steach gus an OS a dhearbhadh nuair a bhios tu a’ cleachdadh siostaman rèiteachaidh.

Bidh sreath an latha an-diugh air a choisrigeadh gu sònraichte don cheangal Active Directory + ssd airson riaghladh chòraichean sudo agus stòradh ssh iuchraichean ann an aon stòr.
Mar sin, reòthadh an talla ann an sàmhchair, thog an stiùiriche am batan aige, agus dh’ ullaich an orcastra.
Rachamaid.

Leis:
- àrainn Active Directory testopf.local air Windows Server 2012 R2.
- Neach-aoigheachd Linux a’ ruith Centos 7
- Ùghdarrachadh rèiteachaidh a’ cleachdadh ssd
Bidh an dà fhuasgladh a’ dèanamh atharrachaidhean air an sgeama Active Directory, mar sin nì sinn sgrùdadh air a h-uile càil ann an àrainneachd deuchainn agus dìreach an uairsin nì sinn atharrachaidhean air a’ bhun-structar obrach. Bu mhath leam a thoirt fa-near gu bheil na h-atharrachaidhean uile air an cuimseachadh agus, gu dearbh, na cuir a-steach ach na buadhan agus na clasaichean riatanach.

Gnìomh 1: smachd sudo dreuchdan troimhe Active Directory.

Gus an cuairteachadh a leudachadh Active Directory feumaidh tu an tionndadh as ùire a luchdachadh sìos sudo -1.8.27 airson an-diugh. Unpack agus dèan lethbhreac den fhaidhle sgeama.ActiveDirectory bhon eòlaire ./doc gu rianadair an àrainn. Bhon loidhne-àithne le còraichean rianaire bhon eòlaire far an deach am faidhle a chopaigeadh, ruith:
ldifde -i -f schema.ActiveDirectory -c dc=X dc=testopf,dc=local
(Na dìochuimhnich na luachan agad a chuir nan àite)
Fosgailte adsiedit.msc agus ceangail ris a’ cho-theacs bunaiteach:
Cruthaich sgaradh aig cridhe na h-àrainn sudoirean. (Tha am bourgeoisie gu daingeann ag agairt gur ann san aonad seo a tha an deamhan ssd a’ lorg nì sudoRole nithean. Ach, às deidh dha debugging mionaideach a thionndadh agus sgrùdadh a dhèanamh air na logaichean, chaidh innse gun deach an sgrùdadh a dhèanamh air feadh na craoibhe eòlaire gu lèir.)
Bidh sinn a’ cruthachadh a’ chiad nì a bhuineas don chlas anns an roinn sudoRole. Faodar an t-ainm a thaghadh gu tur neo-riaghailteach, leis gu bheil e a’ frithealadh a-mhàin airson comharrachadh goireasach.
Am measg nam feartan a dh’ fhaodadh a bhith rim faighinn bhon leudachadh sgeama, tha na prìomh fheadhainn a leanas:

  • sudoCommand - a’ dearbhadh dè na h-òrdughan a tha ceadaichte a chur an gnìomh air an òstair.
  • sudoHost - a’ dearbhadh cò ris a tha an dreuchd seo a’ buntainn. Faodar a shònrachadh mar A H-UILE, agus airson aoigh fa leth a rèir ainm. Tha e comasach cuideachd masg a chleachdadh.
  • sudoUser - comharraich cò na cleachdaichean a tha ceadaichte a chur an gnìomh sudo.
    Ma shònraicheas tu buidheann tèarainteachd, cuir soidhne “%” aig toiseach an ainm. Ma tha beàrnan ann an ainm a’ chuantail, chan eil dragh sam bith ort. A’ breithneachadh leis na logaichean, tha an obair teicheadh ​​​​bho àiteachan air a ghabhail thairis leis an uidheamachd ssd.

Tha buannaichean nam farpaisean eadar-nàiseanta SSH agus sudo air an àrd-ùrlar a-rithist. Air a stiùireadh le Neach-stiùiridh cliùiteach Active Directory
Fig 1. sudoRole nithean anns an fho-roinn sudoers ann am freumh an eòlaire

Tha buannaichean nam farpaisean eadar-nàiseanta SSH agus sudo air an àrd-ùrlar a-rithist. Air a stiùireadh le Neach-stiùiridh cliùiteach Active Directory
Figear 2. Ballrachd ann am buidhnean tèarainteachd air a shònrachadh ann an sudoRole nithean.

Tha an suidheachadh a leanas air a dhèanamh air taobh Linux.
Ann am faidhle /etc/nsswitch.conf cuir an loidhne gu deireadh an fhaidhle:

sudoers: files sss

Ann am faidhle /etc/sssd/sssd.conf ann an earrann [ssd] cur ri seirbheisean sudo

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

Às deidh a h-uile gnìomh, feumaidh tu an tasgadan daemon sssd a ghlanadh. Bidh ùrachaidhean fèin-ghluasadach a’ tachairt a h-uile 6 uairean, ach carson a bu chòir dhuinn feitheamh cho fada nuair a tha sinn ga iarraidh a-nis?

sss_cache -E

Bidh e tric a’ tachairt nach cuidich glanadh an tasgadan. An uairsin bidh sinn a 'stad an t-seirbheis, a' glanadh an stòr-dàta, agus a 'tòiseachadh air an t-seirbheis.

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

Bidh sinn a’ ceangal mar a’ chiad neach-cleachdaidh agus thoir sùil air na tha ri fhaighinn dha fo 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

Bidh sinn a’ dèanamh an aon rud leis an dàrna neach-cleachdaidh againn:

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

Leigidh an dòigh-obrach seo leat dreuchdan sudo a mhìneachadh sa mheadhan airson diofar bhuidhnean luchd-cleachdaidh.

A’ stòradh agus a’ cleachdadh iuchraichean ssh ann an Active Directory

Le leudachadh beag air an sgeama, tha e comasach iuchraichean ssh a stòradh ann am buadhan cleachdaiche Active Directory agus an cleachdadh nuair a bhios iad a’ ceadachadh air Linux hosts.

Feumar cead tro sssd a rèiteachadh.
Cuir ris a’ fheart a tha a dhìth a’ cleachdadh sgriobt PowerShell.
AddsshPublicKeyAttribute.ps1Gnìomh 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 = ID feart ùr
$attributes = @{
lDAPDisplayName = 'sshPublicKey';
attributeId = $oid;
oMSyntax = 22;
attributeSyntax = "2.5.5.5";
isSingleValued = $true;
adminDescription = 'Iuchair phoblach a' chleachdaiche airson logadh a-steach SSH';
}

New-ADObject -Ainm sshPublicKey -Type attributeSchema -Path $schemapath -OtherAttributes $attributes
$userSchema = faigh-adobject -SearchBase $schemapath -Filter 'name -eq "user"'
$userSchema | Set-ADObject -Add @{mayContain = 'sshPublicKey'}

Às deidh dhut am feart a chuir ris, feumaidh tu Seirbheisean Domain Active Directory ath-thòiseachadh.
Nach gluais sinn air adhart gu luchd-cleachdaidh Active Directory. Ginidh sinn prìomh phaidhir airson ceangal ssh a’ cleachdadh dòigh sam bith a tha iomchaidh dhut.
Bidh sinn a’ cur PuttyGen air bhog, brùth air a’ phutan “Generate” agus gluais an luchag gu fiadhaich taobh a-staigh an àite falamh.
Nuair a bhios am pròiseas deiseil, is urrainn dhuinn na h-iuchraichean poblach is prìobhaideach a shàbhaladh, an iuchair phoblach a luchdachadh suas gu feart cleachdaiche Active Directory agus am pròiseas a mhealtainn. Ach, feumar an iuchair phoblach a chleachdadh bhon "Iuchair phoblach airson a chuir a-steach don fhaidhle ùghdarraichte_keys OpenSSH:".
Tha buannaichean nam farpaisean eadar-nàiseanta SSH agus sudo air an àrd-ùrlar a-rithist. Air a stiùireadh le Neach-stiùiridh cliùiteach Active Directory
Cuir an iuchair ris a 'ghnè cleachdaiche.
Roghainn 1 - GUI:
Tha buannaichean nam farpaisean eadar-nàiseanta SSH agus sudo air an àrd-ùrlar a-rithist. Air a stiùireadh le Neach-stiùiridh cliùiteach Active Directory
Roghainn 2 - PowerShell:
get-aduser user1 | set-aduser -add @{sshPublicKey = 'AAAAB...XAVnX9ZRJJ0p/Q=='}
Mar sin, tha againn an-dràsta: neach-cleachdaidh leis a’ bhuadh sshPublicKey air a lìonadh a-steach, neach-dèiligidh Putty air a rèiteachadh airson cead a’ cleachdadh iuchraichean. Tha aon phuing bheag ann fhathast: mar a bheir thu air an deamhan sshd an iuchair phoblach a tha a dhìth oirnn a thoirt a-mach à feartan an neach-cleachdaidh. Faodaidh sgriobt beag a lorgar air an eadar-lìn bourgeois dèiligeadh gu soirbheachail ri seo.

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'

Shuidhich sinn na ceadan air gu 0500 airson root.

chmod 0500  /usr/local/bin/fetchSSHKeysFromLDAP

San eisimpleir seo, thathas a’ cleachdadh cunntas rianaire gus ceangal ris an eòlaire. Ann an suidheachaidhean sabaid feumaidh cunntas air leth a bhith ann le seata chòraichean as ìsle.
Gu pearsanta bha mi gu math troimh-a-chèile leis a’ mhionaid a bha am facal-faire anns an fhìor chruth aige san sgriobt, a dh’ aindeoin na còraichean a chaidh a shuidheachadh.
Roghainn fuasglaidh:

  • Sàbhail mi am facal-faire ann am faidhle air leth:
    echo -n Supersecretpassword > /usr/local/etc/secretpass

  • Shuidhich mi ceadan faidhle gu 0500 airson root
    chmod 0500 /usr/local/etc/secretpass

  • Ag atharrachadh paramadairean cur air bhog ldapsearch: paramadair -w superSecretPassword Bidh mi ga atharrachadh gu -y /usr/local/etc/secretpass

Tha an corda mu dheireadh ann an sreath an latha an-diugh a’ deasachadh sshd_config

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

Mar thoradh air an sin, gheibh sinn an t-sreath a leanas le prìomh ùghdarras air a rèiteachadh anns a’ chleachdaiche ssh:

  1. Bidh an neach-cleachdaidh a 'ceangal ris an fhrithealaiche le bhith a' comharrachadh an logadh a-steach aige.
  2. Bidh an daemon sshd, tro sgriobt, a’ toirt a-mach luach na h-iuchrach poblach bho fheart cleachdaiche ann an Active Directory agus a’ coileanadh ùghdarras a’ cleachdadh na h-iuchraichean.
  3. Bidh an daemon sssd a’ dearbhadh tuilleadh an neach-cleachdaidh stèidhichte air ballrachd buidhne. Thoir an aire! Mura h-eil seo air a rèiteachadh, bidh cothrom aig neach-cleachdaidh fearainn sam bith air an òstair.
  4. Nuair a dh'fheuchas tu ri sudo, bidh an daemon sssd a' rannsachadh an Active Directory airson dreuchdan. Ma tha dreuchdan an làthair, thèid buadhan an neach-cleachdaidh agus ballrachd buidhne a sgrùdadh (ma tha sudoRoles air a rèiteachadh gus buidhnean luchd-cleachdaidh a chleachdadh)

An toradh.

Mar sin, tha na h-iuchraichean air an stòradh ann am buadhan cleachdaiche Active Directory, ceadan sudo - mar an ceudna, thèid ruigsinneachd gu luchd-aoigheachd Linux le cunntasan fearainn a dhèanamh le bhith a’ sgrùdadh ballrachd sa bhuidheann Active Directory.
An tonn mu dheireadh de bhata an stiùiriche - agus an talla a 'reothadh ann an sàmhchair urramach.

Goireasan air an cleachdadh ann an sgrìobhadh:

Sudo tro Active Directory
Iuchraichean Ssh tro Active Directory
Sgriobt Powershell, a’ cur feart ri sgeama Active Directory
sgaoileadh sudo seasmhach

Source: www.habr.com

Cuir beachd ann