ਦੋ VPN ਕਲਾਇੰਟ, ਦੋ ਜਨਤਕ ਪਤੇ: SNAT ਮਿਲਾਓ
ਸਰੋਤ-ਆਧਾਰਿਤ SNAT ਇੱਕ ਜਨਤਕ ਪਤਾ ਚੁਣ ਸਕਦਾ ਹੈ, ਪਰ ਸਿਰਫ਼ ਉਦੋਂ ਤੱਕ ਜਦੋਂ ਗੇਟਵੇ ਕਲਾਇੰਟਾਂ ਨੂੰ ਵੱਖਰਾ ਕਰ ਸਕਦਾ ਹੈ। ਨਿਯਮ ਲਿਖਣ ਤੋਂ ਪਹਿਲਾਂ ਬਚਿਆ ਸਰੋਤ ਜਾਂਚੋ।
ਦੋ VPN ਕਲਾਇੰਟ ਦੋ ਵੱਖ-ਵੱਖ ਜਨਤਕ IPv4 ਪਤਿਆਂ ਰਾਹੀਂ ਬਾਹਰ ਜਾ ਸਕਦੇ ਹਨ, ਅਤੇ ਇਹ ਕਰਨ ਵਾਲਾ ਨਿਯਮ ਜ਼ਿਆਦਾਤਰ ਲੋਕਾਂ ਦੀ ਉਮੀਦ ਨਾਲੋਂ ਛੋਟਾ ਹੈ। ਇਸ ਨੂੰ ਕੰਮ ਕਰਨ ਵਾਲੀ ਚੀਜ਼ iptables ਦਾ ਸੰਟੈਕਸ ਨਹੀਂ, ਸਗੋਂ ਪੈਕੇਟ ਦੀ ਉਹ ਹਾਲਤ ਹੈ ਜਦੋਂ ਉਹ ਐਗਰੈਸ ਚੇਨ ਤੱਕ ਪਹੁੰਚਦਾ ਹੈ: ਉੱਥੇ ਦਾ ਸਰੋਤ ਪਤਾ ਅਜੇ ਵੀ ਕਲਾਇੰਟਾਂ ਨੂੰ ਵੱਖਰਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਜੇ ਪਹਿਲਾਂ ਦੇ masquerade ਨੇ ਦੋਵਾਂ ਨੂੰ ਪਹਿਲਾਂ ਹੀ ਇੱਕ ਪਤੇ ’ਤੇ ਜੋੜ ਦਿੱਤਾ ਹੈ, ਤਾਂ ਕੋਈ ਵੀ ਪ੍ਰਤੀ-ਕਲਾਇੰਟ ਨਿਯਮ ਉਹ ਫ਼ਰਕ ਵਾਪਸ ਨਹੀਂ ਲਿਆ ਸਕਦਾ। ਪਹਿਲਾਂ ਇਹ ਸਵਾਲ ਤੈਅ ਕਰੋ, ਫਿਰ ਅਨੁਵਾਦ ਲਿਖੋ।
ਕਿਹੜੀ ਪਛਾਣ ਗੇਟਵੇ ਤੱਕ ਬਚਦੀ ਹੈ
ਨਿਯਮ ਪੈਕੇਟ ਦੇ ਸਰੋਤ ਪਤੇ ਨਾਲ ਮਿਲਦਾ ਹੈ, VPN ਵਰਤੋਂਕਾਰ ਨਾਂ ਨਾਲ ਨਹੀਂ ਅਤੇ ਉਸ ਨਾਂ ਨਾਲ ਵੀ ਨਹੀਂ ਜੋ ਕਲਾਇੰਟ ਐਪ ਦਿਖਾਉਂਦੀ ਹੈ। ਰਸਤੇ ਵਿੱਚ ਪਹਿਲਾਂ ਪੈਕੇਟ ਦਾ ਜੋ ਵੀ ਰੂਪਾਂਤਰਣ ਕਰਦਾ ਹੈ, ਉਹ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ ਨਿਯਮ ਹਜੇ ਵੀ ਕੀ ਦੇਖ ਸਕਦਾ ਹੈ। nat ਟੇਬਲ ਕ੍ਰਮ ਵਿੱਚ ਚਲਾਓ ਅਤੇ ਉਹ ਬਿੰਦੂ ਲੱਭੋ ਜਿੱਥੇ ਸਰੋਤ ਹਜੇ ਵੀ ਹਰ ਕਲਾਇੰਟ ਲਈ ਵੱਖਰਾ ਹੈ।
iptables -t nat -S POSTROUTING
ਉਹ ਸੂਚੀ ਉੱਪਰੋਂ ਪੜ੍ਹੋ। ਉੱਪਰ ਦੇ ਨੇੜੇ ਦਾ masquerade ਨਿਯਮ ਹਰ ਮਿਲਦੇ ਫ਼ਲੋ ਲਈ ਸਰੋਤ ਦੁਬਾਰਾ ਲਿਖਦਾ ਹੈ, ਅਤੇ ਉਸ ਤੋਂ ਬਾਅਦ ਰੱਖੀਆਂ ਪ੍ਰਤੀ-ਕਲਾਇੰਟ ਐਂਟਰੀਆਂ ਉਸ ਪਤੇ ਨਾਲ ਮਿਲਦੀਆਂ ਹਨ ਜੋ ਹੁਣ ਨਹੀਂ ਹੈ। ਜਦੋਂ ਦੋ LAN ਡਿਵਾਈਸ ਇੱਕ ਟਨਲ ਸਾਂਝੀ ਕਰਦੇ ਹਨ ਅਤੇ ਇੱਕ ਹੀ ਅੰਦਰੂਨੀ ਪਤੇ ਵਜੋਂ ਆਉਂਦੇ ਹਨ, ਤਾਂ ਫਾਇਰਵਾਲ ਤੋਂ ਪਹਿਲਾਂ ਡਿਜ਼ਾਈਨ ਬਦਲਣਾ ਪਵੇਗਾ: ਉਨ੍ਹਾਂ ਦੀਆਂ ਸਰੋਤ ਸ਼੍ਰੇਣੀਆਂ ਵੱਖਰੀਆਂ ਰੱਖੋ ਜਾਂ ਹਰ ਇੱਕ ਨੂੰ ਆਪਣਾ ਅੰਦਰੂਨੀ ਪਤਾ ਦਿਓ।
ਅੰਦਰੂਨੀ ਪਤੇ ਦੀ ਅਲਾਟਮੈਂਟ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਲਾਇੰਟ ਨਾਲ ਜੋੜੋ। ਉਹ ਪਤਾ ਕਿਸੇ ਹੋਰ ਡਿਵਾਈਸ ਨੂੰ ਦੇਣਾ ਐਗਰੈਸ ਨੀਤੀ ਵੀ ਸੌਂਪ ਦੇਣਾ ਹੈ, ਅਤੇ ਸਰੋਤ ਰੂਪਾਂਤਰਣ ਆਪਣੇ ਆਪ ਵਿੱਚ ਪਛਾਣ ਦਾ ਸਬੂਤ ਨਹੀਂ।
ਰੂਪਾਂਤਰਣ ਪਤਾ ਨਹੀਂ ਘੜ ਸਕਦਾ
ਹਰ ਜਨਤਕ ਪਤਾ ਇਸ ਐਗਰੈਸ ਬਿੰਦੂ ਨੂੰ ਦਿੱਤਾ ਜਾਂ ਇੱਥੇ ਰੂਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਜਵਾਬਾਂ ਨੂੰ ਇੱਥੇ ਵਾਪਸ ਆਉਣ ਦਾ ਰਾਹ ਲੱਭਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੋ ਨਿਯਮ ਅਜਿਹੇ ਪਤੇ ਤੋਂ ਟ੍ਰੈਫ਼ਿਕ ਭੇਜਦਾ ਹੈ ਜਿੱਥੇ ਕੋਈ ਵਾਪਸ ਰੂਟ ਨਹੀਂ ਕਰਦਾ, ਉਹ ਦੂਰ ਦੇ ਸਿਰੇ ’ਤੇ ਸੁੱਟ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਜਾਂ ਅਜਿਹੇ ਹੋਸਟ ਨੂੰ ਜਵਾਬ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਜਿਸਨੇ ਕਦੇ ਮੰਗਿਆ ਨਹੀਂ। ਕਲਾਉਡ ਪ੍ਰਦਾਤਾ ਦੇ ਇੰਸਟੈਂਸ ਦਾ ਜਨਤਕ ਪਤਾ ਆਮ ਤੌਰ ’ਤੇ ਪੈਕੇਟ ਨਿਕਲਣ ਤੋਂ ਪਹਿਲਾਂ ਨਿੱਜੀ ਇੰਟਰਫ਼ੇਸ ਪਤੇ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ SNAT ਸਰੋਤ ਉਹ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਪ੍ਰਦਾਤਾ ਸਵੀਕਾਰ ਕਰੇਗਾ, ਕੰਸੋਲ ਜੋ ਮੁੱਲ ਦਿਖਾਉਂਦਾ ਹੈ ਉਹ ਨਹੀਂ। ਪ੍ਰਦਾਤਾ ਦਾ ਪਤਾ ਮਾਡਲ ਪੜ੍ਹੋ ਅਤੇ ਹਰ ਪੈਕੇਟ ਵਿੱਚ ਜਨਤਕ ਮੁੱਲ ਕਾਪੀ ਕਰਨ ਦੀ ਥਾਂ ਉਸ ਦੀ ਪਾਲਣਾ ਕਰੋ।
ਵਿਵਹਾਰ ਵਿੱਚ ਇਸਦਾ ਮਤਲਬ ਹੈ ਫਾਇਰਵਾਲ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰਦਾਤਾ ਦੇ ਕੰਸੋਲ ਵਿੱਚ ਰੂਟ ਕੀਤਾ ਪ੍ਰੀਫ਼ਿਕਸ ਜਾਂਚਣਾ, ਅਤੇ ਜਦੋਂ ਮੈਪਿੰਗ ਇੱਕ-ਤੋਂ-ਇੱਕ ਹੋਵੇ ਤਾਂ ਨਿੱਜੀ ਇੰਟਰਫ਼ੇਸ ਪਤੇ ਨੂੰ ਰੂਪਾਂਤਰਣ ਸਰੋਤ ਵਜੋਂ ਵਰਤਣਾ। ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਉਦਾਹਰਨਾਂ ਵਿੱਚ ਵਰਤੇ ਪਤੇ ਦਸਤਾਵੇਜ਼ੀ ਸ਼੍ਰੇਣੀਆਂ ਤੋਂ ਆਏ ਹਨ, ਇਸ ਲਈ ਪਹਿਲਾਂ ਬਦਲਣ ਵਾਲੀ ਚੀਜ਼ ਪਤੇ ਦਾ ਟੈਕਸਟ ਆਪ ਹੈ।
ਆਮ masquerade ਤੋਂ ਪਹਿਲਾਂ ਸੰਮਿਲਿਤ ਕਰੋ
ਕੁਝ ਵੀ ਜੋੜਨ ਤੋਂ ਪਹਿਲਾਂ ਐਗਰੈਸ ਇੰਟਰਫ਼ੇਸ ਅਤੇ ਮੌਜੂਦਾ ਚੇਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ। ਪਹਿਲਾ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਨਿਯਮ ਕਿਹੜੇ ਪੈਕੇਟਾਂ ਨਾਲ ਮਿਲ ਸਕਦਾ ਹੈ, ਅਤੇ ਦੂਜਾ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਇਸਦੇ ਸਾਹਮਣੇ ਪਹਿਲਾਂ ਹੀ ਕੀ ਖੜ੍ਹਾ ਹੈ।
ip -4 route show default
iptables -t nat -L POSTROUTING -n -v --line-numbers
ਪਹਿਲਾ ਕਮਾਂਡ ਉਸ ਇੰਟਰਫ਼ੇਸ ਦਾ ਨਾਂ ਦੱਸਦਾ ਹੈ ਜਿਸ ਰਾਹੀਂ ਇੰਟਰਨੈੱਟ ਵੱਲ ਜਾਣ ਵਾਲਾ ਪੈਕੇਟ ਅਸਲ ਵਿੱਚ ਨਿਕਲਦਾ ਹੈ। ਦੂਜਾ ਲਾਈਨ ਨੰਬਰਾਂ ਸਮੇਤ ਚੇਨ ਛਾਪਦਾ ਹੈ। ਆਮ masquerade ਐਂਟਰੀ ਉਹ ਲਾਈਨ ਹੈ ਜਿਸ ਦੇ ਉੱਪਰ ਰਹਿਣਾ ਹੈ।
iptables -t nat -I POSTROUTING 1 -s 10.88.4.20/32 -o ens3 -j SNAT --to-source 198.51.100.77
iptables -t nat -I POSTROUTING 1 -s 10.88.4.21/32 -o ens3 -j SNAT --to-source 198.51.100.78
ਉੱਪਰ ਦੇ ਦੋ ਨਿਯਮ ਹਰ ਇੱਕ ਇੱਕ ਅੰਦਰੂਨੀ ਪਤੇ ਨਾਲ ਮਿਲਦੇ ਹਨ, ਮਿਲਾਨ ਨੂੰ ਐਗਰੈਸ ਇੰਟਰਫ਼ੇਸ ਤੱਕ ਸੀਮਿਤ ਕਰਦੇ ਹਨ ਅਤੇ ਸਰੋਤ ਸਪਸ਼ਟ ਰੂਪ ਵਿੱਚ ਸੈੱਟ ਕਰਦੇ ਹਨ। ਜੋੜਨ ਦੀ ਥਾਂ ਸੰਮਿਲਿਤ ਕਰੋ: ਸਥਾਨ 1 ’ਤੇ ਉਹ masquerade ਲਾਈਨ ਤੋਂ ਪਹਿਲਾਂ ਮੁਲਾਂਕਣ ਹੁੰਦੇ ਹਨ। ਦੋਵਾਂ ਵਿਚਕਾਰ ਕ੍ਰਮ ਮਹੱਤਵਪੂਰਨ ਨਹੀਂ ਕਿਉਂਕਿ ਉਨ੍ਹਾਂ ਦੇ ਸਰੋਤ ਵੱਖਰੇ ਹਨ। ਰੂਟ ਕਮਾਂਡ ਨੇ ਜੋ ਦੱਸਿਆ ਉਸ ਨਾਲ ens3 ਬਦਲੋ, ਅਤੇ ਹੋਰ ਫਾਇਰਵਾਲ ਮੈਨੇਜਰਾਂ ਨੂੰ ਉਹਨਾਂ ਹੀ ਹੁੱਕਾਂ ਤੋਂ ਦੂਰ ਰੱਖੋ, ਕਿਉਂਕਿ ਦੋ ਸੰਦਾਂ ਦਾ ਇੱਕ ਟੇਬਲ ਲਿਖਣਾ ਸਹੀ ਨਿਯਮ ਦਾ ਅਸਰ ਨ ਹੋਣ ਦਾ ਆਮ ਕਾਰਨ ਹੈ।
ਨਵੇਂ ਫ਼ਲੋ ਨਾਲ ਸਰੋਤ ਸਾਬਤ ਕਰੋ
ਸਟੇਟਫੁਲ NAT ਫ਼ਲੋ ਸ਼ੁਰੂ ਹੋਣ ’ਤੇ ਰੂਪਾਂਤਰਣ ਬੰਨ੍ਹਦਾ ਹੈ ਅਤੇ ਬਾਅਦ ਦੇ ਪੈਕੇਟਾਂ ਲਈ ਉਸਨੂੰ ਦੁਬਾਰਾ ਵਰਤਦਾ ਹੈ, ਇਸ ਲਈ ਬਦਲਾਅ ਤੋਂ ਪਹਿਲਾਂ ਖੋਲ੍ਹਿਆ ਸੈਸ਼ਨ ਬਦਲਾਅ ਤੋਂ ਬਾਅਦ ਵੀ ਆਪਣਾ ਪੁਰਾਣਾ ਸਰੋਤ ਰੱਖਦਾ ਹੈ। ਸਿਰਫ਼ ਨਵਾਂ ਸ਼ੁਰੂ ਕੀਤਾ ਕਨੈਕਸ਼ਨ ਹੀ ਨਿਯਮ ਸਾਬਤ ਕਰਦਾ ਹੈ।
conntrack -L -s 10.88.4.20 -p tcp --dport 443
ਉਸ ਐਂਟਰੀ ਦੀ ਜਵਾਬ ਦਿਸ਼ਾ ਪੜ੍ਹੋ: ਇਸਦਾ ਟਿਕਾਣਾ ਉਹ ਪਤਾ ਹੈ ਜਿਸਨੂੰ ਦੂਰ ਦਾ ਸਿਰਾ ਸਰੋਤ ਵਜੋਂ ਦੇਖਦਾ ਹੈ। ਇਸਦੀ ਤੁਲਨਾ ਆਪਣੇ ਇੱਛਿਤ ਜਨਤਕ ਪਤੇ ਨਾਲ ਕਰੋ, ਅਤੇ ਪੁਰਾਣਾ ਪਤਾ ਲੈ ਕੇ ਆਉਣ ਵਾਲੀ ਐਂਟਰੀ ਨੂੰ ਟੁੱਟੇ ਨਿਯਮ ਦੀ ਥਾਂ ਬਹੁਤ ਜਲਦੀ ਸ਼ੁਰੂ ਹੋਏ ਫ਼ਲੋ ਦਾ ਸਬੂਤ ਮੰਨੋ। ਕਲਾਇੰਟ ਨੂੰ ਨਵਾਂ ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹਣ ਲਈ ਕਹੋ, ਫਿਰ ਕਵੈਰੀ ਦੁਹਰਾਓ। ਪਰਖ ਨੂੰ ਜ਼ਬਰਦਸਤੀ ਕਰਨ ਲਈ ਪੂਰਾ ਟਰੈਕਿੰਗ ਟੇਬਲ ਫਲਸ਼ ਕਰਨਾ ਗੇਟਵੇ ’ਤੇ ਹਰ ਹੋਰ ਸੈਸ਼ਨ ਵਿੱਚ ਵਿਘਨ ਪਾਉਂਦਾ ਹੈ।
ਰੂਪਾਂਤਰਣ ਹਜੇ ਵੀ ਰੂਟ ਨਹੀਂ ਚੁਣਦਾ, ਫਿਲਟਰ ਰਾਹੀਂ ਫ਼ਲੋ ਨਹੀਂ ਲੰਘਾਉਂਦਾ ਅਤੇ ਇਨਬਾਊਂਡ ਸੇਵਾ ਪ੍ਰਕਾਸ਼ਿਤ ਨਹੀਂ ਕਰਦਾ। ਗਲਤ ਰੂਟ ਅਤੇ ਗੁੰਮ ਆਗਿਆ ਨਿਯਮ ਸੰਪੂਰਨ SNAT ਨਿਯਮ ਤੋਂ ਬਾਅਦ ਵੀ ਅਸਫਲ ਰਹਿੰਦੇ ਹਨ। IPv6 ਅਤੇ ਕੋਈ ਵੀ ਦੂਜੇ ਦਰਜੇ ਦਾ ਐਗਰੈਸ ਰਾਹ ਵੀ ਜਾਂਚੋ, ਫਿਰ ਅਗਲਾ ਬਦਲਾਅ ਨਿਯਮ ਦੇ ਟੈਕਸਟ ਦੀ ਥਾਂ ਮੈਪਿੰਗ ਤੋਂ ਸ਼ੁਰੂ ਹੋਵੇ ਇਸ ਲਈ ਅੰਦਰੂਨੀ-ਤੋਂ-ਜਨਤਕ ਜੋੜੇ ਫਾਇਰਵਾਲ ਦੇ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਨੋਟ ਕਰੋ।