ਹਰ ਲਾਈਨ ਵਿੱਚ ਇੱਕ OpenVPN ਨਿਰਦੇਸ਼, ਅਤੇ ਲਾਈਨ ਲਪੇਟਣਾ ਕਿਉਂ ਝੂਠ ਬੋਲਦਾ ਹੈ
ਨਰਮੀ ਨਾਲ ਲਪੇਟਿਆ ਸਕ੍ਰੀਨ ਫ਼ਾਈਲ ਵਿੱਚ ਨਵੀਂ ਲਾਈਨ ਨਹੀਂ ਹੈ। ਕਿਸੇ ਖਰਾਬ ਹਿੱਸੇ ਨੂੰ ਅਜਨਬੀ ਦੇ ਟੈਂਪਲੇਟ ਨਾਲ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਅਸਲ ਲਾਈਨ ਬਰੇਕ ਜਾਂਚੋ।
ਇੱਕ ਪ੍ਰੋਫ਼ਾਈਲ ਜੋ ਪਹਿਲਾਂ ਚੱਲਦੀ ਸੀ ਹੁਣ ਆਪਸ਼ਨ ਤਰੁੱਟੀ ਨਾਲ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਪਾਰਸਰ ਜਿਸ ਲਾਈਨ ਦਾ ਹਵਾਲਾ ਦਿੰਦਾ ਹੈ ਉਹ ਸਕ੍ਰੀਨ ਉੱਤੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਵਾਜਬ ਦਿਸਦੀ ਹੈ। ਇਹੀ ਜਾਲ ਹੈ: ਕਾਨਫ਼ਿਗਰੇਸ਼ਨ ਫ਼ਾਈਲ ਭੌਤਿਕ ਲਾਈਨਾਂ ਦੀ ਸੂਚੀ ਹੈ, ਹਰ ਇੱਕ ਵਿੱਚ ਇੱਕ ਆਪਸ਼ਨ ਕੀਵਰਡ ਅਤੇ ਉਸਦੇ ਆਰਗੂਮੈਂਟ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਸੰਪਾਦਕ ਵੱਲੋਂ ਲਪੇਟੀ ਲੰਮੀ ਲਾਈਨ ਬਾਈਟ ਵੇਖਣ ਤੱਕ ਦੋ ਲਾਈਨਾਂ ਵਰਗੀ ਹੀ ਦਿਸਦੀ ਹੈ। ਨੈੱਟਵਰਕ, ਸਰਟੀਫ਼ਿਕੇਟ ਜਾਂ ਟਨਲ ਇਸ ਫੇਲ੍ਹ ਹੋਣ ਦੀ ਸ਼੍ਰੇਣੀ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਹਨ। ਸਕ੍ਰੀਨ ਉੱਤੇ ਇੱਕੋ ਜਿਹੀਆਂ ਦਿਸਦੀਆਂ ਦੋ ਲਾਈਨਾਂ ਇੱਕ ਬਾਈਟ ਨਾਲ ਵੱਖਰੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ।
ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਜਾਂਚਾਂ ਕ੍ਰਮ ਵਿੱਚ ਕਰੋ ਅਤੇ ਪਹਿਲੀ ਫੇਲ੍ਹ ਜਾਂਚ ਉੱਤੇ ਰੁਕੋ। ਹਰ ਇੱਕ ਅਗਲੀ ਨਾਲੋਂ ਸਸਤੀ ਹੈ, ਅਤੇ ਹਰ ਇੱਕ ਵੱਖਰੀ ਵਿਆਖਿਆ ਹਟਾਉਂਦੀ ਹੈ।
ਇੱਕ ਲਾਈਨ, ਇੱਕ ਨਿਰਦੇਸ਼
ਪਾਰਸਰ ਇੱਕ ਲਾਈਨ ਪੜ੍ਹਦਾ ਹੈ, ਪਹਿਲਾ ਸ਼ਬਦ ਆਪਸ਼ਨ ਵਜੋਂ ਲੈਂਦਾ ਹੈ ਅਤੇ ਬਾਕੀ ਨੂੰ ਉਸੇ ਆਪਸ਼ਨ ਦੇ ਆਰਗੂਮੈਂਟ ਮੰਨਦਾ ਹੈ। ਇਸ ਲਈ cert server.crt port 1194 ਵਰਗੀ ਲਾਈਨ ਦੋ ਲਗਾਤਾਰ ਨਿਰਦੇਸ਼ ਨਹੀਂ ਹੈ। ਇਹ ਤਿੰਨ ਆਰਗੂਮੈਂਟਾਂ ਵਾਲਾ ਇੱਕ cert ਆਪਸ਼ਨ ਹੈ, ਅਤੇ ਤੀਜਾ ਉਹ ਫ਼ਾਈਲ ਨਾਮ ਨਹੀਂ ਜੋ ਆਪਸ਼ਨ ਸਵੀਕਾਰ ਕਰਦਾ ਹੋਵੇ। ਤਰੁੱਟੀ ਨੂੰ ਗੁੰਮ ਲਾਈਨ ਬਰੇਕ ਵਜੋਂ ਪੜ੍ਹਨਾ ਸਹੀ ਹੈ; ਇਸਨੂੰ ਗੁੰਮ ਨਿਰਦੇਸ਼ ਵਜੋਂ ਪੜ੍ਹਨਾ ਸਹੀ ਨਹੀਂ।
# malformed: one option, three arguments
cert server.crt port 1194
# intended: two options, one argument each
cert server.crt
port 1194
ਉਹ ਦੋ ਸੋਧੀਆਂ ਲਾਈਨਾਂ ਇੱਕ ਟੁਕੜਾ ਹਨ, ਕਾਨਫ਼ਿਗਰੇਸ਼ਨ ਨਹੀਂ। ਸੀਮਾ ਕਿੱਥੇ ਹੈ ਇਹ ਦਿਖਾਉਣ ਲਈ ਉਹ ਹਨ। ਪ੍ਰੋਫ਼ਾਈਲ ਵਿੱਚ ਹਰ ਆਮ ਨਿਰਦੇਸ਼ ਉਹੀ ਨਿਯਮ ਅਪਣਾਉਂਦਾ ਹੈ, ਅਤੇ ਦੋ ਨੂੰ ਜੋੜਨ ਵਾਲੀ ਲਾਈਨ ਜਾਂ ਤਾਂ ਆਰਗੂਮੈਂਟ ਤਰੁੱਟੀ ਦਿੰਦੀ ਹੈ ਜਾਂ ਉਹ ਮੁੱਲ ਜਿਸਦੀ ਆਪਸ਼ਨ ਨੇ ਉਮੀਦ ਨਹੀਂ ਕੀਤੀ ਸੀ।
ਸਾਬਤ ਕਰੋ ਕਿ ਲਾਈਨ ਬਰੇਕ ਅਸਲੀ ਹੈ
ਸੰਪਾਦਕ ਦਿਖਾਉਣ ਲਈ ਲਪੇਟਦੇ ਹਨ। ਕੁਝ ਪੇਸਟ ਕਰਦੇ ਸਮੇਂ ਸਖ਼ਤ ਬਰੇਕ ਵੀ ਪਾਉਂਦੇ ਹਨ, ਕੁਝ ਨਹੀਂ, ਇਸ ਲਈ ਇੱਕੋ ਦਿੱਖ ਨਤੀਜਾ ਦੋ ਬਹੁਤ ਵੱਖਰੀਆਂ ਫ਼ਾਈਲਾਂ ਤੋਂ ਆ ਸਕਦਾ ਹੈ। ਕੁਝ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਲਾਈਨਾਂ ਦੇ ਅੰਤ ਦਿਖਾਓ ਅਤੇ ਲਾਈਨਾਂ ਗਿਣੋ। ਮਾਪਣਾ ਇੱਕ ਕਮਾਂਡ ਦਾ ਖ਼ਰਚ ਹੈ; ਅੰਦਾਜ਼ਾ ਇੱਕ ਸ਼ਾਮ ਦਾ।
cat -A /etc/openvpn/server/lab.conf | sed -n '10,20p'
awk 'NR>=10 && NR<=20 {printf "%d:%s\n", NR, $0}' /etc/openvpn/server/lab.conf
ਪਹਿਲੇ ਆਉਟਪੁੱਟ ਵਿੱਚ ਹਰ ਅਸਲੀ ਲਾਈਨ ਬਰੇਕ $ ਨਿਸ਼ਾਨ ਵਜੋਂ ਦਿਸਦੀ ਹੈ, ਇਸ ਲਈ ਲਪੇਟੀ ਪਰ ਨਾ ਵੰਡੀ ਲਾਈਨ ਉੱਥੇ ਕੋਈ ਨਿਸ਼ਾਨ ਨਹੀਂ ਦਿਖਾਉਂਦੀ ਜਿੱਥੇ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਲਪੇਟਦੀ ਹੈ। ਦੂਜੀ ਕਮਾਂਡ ਨੰਬਰ ਵਾਲੀਆਂ ਲਾਈਨਾਂ ਛਾਪਦੀ ਹੈ, ਜੋ ਪਾਰਸਰ ਦੀ ਰਿਪੋਰਟ ਅਤੇ ਫ਼ਾਈਲ ਦੀ ਸਮੱਗਰੀ ਦੀ ਤੁਲਨਾ ਦਾ ਸਭ ਤੋਂ ਤੇਜ਼ ਤਰੀਕਾ ਹੈ।
ਵਾਧੂ ਖਾਲੀ ਥਾਂਵਾਂ ਵੀ ਨਿਰਦੇਸ਼ ਨਹੀਂ ਬਣਾਉਂਦੀਆਂ। ਇੰਡੈਂਟੇਸ਼ਨ ਦਿਖਾਵਾ ਹੈ, ਅਤੇ ਖਾਲੀ ਥਾਂ ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੀ ਲਾਈਨ ਉਹੀ ਇੱਕੋ ਆਪਸ਼ਨ ਰਹਿੰਦੀ ਹੈ। ਜੇ ਤਰੁੱਟੀ ਸੁਨੇਹਾ ਲਾਈਨ ਨੰਬਰ ਦੱਸਦਾ ਹੈ ਤਾਂ ਉਹੀ ਲਾਈਨ ਪੜ੍ਹੋ, ਉਹ ਪੈਰਾਗ੍ਰਾਫ਼ ਨਹੀਂ ਜਿਸਦਾ ਉਹ ਹਿੱਸਾ ਹੈ।
ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਸੂਚੀ ਨਹੀਂ, ਰਾਹ ਦਰਜ ਕਰੋ
ਹਵਾਲਾ ਚਿੰਨ੍ਹ ਖਾਲੀ ਥਾਂ ਵਾਲੇ ਆਰਗੂਮੈਂਟਾਂ ਲਈ ਹਨ, ਆਪਸ਼ਨਾਂ ਨੂੰ ਸਮੂਹ ਬਣਾਉਣ ਲਈ ਨਹੀਂ। ਖਾਲੀ ਥਾਂ ਵਾਲੇ ਸਰਟੀਫ਼ਿਕੇਟ ਰਾਹ ਨੂੰ ਆਪਣੇ ਹਵਾਲਾ ਚਿੰਨ੍ਹ ਚਾਹੀਦੇ ਹਨ; ਇੱਕ ਜੋੜੀ ਹਵਾਲਾ ਚਿੰਨ੍ਹ ਸਾਂਝੇ ਕਰਨ ਵਾਲੇ ਦੋ ਨਿਰਦੇਸ਼ ਅਜੇ ਵੀ ਇੱਕ ਖਰਾਬ ਲਾਈਨ ਹਨ।
cert "/etc/openvpn/pki/lab certs/server.crt"
key "/etc/openvpn/pki/lab certs/server.key"
ਆਪਸ਼ਨਾਂ ਦੇ ਨਾਮ ਲੇਆਉਟ ਦੇ ਨਾਲ-ਨਾਲ ਜਾਂਚੋ, ਕਿਉਂਕਿ ਜੋੜੀ ਲਾਈਨ ਇੱਕ ਭਰੋਸੇਯੋਗ ਦਿਸਦਾ ਟੋਕਨ ਬਣਾ ਸਕਦੀ ਹੈ ਜੋ ਕਦੇ ਸੀ ਹੀ ਨਹੀਂ। ਪੋਰਟ ਨਿਰਦੇਸ਼ port ਹੈ; ਜੋ ਪ੍ਰੋਫ਼ਾਈਲ ਉਸੇ ਵਿਚਾਰ ਲਈ ਕੁਝ ਹੋਰ ਵਰਤਦੀ ਹੈ ਉਹ ਲਾਈਨ ਸੀਮਾਵਾਂ ਸੋਧਣ ਤੋਂ ਬਾਅਦ ਵੀ ਫੇਲ੍ਹ ਹੋਵੇਗੀ। ਜਦੋਂ ਨਾਮ ਅਜਨਬੀ ਲੱਗੇ ਤਾਂ ਇਸਨੂੰ ਫੋਰਮ ਦੀ ਉਦਾਹਰਨ ਦੀ ਥਾਂ ਤੁਹਾਡੇ ਚਲਾਏ ਸੰਸਕਰਣ ਦੀ ਆਪਸ਼ਨ ਸੂਚੀ ਨਾਲ ਤੁਲਨਾ ਕਰੋ।
ਇਨਲਾਈਨ ਬਲਾਕ ਬਲਾਕ ਵਜੋਂ ਰੱਖੋ
ਪ੍ਰੋਫ਼ਾਈਲਾਂ ਸਰਟੀਫ਼ਿਕੇਟ ਅਤੇ ਕੁੰਜੀਆਂ ਇਨਲਾਈਨ ਰੱਖ ਸਕਦੀਆਂ ਹਨ, ਅਤੇ ਉਹ ਬਲਾਕ ਡੇਟਾ ਹਨ, ਕਾਨਫ਼ਿਗਰੇਸ਼ਨ ਨਹੀਂ। ਬਲਾਕ ਅੰਦਰ PEM ਲਾਈਨਾਂ ਉਹ ਆਪਸ਼ਨ ਨਹੀਂ ਜਿਨ੍ਹਾਂ ਨੂੰ ਸਮਤਲ, ਮੁੜ ਇੰਡੈਂਟ ਜਾਂ ਜੋੜਿਆ ਜਾਵੇ, ਅਤੇ ਬਲਾਕ ਦੇ ਨਿਸ਼ਾਨ ਆਪਣੀਆਂ ਲਾਈਨਾਂ ਉੱਤੇ ਰਹਿਣੇ ਚਾਹੀਦੇ ਹਨ।
ਇਨਲਾਈਨ ਬਲਾਕ ਨੂੰ ਅਪਾਰਦਰਸ਼ੀ ਖੇਤਰ ਮੰਨੋ: ਇਸਦੇ ਆਲੇ-ਦੁਆਲੇ ਦੀਆਂ ਆਪਸ਼ਨ ਲਾਈਨਾਂ ਸੋਧੋ, ਇਸਦੀ ਸਮੱਗਰੀ ਬਾਈਟ-ਦਰ-ਬਾਈਟ ਅਛੂਤ ਰੱਖੋ, ਅਤੇ ਇਸਨੂੰ ਕਦੇ ਵੀ ਜਨਤਕ ਸਹਾਇਤਾ ਥ੍ਰੈਡ ਵਿੱਚ ਨਾ ਪੇਸਟ ਕਰੋ। ਜੇ ਫਾਰਮੈਟਿੰਗ ਟੂਲ ਨੇ ਬਲਾਕ ਮੁੜ ਲਿਖਿਆ ਹੈ ਤਾਂ ਹੱਥ ਨਾਲ ਮੁਰੰਮਤ ਕਰਨ ਦੀ ਥਾਂ ਆਪਣੇ PKI ਤੋਂ ਬਹਾਲ ਕਰੋ।
ਟੈਂਪਲੇਟ ਨਹੀਂ, ਸਭ ਤੋਂ ਛੋਟਾ ਹਿੱਸਾ ਸੋਧੋ
ਲਾਲਚੀ ਮੁਰੰਮਤ ਇਹ ਹੈ ਕਿ ਪੂਰੀ ਫ਼ਾਈਲ ਨੂੰ ਉਸ ਟਿਊਟੋਰਿਅਲ ਦੀ ਕਾਨਫ਼ਿਗਰੇਸ਼ਨ ਨਾਲ ਬਦਲ ਦਿੱਤਾ ਜਾਵੇ ਜੋ „ਕੰਮ ਕਰਦਾ ਹੈ”। ਇਹ ਇੱਕ ਖਰਾਬ ਲਾਈਨ ਨੂੰ ਉਹਨਾਂ ਨੀਤੀ ਤਬਦੀਲੀਆਂ ਦੇ ਸਮੂਹ ਨਾਲ ਬਦਲਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਦੀ ਕਿਸੇ ਨੇ ਸਮੀਖਿਆ ਨਹੀਂ ਕੀਤੀ: ਵੱਖਰੇ DH ਪੈਰਾਮੀਟਰ, ਕੰਪਰੈਸ਼ਨ ਸੈਟਿੰਗਾਂ, ਸਾਈਫ਼ਰ ਚੋਣ, ਦੁਹਰਾਏ ਸਰੋਤੇ। ਮੂਲ ਸਮੱਸਿਆ ਛੋਟੀ ਅਤੇ ਸਥਾਨਕ ਹੈ, ਅਤੇ ਬਦਲ ਉਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਨਹੀਂ।
ਪ੍ਰੋਫ਼ਾਈਲ ਨੂੰ ਸੁਰੱਖਿਅਤ ਵਰਕਿੰਗ ਫ਼ਾਈਲ ਵਿੱਚ ਕਾਪੀ ਕਰੋ, ਉਸ ਕਾਪੀ ਵਿੱਚ ਲਾਈਨ ਸੀਮਾਵਾਂ ਸੋਧੋ, ਅਤੇ ਸੇਵਾ ਦੇ ਆਮ ਮਾਲਕ ਨੂੰ ਇਸਨੂੰ ਲੋਡ ਕਰਨ ਦਿਓ। ਫਿਰ ਇੰਸਟੈਂਸ ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਪਹਿਲੀ ਤਰੁੱਟੀ, ਜੇ ਹੋਵੇ, ਸ਼ੁਰੂ ਤੋਂ ਪੜ੍ਹੋ।
openvpn --config /etc/openvpn/server/lab.conf --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log
ਵਿਸ਼ਲੇਸ਼ਣ ਪੜਾਅ ਪਾਰ ਹੋਣ ਬਾਅਦ ਅਗਲੀ ਫੇਲ੍ਹ ਸ਼ਬਦਾਵਲੀ ਦੀ ਥਾਂ ਫ਼ਾਈਲ, ਸਰਟੀਫ਼ਿਕੇਟ ਜਾਂ ਸਾਈਫ਼ਰ ਬਾਰੇ ਹੋਵੇਗੀ, ਅਤੇ ਇਹ ਅਸਲ ਪ੍ਰਗਤੀ ਹੈ। ਵਰਕਿੰਗ ਕਾਪੀ ਅਤੇ ਕੀ ਜੋੜਿਆ ਗਿਆ ਇਸ ਬਾਰੇ ਇੱਕ ਲਾਈਨ ਦਾ ਨੋਟ ਰੱਖੋ; ਉਹੀ ਪੇਸਟ ਉਸੇ ਟੀਮ ਦੇ ਕਿਸੇ ਹੋਰ ਨਾਲ ਦੁਬਾਰਾ ਹੋਵੇਗਾ।