ಅಂತರಾಷ್ಟ್ರೀಯ ಸ್ಪರ್ಧೆಗಳಾದ SSH ಮತ್ತು sudo ವಿಜೇತರು ಮತ್ತೆ ವೇದಿಕೆಯಲ್ಲಿದ್ದಾರೆ. ಡಿಸ್ಟಿಂಗ್ವಿಶ್ಡ್ ಆಕ್ಟಿವ್ ಡೈರೆಕ್ಟರಿ ಕಂಡಕ್ಟರ್ ನೇತೃತ್ವದಲ್ಲಿ

ಐತಿಹಾಸಿಕವಾಗಿ, ಸುಡೋ ಅನುಮತಿಗಳನ್ನು ಫೈಲ್‌ಗಳ ವಿಷಯಗಳಿಂದ ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ /etc/sudoers.d и ವಿಸುಡೋ, ಮತ್ತು ಪ್ರಮುಖ ಅಧಿಕಾರವನ್ನು ಬಳಸಿಕೊಂಡು ಕೈಗೊಳ್ಳಲಾಯಿತು ~/.ssh/authorized_keys. ಆದಾಗ್ಯೂ, ಮೂಲಸೌಕರ್ಯಗಳು ಬೆಳೆದಂತೆ, ಈ ಹಕ್ಕುಗಳನ್ನು ಕೇಂದ್ರವಾಗಿ ನಿರ್ವಹಿಸುವ ಬಯಕೆ ಇದೆ. ಇಂದು ಹಲವಾರು ಪರಿಹಾರ ಆಯ್ಕೆಗಳು ಇರಬಹುದು:

  • ಸಂರಚನಾ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆ - ತಲೆ, ಬೊಂಬೆ, ಅನುಕಂಪ, ಉಪ್ಪು
  • ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ + ssd
  • ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಮತ್ತು ಹಸ್ತಚಾಲಿತ ಫೈಲ್ ಎಡಿಟಿಂಗ್ ರೂಪದಲ್ಲಿ ವಿವಿಧ ವಿಕೃತಿಗಳು

ನನ್ನ ವ್ಯಕ್ತಿನಿಷ್ಠ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಕೇಂದ್ರೀಕೃತ ನಿರ್ವಹಣೆಗೆ ಉತ್ತಮ ಆಯ್ಕೆಯು ಇನ್ನೂ ಸಂಯೋಜನೆಯಾಗಿದೆ ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ + ssd. ಈ ವಿಧಾನದ ಅನುಕೂಲಗಳು:

  • ನಿಜವಾಗಿಯೂ ಒಂದೇ ಕೇಂದ್ರೀಕೃತ ಬಳಕೆದಾರ ಡೈರೆಕ್ಟರಿ.
  • ಹಕ್ಕುಗಳ ವಿತರಣೆ ಸುಡೊ ನಿರ್ದಿಷ್ಟ ಭದ್ರತಾ ಗುಂಪಿಗೆ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಲು ಬರುತ್ತದೆ.
  • ವಿವಿಧ ಲಿನಕ್ಸ್ ಸಿಸ್ಟಮ್‌ಗಳ ಸಂದರ್ಭದಲ್ಲಿ, ಕಾನ್ಫಿಗರೇಶನ್ ಸಿಸ್ಟಮ್‌ಗಳನ್ನು ಬಳಸುವಾಗ ಓಎಸ್ ಅನ್ನು ನಿರ್ಧರಿಸಲು ಹೆಚ್ಚುವರಿ ಚೆಕ್‌ಗಳನ್ನು ಪರಿಚಯಿಸುವುದು ಅಗತ್ಯವಾಗಿರುತ್ತದೆ.

ಇಂದಿನ ಸೂಟ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟವಾಗಿ ಸಂಪರ್ಕಕ್ಕೆ ಮೀಸಲಿಡಲಾಗುತ್ತದೆ ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ + ssd ಹಕ್ಕುಗಳ ನಿರ್ವಹಣೆಗಾಗಿ ಸುಡೊ ಮತ್ತು ಸಂಗ್ರಹಣೆ ssh ಒಂದೇ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಕೀಗಳು.
ಆದ್ದರಿಂದ, ಸಭಾಂಗಣವು ಉದ್ವಿಗ್ನ ಮೌನದಲ್ಲಿ ಹೆಪ್ಪುಗಟ್ಟಿತು, ಕಂಡಕ್ಟರ್ ಲಾಠಿ ಎತ್ತಿದರು ಮತ್ತು ಆರ್ಕೆಸ್ಟ್ರಾ ಸಿದ್ಧವಾಯಿತು.
ಹೋಗಿ.

ನೀಡಿದ:
- ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಡೊಮೇನ್ testopf.ಸ್ಥಳೀಯ ವಿಂಡೋಸ್ ಸರ್ವರ್ 2012 R2 ನಲ್ಲಿ.
- ಲಿನಕ್ಸ್ ಹೋಸ್ಟ್ ಸೆಂಟೋಸ್ 7 ರನ್ನಿಂಗ್
- ಬಳಸಿಕೊಂಡು ದೃಢೀಕರಣವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ ssd
ಎರಡೂ ಪರಿಹಾರಗಳು ಸ್ಕೀಮಾಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುತ್ತವೆ ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ, ಆದ್ದರಿಂದ ನಾವು ಪರೀಕ್ಷಾ ಪರಿಸರದಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ಪರಿಶೀಲಿಸುತ್ತೇವೆ ಮತ್ತು ನಂತರ ಕೆಲಸ ಮಾಡುವ ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುತ್ತೇವೆ. ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳನ್ನು ಗುರಿಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ವಾಸ್ತವವಾಗಿ, ಅಗತ್ಯ ಗುಣಲಕ್ಷಣಗಳು ಮತ್ತು ತರಗತಿಗಳನ್ನು ಮಾತ್ರ ಸೇರಿಸಿ ಎಂದು ನಾನು ಗಮನಿಸಲು ಬಯಸುತ್ತೇನೆ.

ಕ್ರಿಯೆ 1: ನಿಯಂತ್ರಣ ಸುಡೊ ಮೂಲಕ ಪಾತ್ರಗಳು ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ.

ಸರ್ಕ್ಯೂಟ್ ವಿಸ್ತರಿಸಲು ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ನೀವು ಇತ್ತೀಚಿನ ಬಿಡುಗಡೆಯನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ ಸುಡೊ - 1.8.27 ಇಂದಿನಂತೆ. ಫೈಲ್ ಅನ್ನು ಅನ್ಪ್ಯಾಕ್ ಮಾಡಿ ಮತ್ತು ನಕಲಿಸಿ ಸ್ಕೀಮಾ.ಆಕ್ಟಿವ್ ಡೈರೆಕ್ಟರಿ ./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

ಎಲ್ಲಾ ಕಾರ್ಯಾಚರಣೆಗಳ ನಂತರ, ನೀವು 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 ಕೀಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಮತ್ತು Linux ಹೋಸ್ಟ್‌ಗಳಲ್ಲಿ ದೃಢೀಕರಿಸುವಾಗ ಅವುಗಳನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಿದೆ.

sssd ಮೂಲಕ ಅಧಿಕಾರವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕು.
PowerShell ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಅಗತ್ಯವಿರುವ ಗುಣಲಕ್ಷಣವನ್ನು ಸೇರಿಸಿ.
AddsshPublicKeyAttribute.ps1ಕಾರ್ಯ ಹೊಸ-ಗುಣಲಕ್ಷಣ ID {
$Prefix="1.2.840.113556.1.8000.2554"
$GUID=[System.Guid]::NewGuid().ToString()
$ಭಾಗಗಳು=@()
$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 = ಹೊಸ-ಗುಣಲಕ್ಷಣ ಐಡಿ
$ಗುಣಲಕ್ಷಣಗಳು = @{
lDAPDisplayName = 'sshPublicKey';
attributeId = $oid;
oMSyntax = 22;
attributeSyntax = "2.5.5.5";
isSingleValued = $true;
adminDescription = 'SSH ಲಾಗಿನ್‌ಗಾಗಿ ಬಳಕೆದಾರ ಸಾರ್ವಜನಿಕ ಕೀಲಿ';
}

ಹೊಸ-ADObject -ಹೆಸರು sshPublicKey -ಟೈಪ್ ಗುಣಲಕ್ಷಣ ಯೋಜನೆ -ಮಾರ್ಗ $schemapath -ಇತರ ಗುಣಲಕ್ಷಣಗಳು $ಗುಣಲಕ್ಷಣಗಳು
$userSchema = get-adobject -SearchBase $schemapath -ಫಿಲ್ಟರ್ 'ಹೆಸರು -eq "ಬಳಕೆದಾರ"'
$userSchema | ಸೆಟ್-ADObject -Add @{mayContain = 'sshPublicKey'}

ಗುಣಲಕ್ಷಣವನ್ನು ಸೇರಿಸಿದ ನಂತರ, ನೀವು ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಡೊಮೇನ್ ಸೇವೆಗಳನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು.
ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಬಳಕೆದಾರರಿಗೆ ಹೋಗೋಣ. ನಿಮಗೆ ಅನುಕೂಲಕರವಾದ ಯಾವುದೇ ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು ನಾವು ssh ಸಂಪರ್ಕಕ್ಕಾಗಿ ಕೀ ಜೋಡಿಯನ್ನು ರಚಿಸುತ್ತೇವೆ.
ನಾವು PuttyGen ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ, "ರಚಿಸಿ" ಗುಂಡಿಯನ್ನು ಒತ್ತಿ ಮತ್ತು ಖಾಲಿ ಪ್ರದೇಶದೊಳಗೆ ಮೌಸ್ ಅನ್ನು ಉದ್ರಿಕ್ತವಾಗಿ ಸರಿಸಿ.
ಪ್ರಕ್ರಿಯೆಯು ಪೂರ್ಣಗೊಂಡ ನಂತರ, ನಾವು ಸಾರ್ವಜನಿಕ ಮತ್ತು ಖಾಸಗಿ ಕೀಗಳನ್ನು ಉಳಿಸಬಹುದು, ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಬಳಕೆದಾರ ಗುಣಲಕ್ಷಣಕ್ಕೆ ಸಾರ್ವಜನಿಕ ಕೀಲಿಯನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಬಹುದು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯನ್ನು ಆನಂದಿಸಬಹುದು. ಆದಾಗ್ಯೂ, ಸಾರ್ವಜನಿಕ ಕೀಲಿಯನ್ನು "ನಿಂದ ಬಳಸಬೇಕುOpenSSH authorized_keys ಫೈಲ್‌ಗೆ ಅಂಟಿಸಲು ಸಾರ್ವಜನಿಕ ಕೀ:".
ಅಂತರಾಷ್ಟ್ರೀಯ ಸ್ಪರ್ಧೆಗಳಾದ SSH ಮತ್ತು sudo ವಿಜೇತರು ಮತ್ತೆ ವೇದಿಕೆಯಲ್ಲಿದ್ದಾರೆ. ಡಿಸ್ಟಿಂಗ್ವಿಶ್ಡ್ ಆಕ್ಟಿವ್ ಡೈರೆಕ್ಟರಿ ಕಂಡಕ್ಟರ್ ನೇತೃತ್ವದಲ್ಲಿ
ಬಳಕೆದಾರರ ಗುಣಲಕ್ಷಣಕ್ಕೆ ಕೀಲಿಯನ್ನು ಸೇರಿಸಿ.
ಆಯ್ಕೆ 1 - GUI:
ಅಂತರಾಷ್ಟ್ರೀಯ ಸ್ಪರ್ಧೆಗಳಾದ SSH ಮತ್ತು sudo ವಿಜೇತರು ಮತ್ತೆ ವೇದಿಕೆಯಲ್ಲಿದ್ದಾರೆ. ಡಿಸ್ಟಿಂಗ್ವಿಶ್ಡ್ ಆಕ್ಟಿವ್ ಡೈರೆಕ್ಟರಿ ಕಂಡಕ್ಟರ್ ನೇತೃತ್ವದಲ್ಲಿ
ಆಯ್ಕೆ 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 ಸೂಪರ್ ಸೀಕ್ರೆಟ್ ಪಾಸ್ವರ್ಡ್ ನಾನು ಅದನ್ನು ಬದಲಾಯಿಸುತ್ತೇನೆ -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 ಡೀಮನ್ ಪಾತ್ರಗಳಿಗಾಗಿ ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹುಡುಕುತ್ತದೆ. ಪಾತ್ರಗಳು ಇದ್ದಲ್ಲಿ, ಬಳಕೆದಾರರ ಗುಣಲಕ್ಷಣಗಳು ಮತ್ತು ಗುಂಪು ಸದಸ್ಯತ್ವವನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ (ಸೂಡೋರೋಲ್ಸ್ ಬಳಕೆದಾರ ಗುಂಪುಗಳನ್ನು ಬಳಸಲು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ್ದರೆ)

ಫಲಿತಾಂಶ.

ಹೀಗಾಗಿ, ಕೀಗಳನ್ನು ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಬಳಕೆದಾರರ ಗುಣಲಕ್ಷಣಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, ಸುಡೋ ಅನುಮತಿಗಳು - ಅದೇ ರೀತಿ, ಡೊಮೇನ್ ಖಾತೆಗಳ ಮೂಲಕ ಲಿನಕ್ಸ್ ಹೋಸ್ಟ್‌ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಗುಂಪಿನಲ್ಲಿ ಸದಸ್ಯತ್ವವನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಕೈಗೊಳ್ಳಲಾಗುತ್ತದೆ.
ಕಂಡಕ್ಟರ್ ಲಾಠಿಯ ಅಂತಿಮ ತರಂಗ - ಮತ್ತು ಸಭಾಂಗಣವು ಪೂಜ್ಯ ಮೌನದಲ್ಲಿ ಹೆಪ್ಪುಗಟ್ಟುತ್ತದೆ.

ಬರವಣಿಗೆಯಲ್ಲಿ ಬಳಸಲಾದ ಸಂಪನ್ಮೂಲಗಳು:

ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಮೂಲಕ ಸುಡೋ
ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಮೂಲಕ Ssh ಕೀಗಳು
ಪವರ್‌ಶೆಲ್ ಸ್ಕ್ರಿಪ್ಟ್, ಸಕ್ರಿಯ ಡೈರೆಕ್ಟರಿ ಸ್ಕೀಮಾಗೆ ಗುಣಲಕ್ಷಣವನ್ನು ಸೇರಿಸುತ್ತದೆ
sudo ಸ್ಥಿರ ಬಿಡುಗಡೆ

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ