ಅಮಾನ್ಯ ರಹಸ್ಯಗಳು ಎಂಬುದು ಪಾತ್ರೆಗಳ ಸಮಸ್ಯೆ, ಪಾಸ್ವರ್ಡ್ ನಿಯಮವಲ್ಲ
ತಿರಸ್ಕೃತ ರುಜುವಾತು ಗೇಟ್ವೇಗೆ ತಲುಪಿಯೇ ಇರದಿರಬಹುದು. ಮೊದಲು ಇನ್ಪುಟ್ ಪಾತ್ರೆ, ದೃಢೀಕರಣ ಹಂತ ಮತ್ತು ಖಾತೆಯನ್ನು ಹೋಲಿಸಿ.
"invalid secrets" ಎಂಬುದನ್ನು ಕಂಡಾಗ ಸಾಮಾನ್ಯವಾಗಿ ಒಂದೇ ತೀರ್ಮಾನ ಬರುತ್ತದೆ: VPN ಗೆ ವಿರಾಮ ಚಿಹ್ನೆಗಳು ಇಷ್ಟವಿಲ್ಲ. ಆ ತೀರ್ಮಾನ ಸಾಮಾನ್ಯವಾಗಿ ತಪ್ಪು, ಏಕೆಂದರೆ ಯಾವುದೇ ಗೇಟ್ವೇ ಖಾತೆಯನ್ನು ನೋಡುವ ಮೊದಲೇ ಸ್ಥಳೀಯ ನಿರ್ವಹಣೆಯಿಂದ ಈ ಸಂದೇಶ ಬರುತ್ತದೆ. ಎರಡು ವಿನ್ಯಾಸಗಳು ಒಂದೇ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ರವಾನಿಸುತ್ತವೆ, ಗ್ರಾಫಿಕಲ್ ಕ್ಷೇತ್ರ ಮತ್ತು ರುಜುವಾತು ಕಡತ, ಮತ್ತು ಅವು ಬೇರೆ ಬೇರೆ ಸ್ಥಳಗಳಲ್ಲಿ ವಿಫಲವಾಗುತ್ತವೆ. ಎಲ್ಲ ಕಾಲದಲ್ಲೂ ಸರಿಯಾಗಿದ್ದ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಸರಳೀಕರಿಸುವ ಮೊದಲು ಪಾತ್ರೆಗಳನ್ನು ಹೋಲಿಸಿ.
ದೋಷ ಗೇಟ್ವೇಗಿಂತ ಮೊದಲೇ ಬರುತ್ತದೆ
ಸ್ಥಳೀಯ ಮಾನ್ಯತೆ, ಲಾಕ್ ಆದ ರಹಸ್ಯ ಭಂಡಾರ, ಇಲ್ಲದ ಏಜೆಂಟ್ ಮತ್ತು ತಪ್ಪಾದ ರುಜುವಾತು ಕಡತ, ಇವೆಲ್ಲವೂ ಬಳಕೆದಾರರಿಗೆ ಒಂದೇ ತಿರಸ್ಕಾರವಾಗಿ ಕಾಣುವ ವೈಫಲ್ಯಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತವೆ. ಇವುಗಳಲ್ಲಿ ಯಾವುದೂ ದೃಢೀಕರಣ ಸರ್ವರ್ ಅನ್ನು ಒಳಗೊಂಡಿಲ್ಲ. ಗೇಟ್ವೇಯ ಸ್ವಂತ ತಿರಸ್ಕಾರ ಬೇರೆಯದೇ ಘಟನೆ, ಮತ್ತು ಅದು ಸಾಮಾನ್ಯವಾಗಿ ಬೇರೆ ಸಂದೇಶ ಮತ್ತು ಬೇರೆ ಸಮಯದೊಂದಿಗೆ ಬರುತ್ತದೆ. ಅದು ಸುರಂಗವೊಂದು ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದು ರುಜುವಾತುಗಳು ರವಾನೆಯಾದ ನಂತರ ಸಂಭವಿಸುತ್ತದೆ.
ಹಾಗಾಗಿ ಮೊದಲ ಪ್ರಶ್ನೆ ಯಾವ ಅಕ್ಷರಗಳು ಕಾನೂನುಬದ್ಧ ಎಂಬುದಲ್ಲ, ಪ್ರಯತ್ನ ಎಲ್ಲಿ ನಿಂತಿತು ಎಂಬುದು. ಸಂಪರ್ಕವನ್ನೇ ತೆರೆಯದ ಕ್ಲೈಂಟ್ ಅನ್ನು ಯಾರೂ ತಿರಸ್ಕರಿಸಿಲ್ಲ. ನೀವು ಗಮನಿಸಿದ ಹಂತವನ್ನು ಬರೆಯಿರಿ, ಏಕೆಂದರೆ ಮುಂದಿನ ಪ್ರತಿಯೊಂದು ಹೆಜ್ಜೆಯೂ ಆ ವರ್ಗೀಕರಣವನ್ನು ಅವಲಂಬಿಸಿದೆ.
ಈ ವ್ಯತ್ಯಾಸವು ಅದನ್ನು ಯಾರು ಸರಿಪಡಿಸುತ್ತಾರೆ ಎಂಬುದನ್ನೂ ಬದಲಿಸುತ್ತದೆ. ಪಾತ್ರೆಗಳ ಸಮಸ್ಯೆ ಸಾಧನ ಮತ್ತು ಅದರ ಮಾಲೀಕರಿಗೆ ಸೇರಿದ್ದು, ಖಾತೆಯ ತಿರಸ್ಕಾರ ದೃಢೀಕರಣ ಬ್ಯಾಕೆಂಡ್ ನಡೆಸುವವರಿಗೆ ಸೇರಿದ್ದು.
ಅಕ್ಷರಗಳಲ್ಲ, ಪಾತ್ರೆಗಳನ್ನು ಹೋಲಿಸಿ
GUI ಪಾಸ್ವರ್ಡ್ ಕ್ಷೇತ್ರ, ಕೀಚೈನ್ ನಮೂದು, ಎರಡು ಸಾಲಿನ ರುಜುವಾತು ಕಡತ ಮತ್ತು ಸ್ವಯಂಚಾಲನಾ ರಹಸ್ಯ, ಇವೆಲ್ಲವೂ ಒಂದೇ ಮೌಲ್ಯವನ್ನು ಬೇರೆ ಬೇರೆ ಹೊದಿಕೆಯಲ್ಲಿ ಹೊತ್ತುತ್ತವೆ. ಹೊದಿಕೆಗೆ ಅದರದೇ ನಿಯಮಗಳಿವೆ, ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಮುರಿಯುವುದು ಆ ನಿಯಮಗಳೇ. ಸಮಸ್ಯೆ ಮೌಲ್ಯದಲ್ಲಿರುವುದು ಅಪರೂಪ; ಸಮಸ್ಯೆ ಮೌಲ್ಯದ ಸಾಗಣೆಯಲ್ಲಿದೆ. ಎರಡು ಕಲ್ಪನೆಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇಟ್ಟರೆ ನಿದಾನ ತಕ್ಷಣ ಚಿಕ್ಕದಾಗುತ್ತದೆ.
| Where the value stops | What you see | What you check | Who owns the fix |
|---|---|---|---|
| GUI field or managed profile | A validation message before any connection opens | The selected authentication mode and whether the field holds the secret or the username | The device owner or the profile author |
| Keychain or secret agent | A prompt that keeps reappearing, or an agent error | Whether the agent is unlocked and holds an entry for this profile | The user who owns the keychain |
| Two-line credential file | A prompt for a password that was already supplied | Line count, line order and whether a trailing newline is present | Whoever generated the file |
| Shell argument or environment | Works interactively but fails in automation | Whether the shell expanded, trimmed or logged the value | Whoever wrote the automation |
Community OpenVPN 2.6 ಕ್ಲೈಂಟ್ ಆಯ್ಕೆಗಳು auth-user-pass ಗಾಗಿ ಆ ಎರಡು ಸಾಲಿನ ಕಡತವನ್ನು ವಿವರಿಸುತ್ತವೆ, ಪಾಸ್ವರ್ಡ್ ಸಾಲು ಇಲ್ಲದಿದ್ದಾಗಿನ ವರ್ತನೆಯೂ ಸೇರಿದಂತೆ: ಆಗ ಕ್ಲೈಂಟ್ ಕೇಳುತ್ತದೆ. ಆ ಒಂದೇ ವಿವರವು "ನಾನು ಈಗಾಗಲೇ ಒದಗಿಸಿದ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಇದು ಕೇಳುತ್ತದೆ" ಎಂಬ ವರದಿಗಳ ವರ್ಗವನ್ನು ವಿವರಿಸುತ್ತದೆ. ಖಾಲಿ ಎರಡನೇ ಸಾಲು ನಿರುಪದ್ರವ ಸ್ವರೂಪದ ಆಯ್ಕೆಯಲ್ಲ, ಅರ್ಥಪೂರ್ಣ ಸ್ಥಿತಿ ಎಂಬುದನ್ನೂ ಅದು ತಿಳಿಸುತ್ತದೆ.
ಉಲ್ಲೇಖ ಮತ್ತೊಂದು ಪದರ: ಸಾಮಾನ್ಯ ರುಜುವಾತು ಕಡತದೊಳಗಿನ ಉದ್ಧರಣ ಚಿಹ್ನೆಗಳನ್ನು ದತ್ತಾಂಶವಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಷೆಲ್ ಪ್ರೋಗ್ರಾಂ ನೋಡುವ ಮೊದಲೇ ಅವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಅದೇ ಅಕ್ಷರ ಒಂದು ಕಡೆ ನಿರುಪದ್ರವ ಮತ್ತು ಇನ್ನೊಂದು ಕಡೆ ರಚನಾತ್ಮಕ. ನಿಮ್ಮ ಕ್ಲೈಂಟ್ ಯಾವ ಪಾತ್ರೆ ಬಳಸಿತು ಎಂದು ಕೋಷ್ಟಕ ಹೇಳಲಾರದು, ಆದ್ದರಿಂದ ಸಾಲನ್ನು ಆರಿಸುವ ಮೊದಲು ಕ್ಲೈಂಟ್ನ ಸ್ವಂತ ಸಂರಚನೆಯನ್ನು ಓದಿ.
ಸಾಲು ಮುರಿತಗಳೂ ರಚನಾತ್ಮಕ. ಸಾಲಿನಿಂದ ಬೇರ್ಪಡಿಸಿದ ಕ್ಷೇತ್ರಗಳಿರುವ ಕಡತವು ಹೊಸ ಸಾಲನ್ನು ಒಳಗೊಂಡ ಮೌಲ್ಯವನ್ನು ಹೊತ್ತುಕೊಳ್ಳಲಾರದು, ಮತ್ತು ಇದು ಸ್ವರೂಪದ ಮಿತಿ, ಪಾಸ್ವರ್ಡ್ ಬಲದ ಬಗ್ಗೆ ತೀರ್ಮಾನವಲ್ಲ. ರಹಸ್ಯವನ್ನು ಸ್ವಂತ ಕಡತಕ್ಕೆ ಹೊಂದಿಸಲು ಕತ್ತರಿಸುವ ಬದಲು ನಿಯೋಜನೆಯು ಬೆಂಬಲಿಸುವ ವಿತರಣಾ ಕ್ರಮವನ್ನು ಬಳಸಿ.
ಷೆಲ್ ಹಾನಿ ಇಲ್ಲದೆ ರುಜುವಾತು ಕಡತ ನಿರ್ಮಿಸಿ
ಅತ್ಯಂತ ಸುರಕ್ಷಿತ ಸ್ಥಳೀಯ ಮಾರ್ಗ ರಹಸ್ಯವನ್ನು ಷೆಲ್ ಇತಿಹಾಸದಿಂದ ಮತ್ತು ಪ್ರಕ್ರಿಯೆ ಆರ್ಗ್ಯುಮೆಂಟ್ ಪಟ್ಟಿಯಿಂದ ಹೊರಗಿಡುತ್ತದೆ. ಎರಡೂ ಕ್ಷೇತ್ರಗಳನ್ನು ಸಂವಾದಾತ್ಮಕವಾಗಿ ಓದಿ, ನಂತರ ಕ್ಲೈಂಟ್ ನಿರೀಕ್ಷಿಸುವ ಎರಡು ಸಾಲುಗಳನ್ನು ಬರೆಯಿರಿ. ಉಳಿದೆಲ್ಲವೂ ಪರಿಶೀಲಿಸಲು ಸುಲಭವಾದ ಸಂರಚನಾ ಕಡತದಲ್ಲಿ ಇರಬಹುದು.
read -r VPN_USER
read -rs VPN_PASS
printf '%s\n%s\n' "$VPN_USER" "$VPN_PASS" > /etc/openvpn/client/creds
chmod 600 /etc/openvpn/client/creds
openvpn --config /etc/openvpn/client/office.conf --auth-user-pass /etc/openvpn/client/credsಮೊದಲ ಎರಡು ಆದೇಶಗಳು ಬಳಕೆದಾರಹೆಸರನ್ನು ನಂತರ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಪ್ರತಿಧ್ವನಿಸದೆ ಓದುತ್ತವೆ, ಮೂರನೆಯದು ಎರಡೂ ಸಾಲುಗಳನ್ನು ಬರೆಯುತ್ತದೆ, ನಾಲ್ಕನೆಯದು ಕಡತವನ್ನು ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ, ಮತ್ತು ಕೊನೆಯದು ಆ ಕಡತದೊಂದಿಗೆ ಕ್ಲೈಂಟ್ ಪ್ರಾರಂಭಿಸುತ್ತದೆ. read -r ಬ್ಯಾಕ್ಸ್ಲಾಶ್ಗಳನ್ನು ಉಳಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ, ಮತ್ತು ಅದನ್ನು ಬಿಟ್ಟುಬಿಟ್ಟಾಗ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದ ಪಾಸ್ವರ್ಡ್ ವಿಫಲವಾಗುವಂತೆ ಮಾಡುವ ಸರಿಯಾಗಿ ಅದೇ ಬಗೆಯ ವಿವರ ಇದು.
ಉಲ್ಲೇಖಿಸದ ಬದಲಿಗೆ ಅಥವಾ ಷೆಲ್ ವಿಸ್ತರಣೆಗಳಿಂದ ತುಂಬಿದ here-document ಬಳಸಿ ಕಡತ ನಿರ್ಮಿಸಬೇಡಿ. ಎರಡೂ ಅಕ್ಷರಗಳನ್ನು ಕಡತ ತಲುಪುವ ಮೊದಲೇ ಬದಲಿಸಬಹುದು, ಮತ್ತು ಪರಿಣಾಮವಾಗಿ ಉಂಟಾಗುವ ವೈಫಲ್ಯ VPN ತಿರಸ್ಕಾರದಂತೆ ಕಾಣುತ್ತದೆ, ಏಕೆಂದರೆ ಡಿಸ್ಕ್ನಲ್ಲಿರುವ ಪಾಸ್ವರ್ಡ್ ನಿಮಗೆ ತಿಳಿದ ಪಾಸ್ವರ್ಡ್ಗಿಂತ ನಿಜವಾಗಿಯೂ ಬೇರೆ. ಇದನ್ನು ಸಂಶಯಿಸಿದರೆ ರಹಸ್ಯವನ್ನು ಮುದ್ರಿಸದೆ ಕಡತದ ಬೈಟ್ ಉದ್ದವನ್ನು ನಿರೀಕ್ಷಿತ ಮೌಲ್ಯದೊಂದಿಗೆ ಹೋಲಿಸಿ. ಒಂದು ಅಥವಾ ಎರಡು ಬೈಟ್ಗಳ ವ್ಯತ್ಯಾಸವೇ ಉಲ್ಲೇಖ ಅಪಘಾತದ ಸಹಿ.
ಮೊದಲ ದೋಷದಿಂದ ಹಂತವನ್ನು ಓದಿ
ಒಂದು ಪ್ರಯತ್ನದ ಮೊದಲ ನಿರ್ದಿಷ್ಟ ಸಂದೇಶವನ್ನು ಇಟ್ಟುಕೊಂಡು ಅದನ್ನು ವರ್ಗೀಕರಿಸಿ. ಸ್ಥಳೀಯ ಮಾನ್ಯತೆ ದೋಷ, ಕಾಣೆಯಾದ ಖಾಸಗಿ ಕೀ, ಲಭ್ಯವಿಲ್ಲದ ರಹಸ್ಯ ಏಜೆಂಟ್ ಮತ್ತು ಗೇಟ್ವೇ ದೃಢೀಕರಣ ವೈಫಲ್ಯ, ಇವು ನಾಲ್ಕು ಬೇರೆ ಬೇರೆ ಫಲಿತಾಂಶಗಳು, ನಾಲ್ಕು ಬೇರೆ ಬೇರೆ ಜವಾಬ್ದಾರರೊಂದಿಗೆ. ಅವುಗಳಲ್ಲಿ ಒಂದೇ ಖಾತೆಗೆ ಸಂಬಂಧಿಸಿದ್ದು.
ಸರಿಯಾಗಿ ತಲುಪಿಸಿದ ರುಜುವಾತನ್ನು ಗೇಟ್ವೇ ನಿಜವಾಗಿಯೂ ತಿರಸ್ಕರಿಸುತ್ತಿದ್ದರೆ, ನಿರ್ವಾಹಕರೊಂದಿಗೆ ಖಾತೆ, ದೃಢೀಕರಣ ಬ್ಯಾಕೆಂಡ್ ಮತ್ತು ಅಗತ್ಯವಿರುವ ಸವಾಲನ್ನು ಪರಿಶೀಲಿಸಿ. ಸಾಮಾನ್ಯ ದೃಢೀಕರಣ ವೈಫಲ್ಯವು ನಿಷೇಧಿತ ಅಕ್ಷರವನ್ನು ಹೆಸರಿಸುವುದಿಲ್ಲ.
ಅನುಮೋದಿತ ಮೌಲ್ಯವನ್ನು ಅಕ್ಷರಗಳು ಮತ್ತು ಅಂಕಿಗಳಿಗೆ ಇಳಿಸುವ ಬದಲು ಸರಿಯಾದ ಕಾರ್ಯವಿಧಾನದ ಮೂಲಕ ಮರುಸ್ಥಾಪಿಸಿ. ಪಾಸ್ವರ್ಡ್ ನೀತಿ ನಿರ್ವಾಹಕರಿಗೆ ಸೇರಿದ್ದು, ಮತ್ತು ಅದನ್ನು ಮೌನವಾಗಿ ಸೋಲಿಸುವ ಪರ್ಯಾಯ ಪರಿಹಾರವು ಸರಿಪಡಿಸುವಿಕೆಯಲ್ಲ. ಅದು ಮುಂದಿನ ವ್ಯಕ್ತಿಯಿಂದ ನಿಜವಾದ ದೋಷವನ್ನು ಮರೆಮಾಡುತ್ತದೆ, ಅವರು ದುರ್ಬಲ ಪಾಸ್ವರ್ಡ್ನೊಂದಿಗೆ ಅದೇ ದೋಷವನ್ನು ಎದುರಿಸುತ್ತಾರೆ.