ਕਿੱਲ ਸਵਿੱਚ ਸਿਰਫ਼ IPv4 ਬਲਾਕ ਕਰਦਾ ਹੈ: IPv6 ਫਿਰ ਵੀ ਕਿਉਂ ਬਾਹਰ ਜਾਂਦਾ ਹੈ
IPv4 ਲਈ ਫਾਇਰਵਾਲ ਨਿਯਮਾਂ ਦਾ ਸੈੱਟ IPv6 ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦਾ। ਡਿਊਲ-ਸਟੈਕ ਡਿਵਾਈਸ 'ਤੇ ਟਨਲ ਡਿੱਗ ਸਕਦੀ ਹੈ ਜਦੋਂ ਕਿ ਇੱਕ ਐਪ ਇਸਦੇ ਆਲੇ-ਦੁਆਲੇ ਕੰਮ ਕਰਨ ਵਾਲਾ ਰਾਹ ਰੱਖਦੀ ਹੈ।
ਟਨਲ ਡਿੱਗਦੀ ਹੈ, ਕਿੱਲ ਸਵਿੱਚ ਦੱਸਦਾ ਹੈ ਕਿ ਉਸਨੇ ਕੰਮ ਕੀਤਾ, ਅਤੇ ਡਾਊਨਲੋਡ ਚੱਲਦਾ ਰਹਿੰਦਾ ਹੈ। IPv4 ਨਿਯਮਾਂ ਵਿੱਚ ਕੁਝ ਵੀ ਟੁੱਟਿਆ ਨਹੀਂ ਹੈ। ਐਪ ਬੱਸ ਅਜਿਹੇ ਰਾਹ 'ਤੇ ਚਲੀ ਗਈ ਜਿਸ ਲਈ ਉਹ ਨਿਯਮ ਕਦੇ ਲਿਖੇ ਹੀ ਨਹੀਂ ਸਨ।
ਡਿਊਲ-ਸਟੈਕ ਡਿਵਾਈਸਾਂ ਦੇ ਬਾਹਰ ਜਾਣ ਦੇ ਦੋ ਸੁਤੰਤਰ ਰਾਹ ਹੁੰਦੇ ਹਨ। ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਇੱਕ 'ਤੇ ਬਲਾਕ ਅੱਧਾ ਬਲਾਕ ਹੈ।
ਦੋ ਨਿਯਮ ਸੈੱਟ, ਦੋ ਡਿਫਾਲਟ
Linux 'ਤੇ, iptables ਅਤੇ ip6tables ਵੱਖ-ਵੱਖ ਨੀਤੀਆਂ ਵਾਲੀਆਂ ਵੱਖ-ਵੱਖ ਸਾਰਣੀਆਂ ਹਨ। IPv4 ਸਾਰਣੀ ਦੀਆਂ INPUT ਅਤੇ OUTPUT ਚੇਨਾਂ ਨੂੰ DROP 'ਤੇ ਸੈੱਟ ਕਰਨ ਨਾਲ IPv6 ਸਾਰਣੀ ਵਿੱਚ ਕੁਝ ਨਹੀਂ ਬਦਲਦਾ, ਜਿੱਥੇ ਡਿਫਾਲਟ ਆਮ ਤੌਰ 'ਤੇ ACCEPT ਹੁੰਦਾ ਹੈ। ਇਹੀ ਵੰਡ nftables ਵਿੱਚ ਵੀ ਹੈ, ਜਿੱਥੇ ਤੁਸੀਂ ਇੱਕ ਪਰਿਵਾਰ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਪਾ ਸਕਦੇ ਹੋ ਕਿ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਤੁਹਾਡੇ ਨਿਯਮ ਚੁੱਕਦਾ ਹੈ। ਇਹ ਅਸਮਾਨਤਾ ਆਮ ਹੈ, ਅਤੇ ਪੂਰੀ ਸਮੱਸਿਆ ਇਹੀ ਹੈ।
ਇਸ ਲਈ ਕਿੱਲ ਸਵਿੱਚ ਪੂਰਾ ਲੱਗ ਸਕਦਾ ਹੈ ਅਤੇ ਅੰਸ਼ਕ ਤੌਰ 'ਤੇ ਵਿਵਹਾਰ ਕਰ ਸਕਦਾ ਹੈ। IPv4 ਨਿਯਮ ਲਿਖਣ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਚੱਲੀ, ਕਾਊਂਟਰ ਵੱਧ ਰਹੇ ਹਨ, ਲਾਗ ਲਾਈਨ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ, ਅਤੇ IPv6 ਪੈਕੇਟ ਭੌਤਿਕ ਇੰਟਰਫੇਸ ਰਾਹੀਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਛੂਤ ਬਾਹਰ ਜਾਂਦਾ ਹੈ।
ਪੜ੍ਹੋ ਕਿ ਤੁਹਾਡਾ ਕਲਾਇੰਟ ਅਸਲ ਵਿੱਚ ਕੀ ਇੰਸਟਾਲ ਕਰਦਾ ਹੈ, ਮਾਰਕੀਟਿੰਗ ਪੇਜ ਕੀ ਵਾਅਦਾ ਕਰਦਾ ਹੈ ਨਹੀਂ। ਕੁਝ ਕਲਾਇੰਟ IPv6 ਨੂੰ ਟਨਲ ਵਿੱਚ ਰੂਟ ਕਰਦੇ ਹਨ, ਕੁਝ ਇਸਨੂੰ ਜਾਣਬੁੱਝ ਕੇ ਬਲਾਕ ਕਰਦੇ ਹਨ, ਅਤੇ ਕੁਝ ਪਲੇਟਫਾਰਮ-ਪੱਧਰੀ ਲਾਕਡਾਊਨ ਵੱਖਰਾ ਨਿਯਮ ਲਾਗੂ ਕਰਦੇ ਸਮੇਂ ਇਸਨੂੰ ਜਿਵੇਂ ਹੈ ਤਿਵੇਂ ਛੱਡ ਦਿੰਦੇ ਹਨ। ਇੱਥੇ ਭਰੋਸੇਯੋਗ ਇਕੋ ਸਰੋਤ ਵਿਕਰੇਤਾ ਦਾ ਦਸਤਾਵੇਜ਼ ਹੈ।
ਇੰਟਰਫੇਸ ਕਨਫਿਗਰੇਸ਼ਨ ਤੁਹਾਨੂੰ ਕੀ ਦੱਸਦੀ ਹੈ
wg-quick ਦਾ ਮੈਨੂਅਲ ਪੇਜ ਆਪਣੀ ਉਦਾਹਰਨ ਕਨਫਿਗਰੇਸ਼ਨ ਵਿੱਚ IPv6 ਨਿਯਮ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ, ਅਤੇ ਕਾਰਨ ਬਿਲਕੁਲ ਇਹੀ ਖਾਲੀ ਥਾਂ ਹੈ। ਉਦਾਹਰਨ ਸਜਾਵਟ ਨਹੀਂ ਹੈ। ਇਹ ਇਸ ਲਈ ਮੌਜੂਦ ਹੈ ਕਿਉਂਕਿ ਸਿਰਫ਼ IPv4 ਨਿਯਮ ਦੂਜੇ ਪਰਿਵਾਰ ਨੂੰ ਖੁੱਲ੍ਹਾ ਛੱਡ ਦੇਣਗੇ।
ਉਦਾਹਰਨ ਦਾ ਅੱਧਾ ਹਿੱਸਾ ਕਾਪੀ ਕਰਨ ਨਾਲ ਨੀਤੀ ਦਾ ਅੱਧਾ ਬਣਦਾ ਹੈ। ਇਹ ਇਸ ਲੀਕ ਦਾ ਸਭ ਤੋਂ ਆਮ ਮੂਲ ਹੈ। ਇੱਕ ਬਲਾਗ ਪੋਸਟ ਨੇ ਲੰਬਾਈ ਲਈ ਉਦਾਹਰਨ ਛੋਟੀ ਕੀਤੀ। ਫਿਰ ਛੋਟੀ ਕੀਤੀ ਆਵ੍ਰੱਤੀ ਉਹ ਟੈਂਪਲੇਟ ਬਣ ਗਈ ਜੋ ਸਭ ਨੇ ਦੁਬਾਰਾ ਵਰਤੀ।
# what is actually installed, per family?
sudo iptables -S OUTPUT | head -20
sudo ip6tables -S OUTPUT | head -20
# nftables: inspect each family separately
sudo nft list ruleset inet | head -40
# does this host even have a usable IPv6 path?
ip -6 route show default
ਜੇ ਦੂਜਾ ਕਮਾਂਡ ਆਗਿਆ ਦੇਣ ਵਾਲੀ ਨੀਤੀ ਛਾਪਦਾ ਹੈ ਜਦੋਂ ਕਿ ਪਹਿਲਾ DROP ਛਾਪਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਕਲਾਇੰਟ ਨੂੰ ਛੂਹੇ ਬਿਨਾਂ ਜਵਾਬ ਲੱਭ ਲਿਆ ਹੈ। ਇਹੀ ਅਸਮਾਨਤਾ ਬੱਗ ਹੈ।
ਇੱਕ ਖੋਜ ਪੂਰੀ ਕਹਾਣੀ ਕਿਉਂ ਨਹੀਂ ਹੈ
ਇੱਕ ਨਾਮ A ਰਿਕਾਰਡ ਅਤੇ AAAA ਰਿਕਾਰਡ ਦੋਵੇਂ ਵਾਪਸ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਸਾਰੀਆਂ ਐਪਾਂ ਇੱਕੋ ਤਰੀਕੇ ਨਾਲ ਨਹੀਂ ਚੁਣਦੀਆਂ। ਨੈੱਟਵਰਕ IPv6 ਦਿੰਦਾ ਹੈ ਤਾਂ ਬ੍ਰਾਊਜ਼ਰ ਇਸਨੂੰ ਤਰਜੀਹ ਦੇ ਸਕਦਾ ਹੈ ਅਤੇ ਅਸਫਲ ਹੋਣ 'ਤੇ ਪਿੱਛੇ ਹਟ ਸਕਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਬੈਕਗ੍ਰਾਊਂਡ ਸਿੰਕ ਜਾਂ ਅਪਡੇਟਰ ਆਪਣਾ ਰਿਜ਼ੋਲਵਰ ਅਤੇ ਆਪਣੀ ਤਰਜੀਹ ਵਰਤਦਾ ਹੈ। ਇਸ ਲਈ IPv4 'ਤੇ ਇੱਕ ਸਫਲ ਟੈਸਟ ਇੱਕ ਰਾਹ ਸਾਬਤ ਕਰਦਾ ਹੈ, ਨੀਤੀ ਨਹੀਂ।
ਨੈੱਟਵਰਕ ਤਬਦੀਲੀਆਂ ਵੀ ਜਵਾਬ ਬਦਲਦੀਆਂ ਹਨ। ਦੂਜੇ Wi-Fi ਨੈੱਟਵਰਕ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਣਾ, ਨੀਂਦ ਤੋਂ ਜਾਗਣਾ ਜਾਂ ਮੋਬਾਈਲ 'ਤੇ ਜਾਣਾ ਡਿਵਾਈਸ ਨੂੰ ਨਵਾਂ IPv6 ਪ੍ਰੀਫਿਕਸ ਦੇ ਸਕਦਾ ਹੈ, ਅਤੇ ਦਫ਼ਤਰ ਦੇ LAN 'ਤੇ ਕਾਫ਼ੀ ਲੱਗਣ ਵਾਲੀ ਨੀਤੀ ਇਸਨੂੰ ਕਵਰ ਨਹੀਂ ਕਰ ਸਕਦੀ।
ਟਨਲ ਬੰਦ ਹੋਣ ਵਾਲੀ ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਕਰੋ
ਜੁੜੇ ਹੋਣ ਸਮੇਂ ਜਾਂਚ ਕਰਨਾ ਦੱਸਦਾ ਹੈ ਕਿ ਟਨਲ ਕੰਮ ਕਰਦੀ ਹੈ। ਦਿਲਚਸਪ ਜਾਂਚ ਉਪਲਬਧ ਨਾ ਹੋਣ ਵਾਲੀ ਸਥਿਤੀ ਹੈ, ਕਿਉਂਕਿ ਤਦ ਹੀ ਕਿੱਲ ਸਵਿੱਚ ਨੇ ਟਿਕਣਾ ਹੁੰਦਾ ਹੈ। ਟਨਲ ਨੂੰ ਜਾਣਬੁੱਝ ਕੇ ਰੋਕੋ, ਫਿਰ ਤੁਸੀਂ ਜਿਸ ਐਪ ਦੀ ਰੱਖਿਆ ਕਰ ਰਹੇ ਹੋ ਉਸ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਮੰਜ਼ਿਲਾਂ ਅਜ਼ਮਾਓ।
# with the tunnel stopped, does anything still leave?
ip -6 route get 2606:4700:4700::1111
curl -6 -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://ipv6.example.net/
curl -4 -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://ipv4.example.net/
ਦੋਵੇਂ ਪਰਿਵਾਰਾਂ ਨੂੰ ਬੰਦ ਹੋ ਕੇ ਅਸਫਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇ IPv4 ਬੇਨਤੀ ਦਾ ਸਮਾਂ ਖ਼ਤਮ ਹੋ ਜਾਵੇ ਅਤੇ IPv6 ਬੇਨਤੀ ਸਥਿਤੀ ਕੋਡ ਵਾਪਸ ਕਰੇ, ਤਾਂ ਨੀਤੀ ਅਧੂਰੀ ਹੈ, ਅਤੇ ਟਨਲ ਦੀ ਕਿੰਨੀ ਵੀ ਦੁਬਾਰਾ ਜਾਂਚ ਇਸਨੂੰ ਨਹੀਂ ਬਦਲੇਗੀ।
ਉਸ ਜਾਂਚ ਵਿੱਚ ਦਸਤਾਵੇਜ਼ੀ ਛੋਟ ਵੀ ਰੱਖੋ। ਲੋਕਲ ਨੈੱਟਵਰਕ ਖੋਜ, DHCP ਨਵੀਨੀਕਰਨ ਜਾਂ VPN ਅੰਤ ਬਿੰਦੂ ਤੱਕ ਬੂਟਸਟ੍ਰੈਪ ਰਾਹ ਪਹੁੰਚਯੋਗ ਰਹਿਣ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ, ਅਤੇ ਉਹ ਛੋਟ ਨੀਤੀ ਵਿੱਚ ਨਾਮ ਲੈਣੇ ਚਾਹੀਦੇ ਹਨ, ਕਿਸੇ ਰੁਕਾਵਟ ਦੇ ਸਮੇਂ ਲੱਭਣ ਦੀ ਥਾਂ। ਟਨਲ ਵਾਪਸ ਨਾ ਆ ਸਕਣ ਕਾਰਨ ਅਸਫਲ ਹੋਣ ਵਾਲਾ ਲੀਕ ਟੈਸਟ ਸੁਰੱਖਿਆ ਖੋਜ ਨਹੀਂ ਹੈ, ਇਹ ਕਨੈਕਟੀਵਿਟੀ ਖੋਜ ਹੈ।