ಈ ಪೋಸ್ಟ್ನಲ್ಲಿ, ಆಫ್ಲೈನ್ನಲ್ಲಿ ಹಾರ್ಡ್ವೇರ್ ಭದ್ರತಾ ಕೀಗಳನ್ನು ಬಳಸಿಕೊಂಡು SSH ಹೋಸ್ಟ್ಗಳಿಗೆ ತುರ್ತು ಪ್ರವೇಶಕ್ಕಾಗಿ ನಾವು ಕಾರ್ಯವಿಧಾನವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತೇವೆ. ಇದು ಕೇವಲ ಒಂದು ವಿಧಾನವಾಗಿದೆ ಮತ್ತು ನಿಮ್ಮ ಅಗತ್ಯಗಳಿಗೆ ಸರಿಹೊಂದುವಂತೆ ನೀವು ಅದನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಬಹುದು. ಹಾರ್ಡ್ವೇರ್ ಭದ್ರತಾ ಕೀಲಿಯಲ್ಲಿ ನಮ್ಮ ಹೋಸ್ಟ್ಗಳಿಗಾಗಿ ನಾವು SSH ಪ್ರಮಾಣಪತ್ರ ಅಧಿಕಾರವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತೇವೆ. ಒಂದೇ ಸೈನ್-ಆನ್ನೊಂದಿಗೆ SSH ಸೇರಿದಂತೆ ಯಾವುದೇ OpenSSH ನಲ್ಲಿ ಈ ಯೋಜನೆಯು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.
ಇದೆಲ್ಲ ಯಾವುದಕ್ಕಾಗಿ? ಸರಿ, ಇದು ಕೊನೆಯ ಉಪಾಯದ ಆಯ್ಕೆಯಾಗಿದೆ. ಇದು ಬ್ಯಾಕ್ಡೋರ್ ಆಗಿದ್ದು, ಕೆಲವು ಕಾರಣಗಳಿಂದಾಗಿ ಬೇರೆ ಯಾವುದೂ ಕಾರ್ಯನಿರ್ವಹಿಸದಿದ್ದಾಗ ನಿಮ್ಮ ಸರ್ವರ್ಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
ತುರ್ತು ಪ್ರವೇಶಕ್ಕಾಗಿ ಸಾರ್ವಜನಿಕ/ಖಾಸಗಿ ಕೀಗಳ ಬದಲಿಗೆ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಏಕೆ ಬಳಸಬೇಕು?
- ಸಾರ್ವಜನಿಕ ಕೀಲಿಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ, ಪ್ರಮಾಣಪತ್ರಗಳು ಬಹಳ ಕಡಿಮೆ ಜೀವಿತಾವಧಿಯನ್ನು ಹೊಂದಿರುತ್ತವೆ. ನೀವು 1 ನಿಮಿಷ ಅಥವಾ 5 ಸೆಕೆಂಡುಗಳವರೆಗೆ ಮಾನ್ಯವಾಗಿರುವ ಪ್ರಮಾಣಪತ್ರವನ್ನು ರಚಿಸಬಹುದು. ಈ ಅವಧಿಯ ನಂತರ, ಪ್ರಮಾಣಪತ್ರವು ಹೊಸ ಸಂಪರ್ಕಗಳಿಗೆ ನಿಷ್ಪ್ರಯೋಜಕವಾಗುತ್ತದೆ. ತುರ್ತು ಪ್ರವೇಶಕ್ಕೆ ಇದು ಸೂಕ್ತವಾಗಿದೆ.
- ನಿಮ್ಮ ಹೋಸ್ಟ್ಗಳಲ್ಲಿ ಯಾವುದೇ ಖಾತೆಗಾಗಿ ನೀವು ಪ್ರಮಾಣಪತ್ರವನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಅಗತ್ಯವಿದ್ದರೆ, ಅಂತಹ "ಒಂದು-ಬಾರಿ" ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಸಹೋದ್ಯೋಗಿಗಳಿಗೆ ಕಳುಹಿಸಬಹುದು.
ನಿಮಗೆ ಏನು ಬೇಕು
- ರೆಸಿಡೆಂಟ್ ಕೀಗಳನ್ನು ಬೆಂಬಲಿಸುವ ಹಾರ್ಡ್ವೇರ್ ಭದ್ರತಾ ಕೀಗಳು.
ರೆಸಿಡೆಂಟ್ ಕೀಗಳು ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಕೀಗಳಾಗಿವೆ, ಅವುಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಭದ್ರತಾ ಕೀಲಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಕೆಲವೊಮ್ಮೆ ಅವುಗಳನ್ನು ಆಲ್ಫಾನ್ಯೂಮರಿಕ್ ಪಿನ್ನಿಂದ ರಕ್ಷಿಸಲಾಗುತ್ತದೆ. ಖಾಸಗಿ ಕೀ ಹ್ಯಾಂಡಲ್ ಜೊತೆಗೆ ಐಚ್ಛಿಕವಾಗಿ ಭದ್ರತಾ ಕೀಯಿಂದ ರೆಸಿಡೆಂಟ್ ಕೀಯ ಸಾರ್ವಜನಿಕ ಭಾಗವನ್ನು ರಫ್ತು ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, Yubikey 5 ಸರಣಿಯ USB ಕೀಗಳು ರೆಸಿಡೆಂಟ್ ಕೀಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ. ಅವುಗಳು ಹೋಸ್ಟ್ಗೆ ತುರ್ತು ಪ್ರವೇಶಕ್ಕಾಗಿ ಮಾತ್ರ ಉದ್ದೇಶಿಸಲಾಗಿದೆ ಎಂದು ಸಲಹೆ ನೀಡಲಾಗುತ್ತದೆ. ಈ ಪೋಸ್ಟ್ಗಾಗಿ ನಾನು ಒಂದು ಕೀಲಿಯನ್ನು ಮಾತ್ರ ಬಳಸುತ್ತೇನೆ, ಆದರೆ ಬ್ಯಾಕಪ್ಗಾಗಿ ನೀವು ಹೆಚ್ಚುವರಿ ಒಂದನ್ನು ಹೊಂದಿರಬೇಕು. - ಆ ಕೀಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಸುರಕ್ಷಿತ ಸ್ಥಳ.
- ನಿಮ್ಮ ಸ್ಥಳೀಯ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಮತ್ತು ನೀವು ತುರ್ತು ಪ್ರವೇಶವನ್ನು ಹೊಂದಲು ಬಯಸುವ ಸರ್ವರ್ಗಳಲ್ಲಿ OpenSSH ಆವೃತ್ತಿ 8.2 ಅಥವಾ ಹೆಚ್ಚಿನದು. ಉಬುಂಟು 20.04 ಅನ್ನು OpenSSH 8.2 ನೊಂದಿಗೆ ರವಾನಿಸುತ್ತದೆ.
- (ಐಚ್ಛಿಕ, ಆದರೆ ಶಿಫಾರಸು) ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಪರಿಶೀಲಿಸಲು CLI ಸಾಧನ.
ತರಬೇತಿ
ಮೊದಲಿಗೆ, ನೀವು ಹಾರ್ಡ್ವೇರ್ ಭದ್ರತಾ ಕೀಲಿಯಲ್ಲಿ ಇರುವ ಪ್ರಮಾಣೀಕರಣ ಪ್ರಾಧಿಕಾರವನ್ನು ರಚಿಸಬೇಕಾಗಿದೆ. ಕೀಲಿಯನ್ನು ಸೇರಿಸಿ ಮತ್ತು ರನ್ ಮಾಡಿ:
$ ssh-keygen -t ecdsa-sk -f sk-user-ca -O resident -C [security key ID]
ಕಾಮೆಂಟ್ ಆಗಿ (-C) ನಾನು ಸೂಚಿಸಿದ್ದೇನೆ [ಇಮೇಲ್ ರಕ್ಷಿಸಲಾಗಿದೆ]ಆದ್ದರಿಂದ ಈ ಪ್ರಮಾಣಪತ್ರದ ಅಧಿಕಾರವು ಯಾವ ಭದ್ರತಾ ಕೀಗೆ ಸೇರಿದೆ ಎಂಬುದನ್ನು ನೀವು ಮರೆಯುವುದಿಲ್ಲ.
Yubikey ಗೆ ಕೀಲಿಯನ್ನು ಸೇರಿಸುವುದರ ಜೊತೆಗೆ, ಎರಡು ಫೈಲ್ಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ರಚಿಸಲಾಗುತ್ತದೆ:
- sk-user-ca, ಭದ್ರತಾ ಕೀಲಿಯಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ಸೂಚಿಸುವ ಕೀ ಹ್ಯಾಂಡಲ್,
- sk-user-ca.pub, ಇದು ನಿಮ್ಮ ಪ್ರಮಾಣಪತ್ರ ಪ್ರಾಧಿಕಾರಕ್ಕೆ ಸಾರ್ವಜನಿಕ ಕೀಲಿಯಾಗಿದೆ.
ಆದರೆ ಚಿಂತಿಸಬೇಡಿ, Yubikey ಹಿಂಪಡೆಯಲಾಗದ ಮತ್ತೊಂದು ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ, ಇಲ್ಲಿ ಎಲ್ಲವೂ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿದೆ.
ಹೋಸ್ಟ್ಗಳಲ್ಲಿ, ರೂಟ್ ಆಗಿ, ನಿಮ್ಮ SSHD ಕಾನ್ಫಿಗರೇಶನ್ಗೆ (/etc/ssh/sshd_config) ಕೆಳಗಿನವುಗಳನ್ನು ಸೇರಿಸಿ (ನೀವು ಈಗಾಗಲೇ ಹೊಂದಿಲ್ಲದಿದ್ದರೆ):
TrustedUserCAKeys /etc/ssh/ca.pub
ನಂತರ ಹೋಸ್ಟ್ನಲ್ಲಿ, ಸಾರ್ವಜನಿಕ ಕೀ (sk-user-ca.pub) ಅನ್ನು /etc/ssh/ca.pub ಗೆ ಸೇರಿಸಿ
ಡೀಮನ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ:
# /etc/init.d/ssh restart
ಈಗ ನಾವು ಹೋಸ್ಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸಬಹುದು. ಆದರೆ ಮೊದಲು ನಮಗೆ ಪ್ರಮಾಣಪತ್ರ ಬೇಕು. ಪ್ರಮಾಣಪತ್ರದೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಪ್ರಮುಖ ಜೋಡಿಯನ್ನು ರಚಿಸಿ:
$ ssh-keygen -t ecdsa -f emergency
ಪ್ರಮಾಣಪತ್ರಗಳು ಮತ್ತು SSH ಜೋಡಿಗಳು
ಸಾರ್ವಜನಿಕ/ಖಾಸಗಿ ಕೀ ಜೋಡಿಗೆ ಬದಲಿಯಾಗಿ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಬಳಸಲು ಕೆಲವೊಮ್ಮೆ ಇದು ಪ್ರಚೋದಿಸುತ್ತದೆ. ಆದರೆ ಬಳಕೆದಾರರನ್ನು ದೃಢೀಕರಿಸಲು ಕೇವಲ ಪ್ರಮಾಣಪತ್ರ ಸಾಕಾಗುವುದಿಲ್ಲ. ಪ್ರತಿ ಪ್ರಮಾಣಪತ್ರವು ಅದರೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದ ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ಸಹ ಹೊಂದಿದೆ. ಇದಕ್ಕಾಗಿಯೇ ನಾವು ಪ್ರಮಾಣಪತ್ರವನ್ನು ನೀಡುವ ಮೊದಲು ನಾವು ಈ "ತುರ್ತು" ಕೀ ಜೋಡಿಯನ್ನು ರಚಿಸಬೇಕಾಗಿದೆ. ಮುಖ್ಯವಾದ ವಿಷಯವೆಂದರೆ ನಾವು ಸಹಿ ಮಾಡಿದ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಸರ್ವರ್ಗೆ ತೋರಿಸುತ್ತೇವೆ, ನಾವು ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ಹೊಂದಿರುವ ಕೀ ಜೋಡಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ.ಆದ್ದರಿಂದ ಸಾರ್ವಜನಿಕ ಕೀ ವಿನಿಮಯ ಇನ್ನೂ ಜೀವಂತವಾಗಿದೆ ಮತ್ತು ಚೆನ್ನಾಗಿದೆ. ಇದು ಪ್ರಮಾಣಪತ್ರಗಳೊಂದಿಗೆ ಸಹ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಸಾರ್ವಜನಿಕ ಕೀಲಿಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಸರ್ವರ್ನ ಅಗತ್ಯವನ್ನು ಪ್ರಮಾಣಪತ್ರಗಳು ಸರಳವಾಗಿ ತೆಗೆದುಹಾಕುತ್ತವೆ.
ಮುಂದೆ, ಪ್ರಮಾಣಪತ್ರವನ್ನು ಸ್ವತಃ ರಚಿಸಿ. ನನಗೆ 10 ನಿಮಿಷಗಳ ಮಧ್ಯಂತರದಲ್ಲಿ ಉಬುಂಟು ಬಳಕೆದಾರ ಅಧಿಕಾರ ಬೇಕು. ನೀವು ಅದನ್ನು ನಿಮ್ಮ ರೀತಿಯಲ್ಲಿ ಮಾಡಬಹುದು.
$ ssh-keygen -s sk-user-ca -I test-key -n ubuntu -V -5m:+5m emergency
ನಿಮ್ಮ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಬಳಸಿ ಪ್ರಮಾಣಪತ್ರಕ್ಕೆ ಸಹಿ ಮಾಡಲು ನಿಮ್ಮನ್ನು ಕೇಳಲಾಗುತ್ತದೆ. ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಹೆಚ್ಚುವರಿ ಬಳಕೆದಾರಹೆಸರುಗಳನ್ನು ನೀವು ಸೇರಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ -n ubuntu,carl,ec2-user
ಅಷ್ಟೆ, ಈಗ ನೀವು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಹೊಂದಿದ್ದೀರಿ! ಮುಂದೆ ನೀವು ಸರಿಯಾದ ಅನುಮತಿಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕಾಗಿದೆ:
$ chmod 600 emergency-cert.pub
ಇದರ ನಂತರ, ನಿಮ್ಮ ಪ್ರಮಾಣಪತ್ರದ ವಿಷಯಗಳನ್ನು ನೀವು ವೀಕ್ಷಿಸಬಹುದು:
$ step ssh inspect emergency-cert.pub
ನನ್ನದು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:
emergency-cert.pub
Type: [email protected] user certificate
Public key: ECDSA-CERT SHA256:EJSfzfQv1UK44/LOKhBbuh5oRMqxXGBSr+UAzA7cork
Signing CA: SK-ECDSA SHA256:kLJ7xfTTPQN0G/IF2cq5TB3EitaV4k3XczcBZcLPQ0E
Key ID: "test-key"
Serial: 0
Valid: from 2020-06-24T16:53:03 to 2020-06-24T17:03:03
Principals:
ubuntu
Critical Options: (none)
Extensions:
permit-X11-forwarding
permit-agent-forwarding
permit-port-forwarding
permit-pty
permit-user-rc
ಇಲ್ಲಿ ಸಾರ್ವಜನಿಕ ಕೀಲಿಯು ನಾವು ರಚಿಸಿದ ತುರ್ತು ಕೀ ಆಗಿದೆ ಮತ್ತು sk-user-ca ಪ್ರಮಾಣೀಕರಣ ಪ್ರಾಧಿಕಾರದೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿದೆ.
ಅಂತಿಮವಾಗಿ ನಾವು SSH ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಲು ಸಿದ್ಧರಿದ್ದೇವೆ:
$ ssh -i emergency ubuntu@my-hostname
ubuntu@my-hostname:~$
- ನಿಮ್ಮ ಪ್ರಮಾಣಪತ್ರ ಅಧಿಕಾರವನ್ನು ನಂಬುವ ಹೋಸ್ಟ್ನಲ್ಲಿ ಯಾವುದೇ ಬಳಕೆದಾರರಿಗಾಗಿ ನೀವು ಈಗ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ರಚಿಸಬಹುದು.
- ನೀವು ತುರ್ತುಸ್ಥಿತಿಯನ್ನು ತೆಗೆದುಹಾಕಬಹುದು. ನೀವು sk-user-ca ಅನ್ನು ಉಳಿಸಬಹುದು, ಆದರೆ ಇದು ಭದ್ರತಾ ಕೀಲಿಯಲ್ಲಿರುವ ಕಾರಣ ನಿಮಗೆ ಅಗತ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಹೋಸ್ಟ್ಗಳಿಂದ ಮೂಲ PEM ಸಾರ್ವಜನಿಕ ಕೀಲಿಯನ್ನು ನೀವು ತೆಗೆದುಹಾಕಲು ಬಯಸಬಹುದು (ಉದಾಹರಣೆಗೆ ~/.ssh/authorized_keys ನಲ್ಲಿ ಉಬುಂಟು ಬಳಕೆದಾರರಿಗೆ) ನೀವು ತುರ್ತು ಪ್ರವೇಶಕ್ಕಾಗಿ ಅದನ್ನು ಬಳಸಿದ್ದರೆ.
ತುರ್ತು ಪ್ರವೇಶ: ಕ್ರಿಯಾ ಯೋಜನೆ
ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಅಂಟಿಸಿ ಮತ್ತು ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ:
$ ssh-add -K
ಇದು ಪ್ರಮಾಣಪತ್ರ ಪ್ರಾಧಿಕಾರದ ಸಾರ್ವಜನಿಕ ಕೀ ಮತ್ತು ಕೀ ವಿವರಣೆಯನ್ನು SSH ಏಜೆಂಟ್ಗೆ ಸೇರಿಸುತ್ತದೆ.
ಪ್ರಮಾಣಪತ್ರವನ್ನು ಮಾಡಲು ಈಗ ಸಾರ್ವಜನಿಕ ಕೀಲಿಯನ್ನು ರಫ್ತು ಮಾಡಿ:
$ ssh-add -L | tail -1 > sk-user-ca.pub
ಮುಕ್ತಾಯ ದಿನಾಂಕದೊಂದಿಗೆ ಪ್ರಮಾಣಪತ್ರವನ್ನು ರಚಿಸಿ, ಉದಾಹರಣೆಗೆ, ಒಂದು ಗಂಟೆಗಿಂತ ಹೆಚ್ಚಿಲ್ಲ:
$ ssh-keygen -t ecdsa -f emergency
$ ssh-keygen -Us sk-user-ca.pub -I test-key -n [username] -V -5m:+60m emergency
$ chmod 600 emergency-cert.pub
ಮತ್ತು ಈಗ ಮತ್ತೆ SSH:
$ ssh -i emergency username@host
ನಿಮ್ಮ .ssh/config ಫೈಲ್ ಸಂಪರ್ಕಿಸುವಾಗ ಕೆಲವು ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತಿದ್ದರೆ, ನೀವು ಅದನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು -F none ಆಯ್ಕೆಯೊಂದಿಗೆ ssh ಅನ್ನು ಚಲಾಯಿಸಬಹುದು. ನೀವು ಸಹೋದ್ಯೋಗಿಗೆ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಕಳುಹಿಸಬೇಕಾದರೆ, ಸುಲಭವಾದ ಮತ್ತು ಸುರಕ್ಷಿತವಾದ ಆಯ್ಕೆಯಾಗಿದೆ
ಈ ವಿಧಾನದ ಬಗ್ಗೆ ನಾನು ಇಷ್ಟಪಡುವದು ಹಾರ್ಡ್ವೇರ್ ಬೆಂಬಲವಾಗಿದೆ. ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಗಳನ್ನು ನೀವು ಸುರಕ್ಷಿತವಾಗಿ ಇರಿಸಬಹುದು ಮತ್ತು ಅವು ಎಲ್ಲಿಯೂ ಹೋಗುವುದಿಲ್ಲ.
ಜಾಹೀರಾತು ಹಕ್ಕುಗಳ ಮೇಲೆ
ಎಪಿಕ್ ಸರ್ವರ್ಗಳು - ಇದು
ಮೂಲ: www.habr.com