ਸਭ ਕੁਝ ਉਦੋਂ ਤੱਕ ਚੱਲਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਬਿਲਡ ਰਨਰ ਨੂੰ ਉਹੀ ਹੋਸਟ ਸਾਕਟ ਨਹੀਂ ਚਾਹੀਦਾ ਜੋ VPN ਗੈਸਟ ਵਰਤਦਾ ਹੈ, ਅਤੇ ਫਿਰ ਕੋਈ ਨਹੀਂ ਦੱਸ ਸਕਦਾ ਕਿ ਇੱਕ ਕੰਮ ਗੇਟਵੇ ਦੀਆਂ ਕੁੰਜੀਆਂ ਕਿਉਂ ਪੜ੍ਹ ਸਕਦਾ ਹੈ। ਸਭ ਕੁਝ ਇੱਕ ਮਸ਼ੀਨ ਉੱਤੇ ਇੰਸਟਾਲ ਹੋਇਆ ਸੀ ਕਿਉਂਕਿ ਉਹ ਫਿੱਟ ਬੈਠਦਾ ਸੀ, ਅਤੇ ਹਰ ਗੈਸਟ ਨੂੰ ਖੁੱਲ੍ਹੀ ਪਹੁੰਚ ਦਿੱਤੀ ਗਈ ਸੀ ਕਿਉਂਕਿ ਇਹ ਕੰਮ ਕਰਵਾਉਣ ਦਾ ਸਭ ਤੋਂ ਤੇਜ਼ ਤਰੀਕਾ ਸੀ। ਨਤੀਜਾ ਇੱਕ ਹੋਸਟ ਹੈ ਜਿਸਦੀ ਭਰੋਸਾ ਸੀਮਾ ਬਿਜਲੀ ਦੀ ਤਾਰ ਹੈ। ਭੂਮਿਕਾਵਾਂ ਵੰਡਣ ਵਿੱਚ ਓਨਾ ਕੰਮ ਨਹੀਂ ਲੱਗਦਾ ਜਿੰਨਾ ਸੁਣ ਕੇ ਲੱਗਦਾ ਹੈ, ਅਤੇ ਇਹ ਉਨ੍ਹਾਂ ਦੇ ਨਾਮ ਰੱਖਣ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ।

ਤਿੰਨ ਭੂਮਿਕਾਵਾਂ ਜੋ ਇਸ ਵੇਲੇ ਸਭ ਕੁਝ ਸਾਂਝਾ ਕਰਦੀਆਂ ਹਨ

VPN ਐਂਟਰੀ, ਨਿੱਜੀ ਸੇਵਾਵਾਂ ਦਾ ਸਮੂਹ ਅਤੇ ਬਿਲਡ ਰਨਰ ਵੱਖ-ਵੱਖ ਚੀਜ਼ਾਂ ਚਾਹੁੰਦੇ ਹਨ। ਪਹਿਲੀ ਨੂੰ ਇੱਕ ਜਨਤਕ ਪੋਰਟ ਅਤੇ ਨਿੱਜੀ ਪਾਸੇ ਦਾ ਸੰਕਰਾ ਨੈੱਟਵਰਕ ਚਾਹੀਦਾ ਹੈ। ਦੂਜੀ ਨੂੰ ਪੱਕਾ ਸਟੋਰੇਜ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਭੇਤ ਚਾਹੀਦੇ ਹਨ। ਤੀਜੀ ਉਹ ਕੋਡ ਚਲਾਉਂਦੀ ਹੈ ਜੋ ਕਿਸੇ ਹੋਰ ਨੇ ਲਿਖਿਆ ਹੈ।

ਤਿੰਨਾਂ ਨੂੰ ਇੱਕੋ ਪਹੁੰਚ ਦੇਣਾ ਹੀ ਲੱਛਣ ਨੂੰ ਉਲਝਾਉਣ ਵਾਲਾ ਬਣਾਉਂਦਾ ਹੈ, ਕਿਉਂਕਿ ਫਿਰ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਬਾਕੀ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰ ਸਕਦਾ ਹੈ। ਅਜਿਹਾ ਬਿਲਡ ਕੰਮ ਜੋ ਹਾਈਪਰਵਾਈਜ਼ਰ ਸਾਕਟ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ, ਉਹ ਕੰਮ ਹੈ ਜੋ VPN ਬੰਦ ਕਰ ਸਕਦਾ ਹੈ। ਸੇਵਾ ਗੈਸਟ ਜਿਸ ਕੋਲ ਪ੍ਰਬੰਧਨ ਨੈੱਟਵਰਕ ਤੱਕ ਰੂਟ ਹੈ, ਸਵਿੱਚ ਦੀ ਸੰਰਚਨਾ ਬਦਲ ਸਕਦਾ ਹੈ। ਸਮੱਸਿਆ ਅਧਿਕਾਰਾਂ ਦੀ ਹੈ, ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਸੂਚੀ ਸਿਰਫ਼ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਇਹ ਦਿਸਦੀ ਹੈ। ਭੂਮਿਕਾਵਾਂ ਦੇ ਨਾਮ ਪਹਿਲਾਂ ਰੱਖਣ ਨਾਲ ਹਰ ਅਧਿਕਾਰ ਨੂੰ ਰਹਿਣ ਦੀ ਥਾਂ ਮਿਲਦੀ ਹੈ।

ਹੇਠਾਂ ਦਿੱਤਾ ਖਾਕਾ ਉਸ ਵੰਡ ਲਈ ਸ਼ੁਰੂਆਤੀ ਬਿੰਦੂ ਹੈ, ਉੱਚ ਉਪਲਬਧਤਾ ਦਾ ਵਾਅਦਾ ਨਹੀਂ। ਇਸਨੂੰ ਜਾਂਚਣ ਵਾਲੀ ਧਾਰਨਾ ਸਮਝੋ, ਤਿਆਰ ਡਿਜ਼ਾਈਨ ਨਹੀਂ।

ਤਿੰਨ ਭੂਮਿਕਾਵਾਂ ਵੰਡੋ, ਤਿੰਨ ਪ੍ਰਕਿਰਿਆਵਾਂ ਨਹੀਂ

ਇੱਕ ਹੋਸਟ ਉੱਤੇ ਤਿੰਨ ਗੈਸਟ ਤਿੰਨ ਅਧਿਕਾਰ ਸਮੂਹ ਅਤੇ ਤਿੰਨ ਨੈੱਟਵਰਕ ਸਥਿਤੀਆਂ ਦਿੰਦੇ ਹਨ। ਉਹ ਤਿੰਨ ਫੇਲ ਹੋਣ ਵਾਲੇ ਡੋਮੇਨ ਨਹੀਂ ਦਿੰਦੇ, ਅਤੇ ਡਿਜ਼ਾਈਨ ਨੂੰ ਇਹ ਖੁੱਲ੍ਹ ਕੇ ਕਹਿਣਾ ਚਾਹੀਦਾ ਹੈ।

ਵੱਖਰਾਅ ਸਿਰਫ਼ ਤਦ ਹੀ ਕੰਮ ਕਰਦਾ ਹੈ ਜਦੋਂ ਇੱਕ ਗੈਸਟ ਵਿੱਚ ਸਮਝੌਤਾ ਬਾਕੀਆਂ ਨੂੰ ਆਪਣੇ ਆਪ ਪਹੁੰਚ ਨਾ ਦੇਵੇ, ਅਤੇ ਇਹ ਹਾਈਪਰਵਾਈਜ਼ਰ ਦੀ ਸੈਟਿੰਗ ਹੈ, ਨਾਮਕਰਨ ਦਾ ਰਿਵਾਜ ਨਹੀਂ। ਕਿਸੇ VM ਨੂੰ ਗੇਟਵੇ ਕਹਿਣਾ ਦੂਜੇ ਗੈਸਟ ਨੂੰ ਹੋਸਟ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਨਹੀਂ ਰੋਕਦਾ। ਹੋਸਟਨਾਮ ਦੀ ਥਾਂ ਵਰਚੁਅਲ ਸਵਿੱਚ ਦੀ ਸੰਰਚਨਾ ਪੜ੍ਹੋ, ਫਿਰ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਹਰ ਗੈਸਟ ਉੱਥੇ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ ਸੋਚਦੇ ਹੋ।

host
├─ vpn-gw      10.60.10.2/24   public 51820/udp only
├─ services    10.60.0.10/24   no route to the management network
└─ ci-runner   10.60.20.2/24   outbound only, no host socket

ਟੋਪੋਲੋਜੀ ਲਿਖੋ ਅਤੇ ਫਿਰ ਉਨ੍ਹਾਂ ਔਜ਼ਾਰਾਂ ਨਾਲ ਜਾਂਚੋ ਜੋ ਇਸਦੇ ਮਾਲਕ ਹਨ। ਗਲਤ ਬ੍ਰਿਜ ਉੱਤੇ ਦਿਸਣ ਵਾਲਾ ਗੈਸਟ ਇੱਕ ਖੋਜ ਹੈ, ਵੇਰਵਾ ਨਹੀਂ। ਕੋਈ ਵੀ ਸੇਵਾ ਸੰਰਚਨਾ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਨੈੱਟਵਰਕ ਠੀਕ ਕਰੋ।

VPN ਗੈਸਟ ਨੂੰ ਸਿਰਫ਼ ਆਪਣੇ ਹੀ ਦਰਵਾਜ਼ੇ ਖੋਲ੍ਹਣ ਦਿਓ

ਟਨਲ ਪੋਰਟ ਰਾਊਟਰ ਉੱਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ ਅਤੇ ਹੋਰ ਕੁਝ ਨਹੀਂ। ਗੈਸਟ ਪ੍ਰਬੰਧਨ ਪੋਰਟ ਪ੍ਰਬੰਧਨ ਮਾਰਗ ਉੱਤੇ ਹੁੰਦੇ ਹਨ, ਇੰਟਰਨੈੱਟ ਉੱਤੇ ਨਹੀਂ, ਅਤੇ ਹਾਈਪਰਵਾਈਜ਼ਰ ਦਾ ਆਪਣਾ ਇੰਟਰਫੇਸ ਵੀ ਉੱਥੇ ਹੀ ਹੁੰਦਾ ਹੈ।

ਨਿੱਜੀ ਪਾਸੇ ਦੇ ਨੈੱਟਵਰਕ ਨੂੰ ਉਹ ਸੇਵਾਵਾਂ ਤੱਕ ਪਹੁੰਚਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਦੂਰ ਦੇ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਚਾਹੀਦੀਆਂ ਹਨ ਅਤੇ ਉੱਥੇ ਹੀ ਰੁਕਣਾ ਚਾਹੀਦਾ ਹੈ। ਐਪਲੀਕੇਸ਼ਨ ਪ੍ਰਮਾਣਿਕਤਾ ਚਾਲੂ ਰਹਿੰਦੀ ਹੈ, ਕਿਉਂਕਿ ਟਨਲ ਢੋਆ-ਢੁਆਈ ਹੈ, ਲੌਗਇਨ ਨਹੀਂ। VPN ਗੈਸਟ ਦੀ ਰੂਟਿੰਗ ਸਾਰਣੀ ਓਨੀ ਛੋਟੀ ਰੱਖੋ ਕਿ ਇੱਕ ਵਾਕ ਵਿੱਚ ਦੱਸ ਸਕੋ। ਜੇ ਤੁਸੀਂ ਇਸਨੂੰ ਓਨਾ ਸਧਾਰਨ ਨਹੀਂ ਦੱਸ ਸਕਦੇ, ਤਾਂ ਸੀਮਾ ਪਹਿਲਾਂ ਹੀ ਧੁੰਦਲੀ ਹੋ ਚੁੱਕੀ ਹੈ।

virsh net-list --all
virsh net-dumpxml lab-private
sudo nft list ruleset | grep -n -E '51820|10.60'

ਹੋਸਟ ਉੱਤੇ ਸੁਣਨ ਵਾਲੀ ਹਰ ਚੀਜ਼ ਜੋ ਪ੍ਰਬੰਧਨ ਲਈ ਲੋੜੀਂਦੀ ਨਹੀਂ, ਉਸਨੂੰ ਬਿਲਕੁਲ ਨਹੀਂ ਸੁਣਨਾ ਚਾਹੀਦਾ। ਇਸ ਵਿੱਚ ਹਾਈਪਰਵਾਈਜ਼ਰ API ਵੀ ਸ਼ਾਮਲ ਹੈ, ਜਿਸਨੂੰ ਜਨਤਕ ਇੰਟਰਫੇਸ ਉੱਤੇ ਖੁੱਲ੍ਹਾ ਛੱਡਣਾ ਸੌਖਾ ਹੈ।

ਬਿਲਡ ਕੰਮਾਂ ਨੂੰ ਵੱਖਰੀ ਕਿਸਮ ਦੀ ਸੀਮਾ ਚਾਹੀਦੀ ਹੈ

CI ਕੰਮ ਰਿਪੋਜ਼ਟਰੀ-ਨਿਯੰਤਰਿਤ ਕਮਾਂਡਾਂ ਚਲਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਇਸਦਾ ਭਰੋਸਾ ਇਸ ਗੱਲ ਉੱਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਕੋਡ ਕੌਣ ਪੁਸ਼ ਕਰ ਸਕਦਾ ਹੈ। ਸ਼ੈੱਲ ਐਗਜ਼ੀਕਿਊਟਰ ਉਹ ਕਮਾਂਡਾਂ ਹੋਸਟ ਉੱਤੇ ਰਨਰ ਦੇ ਵਰਤੋਂਕਾਰ ਵਜੋਂ ਚਲਾਉਂਦਾ ਹੈ, ਜੋ ਉਪਲਬਧ ਸਭ ਤੋਂ ਚੌੜੀ ਸੀਮਾ ਹੈ।

ਕੰਟੇਨਰ ਐਗਜ਼ੀਕਿਊਟਰ ਸੰਕਰੇ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਵਾਲਾ ਕੰਟੇਨਰ ਉਨ੍ਹਾਂ ਸੰਕਰਿਆਂ ਵਿੱਚੋਂ ਨਹੀਂ ਹੈ। ਰਨਰ ਨੂੰ ਆਪਣੇ ਗੈਸਟ ਵਿੱਚ ਆਪਣੇ ਨੈੱਟਵਰਕ ਦਾਇਰੇ ਨਾਲ ਰੱਖੋ, ਅਤੇ ਇਸਨੂੰ ਸਿਰਫ਼ ਉਹੀ ਆਰਟੀਫੈਕਟ ਅਤੇ ਤੈਨਾਤੀ ਪਹੁੰਚ ਦਿਓ ਜੋ ਕੰਮਾਂ ਨੂੰ ਚਾਹੀਦੀ ਹੈ। ਇੱਕ ਵਾਰ ਵਰਤੋਂ ਵਾਲੇ ਵਰਕਰ ਰੱਖੇ ਹੋਏ ਸਟੇਟ ਨੂੰ ਘਟਾਉਂਦੇ ਹਨ; ਉਹ ਪਹੁੰਚਯੋਗਤਾ ਜਾਂ ਭੇਤਾਂ ਦੇ ਖੁਲਾਸੇ ਨੂੰ ਨਹੀਂ ਘਟਾਉਂਦੇ। ਇਹਨਾਂ ਦੋਹਾਂ ਨੂੰ ਅਜੇ ਵੀ ਸਪੱਸ਼ਟ ਸੀਮਾਵਾਂ ਚਾਹੀਦੀਆਂ ਹਨ।

ਸੇਵਾ ਗੈਸਟ ਡੇਟਾ ਦਾ ਮਾਲਕ ਹੈ, ਇਸ ਲਈ ਉਸਦੀ ਬੈਕਅੱਪ ਯੋਜਨਾ ਹੀ ਕੰਮ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਰਿਪੋਜ਼ਟਰੀਆਂ, ਅੱਪਲੋਡ ਅਤੇ ਡੇਟਾਬੇਸ ਇੱਕੋ ਸਮਾਂ-ਸਾਰਣੀ ਵਿੱਚ ਰੱਖੋ। ਜੌਬ ਸਥਿਤੀ ਪੜ੍ਹਨ ਦੀ ਥਾਂ ਰੀਸਟੋਰ ਦੀ ਜਾਂਚ ਕਰੋ।

ਉਸ ਨਾਕਾਮੀ ਦੀ ਯੋਜਨਾ ਬਣਾਓ ਜੋ ਤਿੰਨੇ ਸਾਂਝੀ ਕਰਦੇ ਹਨ

ਇੱਕ ਹੋਸਟ ਇੱਕ ਫੇਲ ਹੋਣ ਵਾਲਾ ਡੋਮੇਨ ਹੈ। ਰੀਬੂਟ ਟਨਲ ਅਤੇ ਹਰ ਨਿੱਜੀ ਸੇਵਾ ਨੂੰ ਇੱਕੋ ਪਲ ਵਿੱਚ ਹਟਾ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਠੀਕ ਤਦ ਹੀ ਅੰਦਰ ਆਉਣ ਦਾ ਰਸਤਾ ਸਭ ਤੋਂ ਵੱਧ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ।

ਕੰਸੋਲ ਪਹੁੰਚ ਰੱਖੋ ਜੋ VPN ਗੈਸਟ ਉੱਤੇ ਨਿਰਭਰ ਨਾ ਕਰੇ, ਭਾਵੇਂ ਉਹ ਭੌਤਿਕ ਕੰਸੋਲ, ਬੈਂਡ ਤੋਂ ਬਾਹਰ ਦਾ ਪ੍ਰਬੰਧਨ ਇੰਟਰਫੇਸ ਜਾਂ ਪ੍ਰਦਾਤਾ ਦਾ ਕੰਸੋਲ ਹੋਵੇ। ਉਸੇ ਡਿਸਕ ਉੱਤੇ ਰੱਖਿਆ ਸਨੈਪਸ਼ਾਟ ਸੁਤੰਤਰ ਕਾਪੀ ਨਹੀਂ ਹੈ, ਅਤੇ ਨਾ ਹੀ ਉਹ ਬੈਕਅੱਪ ਹੈ ਜੋ ਉਸੇ ਗੈਸਟ ਦੇ ਅੰਦਰ ਚੱਲਦਾ ਹੈ ਜਿਸਦੀ ਉਹ ਰੱਖਿਆ ਕਰਦਾ ਹੈ। ਫਿਰ ਠੰਢਾ ਸਟਾਰਟ ਇੱਕ ਕ੍ਰਮ ਵਜੋਂ ਜਾਂਚੋ, ਚੈੱਕਲਿਸਟ ਵਜੋਂ ਨਹੀਂ: ਹੋਸਟ, ਵਰਚੁਅਲ ਨੈੱਟਵਰਕ, ਟਨਲ ਮਾਰਗ ਅਤੇ ਇੱਕ ਨਾਮਵਰ ਐਪਲੀਕੇਸ਼ਨ ਆਮ ਖਾਤੇ ਹੇਠ।

virsh list --all
systemctl is-active libvirtd
curl -sS -m 5 -o /dev/null -w '%{http_code}\n' https://10.60.0.10/
ss -ltnp | grep -E ':51820|:443'

ਪ੍ਰਕਿਰਿਆ ਸ਼ੁਰੂ ਹੋਣ ਦਾ ਕ੍ਰਮ ਰੂਟਾਂ ਅਤੇ DNS ਬਾਰੇ ਕੁਝ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ, ਇਸ ਲਈ ਯੂਨਿਟ ਸਥਿਤੀਆਂ ਦੀ ਥਾਂ ਮਾਰਗ ਦੀ ਜਾਂਚ ਕਰੋ। ਮਾਰਗ ਹੀ ਉਹ ਚੀਜ਼ ਹੈ ਜੋ ਦੂਰ ਦੇ ਵਰਤੋਂਕਾਰ ਨੂੰ ਅਸਲ ਵਿੱਚ ਚਾਹੀਦੀ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ