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

ਪੈਕੇਟ ਪੜ੍ਹਨ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਸੁੱਟਣਾ ਹੁੰਦਾ ਹੈ

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

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

ਸ਼ੀਸ਼ੇ ਦੀ ਦਿਸ਼ਾ ਦਾ ਵੀ ਉਹੀ ਰੂਪ ਹੈ: ਕਲਾਇੰਟ ਦਫ਼ਤਰ ਵੱਲ ਸ਼ੁਰੂ ਹੋਣ ਉੱਤੇ ਉਸੇ ਕਾਰਨ ਦਫ਼ਤਰ ਵੱਲ ਜਵਾਬ ਸੁੱਟੇ ਜਾ ਸਕਦੇ ਹਨ। ਸਿਰਫ਼ ਇੱਕ ਦਿਸ਼ਾ ਵਿੱਚ ਜਾਂਚਿਆ ਸੁਧਾਰ ਆਮ ਤੌਰ ਉੱਤੇ ਦੂਜੀ ਟਿਕਟ ਬਣ ਕੇ ਵਾਪਸ ਆਉਂਦਾ ਹੈ।

ਕੋਈ ਵੀ sysctl ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਲਾਗੂ ਮੋਡ ਸਿੱਧ ਕਰੋ

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

tcpdump -ni tun0 icmp and host 192.168.80.25
ip route get 192.168.80.25
sysctl net.ipv4.conf.all.rp_filter net.ipv4.conf.tun0.rp_filter

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

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

ਹਰ rp_filter ਮੋਡ ਅਸਲ ਵਿੱਚ ਕੀ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ

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

ValueNameAcceptsStill rejects
0offany source at allnothing on this check
1stricta source routed back out the arrival interfacea source whose route points elsewhere
2loosea source with any route in the tablea source with no route at all

ਇੱਥੇ ਮਹੱਤਵਪੂਰਨ ਕਤਾਰ ਢਿੱਲੀ ਹੈ, ਅਤੇ ਉਹ ਜੋ ਉਹ ਅਜੇ ਵੀ ਰੱਦ ਕਰਦੀ ਹੈ। ਤੁਹਾਡੀ ਸਾਰਣੀ ਵਿੱਚ ਕਿਤੇ ਵੀ ਰਾਊਟ ਹੋਣਯੋਗ ਨਕਲੀ ਸਰੋਤ ਲੰਘ ਜਾਂਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਕੋਈ ਮਾਰਗ ਨਾ ਹੋਣ ਵਾਲਾ ਸਰੋਤ ਅਜੇ ਵੀ ਰੱਦ ਹੁੰਦਾ ਹੈ। ਲੈਪਟਾਪ ਉੱਤੇ ਇਹ ਤੰਗ ਛੋਟ ਹੈ; ਦੂਜਿਆਂ ਦੀ ਟ੍ਰੈਫ਼ਿਕ ਫਾਰਵਰਡ ਕਰਨ ਵਾਲੇ ਰਾਊਟਰ ਉੱਤੇ ਇਹ ਚੌੜੀ ਹੈ। ਮੋਡ ਹੋਸਟ ਦਾ ਹੈ, ਇਸ ਲਈ ਉਹੀ ਅੰਕੜਾ ਦੋ ਥਾਵਾਂ ਉੱਤੇ ਵੱਖਰਾ ਭਾਰ ਚੁੱਕਦਾ ਹੈ।

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

ਅਸਪਸ਼ਟਤਾ ਹਟਾਉਣ ਵਾਲਾ ਸਭ ਤੋਂ ਛੋਟਾ ਬਦਲਾਅ ਚੁਣੋ

ਢਿੱਲਾ ਮੋਡ ਸਭ ਤੋਂ ਛੋਟਾ ਢੁੱਕਵਾਂ ਬਦਲਾਅ ਹੈ, ਅਤੇ ਇਹ ਸਖ਼ਤੀ ਵਿੱਚ ਸੱਚੀ ਕਮੀ ਹੈ, ਕੋਈ ਬੇਹਾਨੀ ਸਵਿੱਚ ਨਹੀਂ। ਟੋਪੋਲੋਜੀ ਆਗਿਆ ਦੇਣ ਉੱਤੇ ਬਿਹਤਰ ਵਿਕਲਪ ਮੌਜੂਦ ਹੈ: ਓਵਰਲੈਪ ਹਟਾਓ, ਅਤੇ ਅਸਪਸ਼ਟਤਾ ਗ਼ਾਇਬ ਹੋ ਜਾਂਦੀ ਹੈ।

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

ਤੁਸੀਂ ਕੋਈ ਵੀ ਰਾਹ ਚੁਣੋ, ਇਸਨੂੰ ਜੀਵਤ ਕਮਾਂਡ ਵਿੱਚ ਨਹੀਂ, ਸਗੋਂ sysctl drop-in ਵਿੱਚ ਦਰਜ ਕਰੋ। all ਅਤੇ default ਕੁੰਜੀਆਂ ਇਕੱਠੀਆਂ ਸੈੱਟ ਕਰੋ, ਤਾਂ ਜੋ ਮੁੜ-ਜੁੜਾਈ ਸਖ਼ਤ ਮੋਡ ਚੁੱਪਚਾਪ ਬਹਾਲ ਨਾ ਕਰ ਸਕੇ।

# /etc/sysctl.d/99-rp-filter.conf
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2
sysctl --system

ਢਿੱਲਾ ਮੋਡ ਕੀ ਛੱਡਦਾ ਹੈ, ਅਤੇ ਕਿੱਥੇ

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

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

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

ਸੰਬੰਧਿਤ ਲੇਖ