FORWARD, OUTPUT ਅਤੇ IPv6 ਨੂੰ ਕਵਰ ਕਰਨ ਵਾਲਾ ਰਾਊਟਰ ਕਿਲ ਸਵਿੱਚ
ਸਿਰਫ਼ FORWARD ਵਿੱਚ ਕਿਲ ਸਵਿੱਚ ਰਾਊਟਰ ਨੂੰ ਖੁੱਲ੍ਹ ਕੇ ਲੀਕ ਕਰਨ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਸਿਰਫ਼ IPv4 ਨਿਯਮ IPv6 ਨੂੰ ਖੁੱਲ੍ਹਾ ਛੱਡ ਦਿੰਦੇ ਹਨ। ਚੇਨ ਕ੍ਰਮ ਵਿੱਚ ਰੱਖੋ ਅਤੇ ਟਨਲ ਬੰਦ ਹੋਣ ਵੇਲੇ ਜਾਂਚੋ।
ਤੁਸੀਂ ਰਾਊਟਰ ਵਿੱਚ ਲੌਗ ਇਨ ਕਰਦੇ ਹੋ, ਫੋਰਮ ਪੋਸਟ ਤੋਂ ਕਿਲ ਸਵਿੱਚ ਨਿਯਮਾਂ ਦਾ ਸੈੱਟ ਪੇਸਟ ਕਰਦੇ ਹੋ, ਅਤੇ ਟਨਲ ਡਿੱਗਣ ਵਾਲੇ ਪਲ ਹੀ LAN ਬ੍ਰਾਊਜ਼ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ। ਦੋ ਦਿਨ ਬਾਅਦ ਵੀ ਰਾਊਟਰ ਆਮ WAN ਰਾਹੀਂ ਆਪਣਾ ਡਾਇਨਾਮਿਕ DNS ਰਿਕਾਰਡ ਅੱਪਡੇਟ ਕਰਦਾ ਰਹਿੰਦਾ ਹੈ, ਅਤੇ ਮਹਿਮਾਨ ਲੈਪਟਾਪ ਅਜੇ ਵੀ IPv6 ਸਾਈਟਾਂ ਤੱਕ ਪਹੁੰਚਦਾ ਹੈ। ਦੋਵੇਂ ਵਿਵਹਾਰ ਆਮ ਹਨ, ਕਿਉਂਕਿ ਪੇਸਟ ਕੀਤੇ ਨਿਯਮ ਇੱਕ ਚੇਨ ਅਤੇ ਇੱਕ ਪਤਾ ਪਰਿਵਾਰ ਨੂੰ ਕਵਰ ਕਰਦੇ ਸਨ, ਅਤੇ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਪੂਰਾ ਰਾਊਟਰ ਨਹੀਂ। ਪੈਕਟਾਂ ਦੇ ਰਾਹਾਂ ਨੂੰ ਕ੍ਰਮ ਵਿੱਚ ਦੇਖਣ ਨਾਲ ਬਿਲਕੁਲ ਉਹੀ ਦਿਸਦਾ ਹੈ ਜੋ ਛੁੱਟ ਗਿਆ।
ਰਾਊਟਰ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ, ਲੈਪਟਾਪ ਤੋਂ ਨਹੀਂ
ਰਾਊਟਰ ਪੱਧਰ ਦੀ ਨੀਤੀ ਛੋਟੇ ਦਫ਼ਤਰ ਲਈ ਆਕਰਸ਼ਕ ਹੈ ਕਿਉਂਕਿ ਇਸਦੇ ਪਿੱਛੇ ਦਾ ਹਰ ਡਿਵਾਈਸ ਉਹੀ ਵਿਵਹਾਰ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈਂਦਾ ਹੈ ਅਤੇ ਕੋਈ ਵੀ ਕਲਾਇੰਟ ਉੱਤੇ ਸਵਿੱਚ ਚਾਲੂ ਕਰਨਾ ਭੁੱਲ ਨਹੀਂ ਸਕਦਾ। ਇਹ ਹਰ ਫਰਮਵੇਅਰ ਅੱਪਡੇਟ ਤੋਂ ਬਾਅਦ ਜਾਂਚ ਲਈ ਇੱਕ ਹੀ ਥਾਂ ਵੀ ਦਿੰਦੀ ਹੈ। ਜੋ ਇਹ ਨਹੀਂ ਦਿੰਦੀ ਉਹ ਰਾਊਟਰ ਦੀ ਆਪਣੀ ਟ੍ਰੈਫਿਕ ਜਾਂ ਦੂਜੇ ਪਤਾ ਪਰਿਵਾਰ ਦੀ ਸਵੈਚਾਲਿਤ ਕਵਰੇਜ ਹੈ, ਅਤੇ ਇਹੀ ਉਹ ਦੋ ਖੱਡਾਂ ਹਨ ਜਿਨ੍ਹਾਂ ਪਿੱਛੇ ਵਧੇਰੇ ਤਰ੍ਹਾਂ ਫੇਲ੍ਹ ਤੈਨਾਤੀਆਂ ਹਨ।
ਕੁਝ ਵੀ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਕਾਗਜ਼ ਉੱਤੇ ਤਿੰਨ ਤੱਥ ਲਿਖੋ: WAN ਇੰਟਰਫੇਸ ਦਾ ਨਾਮ, LAN ਬ੍ਰਿਜ ਦਾ ਨਾਮ, ਅਤੇ VPN ਐਂਡਪੌਇੰਟ ਦਾ ਪਤਾ ਤੇ ਪੋਰਟ। ਤਿੰਨੇ ਨਿਯਮਾਂ ਵਿੱਚ ਚਾਹੀਦੇ ਹੋਣਗੇ, ਅਤੇ ਇੰਟਰਫੇਸ ਨਾਮਾਂ ਦਾ ਅੰਦਾਜ਼ਾ ਲਾਉਣਾ ਸਭ ਤੋਂ ਆਮ ਕਾਰਨ ਹੈ ਕਿ ਸਹੀ ਦਿਸਦਾ ਨਿਯਮ-ਸੈੱਟ ਕੁਝ ਨਹੀਂ ਕਰਦਾ।
ਉਹ ਤਿੰਨ ਰਾਹਾਂ ਵਿੱਚੋਂ ਲੰਘੋ ਜੋ ਇੱਕ ਪੈਕਟ ਲੈ ਸਕਦਾ ਹੈ
ਲੈਪਟਾਪ ਤੋਂ ਇੰਟਰਨੈੱਟ ਵੱਲ ਦੀ ਟ੍ਰੈਫਿਕ ਫਾਰਵਰਡ ਹੁੰਦੀ ਹੈ, ਇਸ ਲਈ ਇਹ FORWARD ਚੇਨ ਵਿੱਚੋਂ ਲੰਘਦੀ ਹੈ। ਜੋ ਟ੍ਰੈਫਿਕ ਰਾਊਟਰ ਆਪ ਬਣਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ DNS ਫਾਰਵਰਡਿੰਗ, NTP ਕਵੈਰੀ, DDNS ਅੱਪਡੇਟ ਅਤੇ VPN ਦਾ ਕੰਟਰੋਲ ਚੈਨਲ, ਉਹ OUTPUT ਵਿੱਚੋਂ ਲੰਘਦੀ ਹੈ। ਰਾਊਟਰ ਨੂੰ ਸੰਬੋਧਿਤ ਪ੍ਰਬੰਧਨ ਟ੍ਰੈਫਿਕ INPUT ਵਿੱਚੋਂ ਆਉਂਦੀ ਹੈ।
ਇਸ ਲਈ ਸਿਰਫ਼ FORWARD ਵਿੱਚ ਬਣਿਆ ਕਿਲ ਸਵਿੱਚ ਕਲਾਇੰਟਾਂ ਦੀ ਰੱਖਿਆ ਕਰਦਾ ਹੈ ਅਤੇ ਹੋਰ ਕੁਝ ਨਹੀਂ। ਸਾਰਣੀ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਸ਼ੁਰੂਆਤੀ ਦ੍ਰਿਸ਼ ਦੀ ਲੀਕ ਰਹੱਸ ਨਹੀਂ, ਪਹਿਲਾਂ ਤੋਂ ਅਨੁਮਾਨਿਤ ਹੈ।
| Packet path | Example | Chain that sees it |
|---|---|---|
| LAN client to WAN or tunnel | Browser request | FORWARD |
| Router-originated | DDNS update, NTP | OUTPUT |
| Addressed to the router | SSH from the LAN | INPUT |
ਵਧੇਰੇ ਡਿਜ਼ਾਈਨਾਂ ਵਿੱਚ ਤੁਹਾਨੂੰ INPUT ਉੱਤੇ ਕਿਲ ਸਵਿੱਚ ਦੀ ਲੋੜ ਨਹੀਂ, ਪਰ ਟਨਲ ਬੰਦ ਹੋਣ ਵੇਲੇ ਪ੍ਰਬੰਧਨ ਪਹੁੰਚ ਚਾਲੂ ਰੱਖਣੀ ਪਵੇਗੀ। ਨਹੀਂ ਤਾਂ VPN ਦੀ ਪਹਿਲੀ ਫੇਲ੍ਹ ’ਤੇ ਤੁਸੀਂ ਕੰਸੋਲ ਕੇਬਲ ਲੈ ਕੇ ਦਫ਼ਤਰ ਜਾਵੋਗੇ।
ਨਿਯਮ ਇਸ ਤਰ੍ਹਾਂ ਰੱਖੋ ਕਿ ਟਨਲ ਫਿਰ ਵੀ ਉੱਪਰ ਆ ਸਕੇ
ਕੰਮ ਕਰਦਾ ਕਿਲ ਸਵਿੱਚ ਉਹ ਇਜਾਜ਼ਤ-ਸੂਚੀ ਹੈ ਜੋ ਇਨਕਾਰ ’ਤੇ ਖ਼ਤਮ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਕ੍ਰਮ ਹੀ ਇਸਨੂੰ ਕਿਲ ਸਵਿੱਚ ਬਣਾਉਂਦਾ ਹੈ, ਇੱਟ ਨਹੀਂ। ਪਹਿਲਾਂ loopback, VPN ਐਂਡਪੌਇੰਟ, ਸਥਾਪਿਤ ਫਲੋ ਦੇ ਜਵਾਬ ਅਤੇ ਟਨਲ ਇੰਟਰਫੇਸ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ; ਬਾਕੀ ਨੂੰ ਅੰਤ ਵਿੱਚ ਇਨਕਾਰ ਕਰੋ।
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d 198.51.100.7 -p udp --dport 51820 -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o wg0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j REJECT
ਇਸ ਮੋੜ ’ਤੇ ਐਂਡਪੌਇੰਟ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਹੋਸਟਨਾਮ ਨਹੀਂ। ਜਿਵੇਂ ਹੀ ਅੰਤਿਮ ਇਨਕਾਰ DNS ਨੂੰ ਬਲੌਕ ਕਰਦਾ ਹੈ, ਪ੍ਰਦਾਤਾ ਦਾ ਹੋਸਟਨਾਮ ਦੱਸਣ ਵਾਲਾ ਨਿਯਮ ਹੁਣ ਹੱਲ ਨਹੀਂ ਹੋ ਸਕਦਾ, ਅਤੇ ਟਨਲ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਬਾਅਦ ਕਦੇ ਉੱਪਰ ਨਹੀਂ ਆਉਂਦੀ। ਜੇ ਪ੍ਰਦਾਤਾ ਐਂਡਪੌਇੰਟ ਬਦਲਦਾ ਹੈ, ਤਾਂ ਨੀਤੀ ਲਾਗੂ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਨਾਮ ਹੱਲ ਕਰੋ ਅਤੇ ਉਸ ਨਿਯਮ ਨੂੰ ਉਸੇ ਸਕ੍ਰਿਪਟ ਤੋਂ ਤਾਜ਼ਾ ਕਰੋ।
ਕਲਾਇੰਟ ਟ੍ਰੈਫਿਕ ਲਈ ਉਹੀ ਆਕਾਰ FORWARD ਵਿੱਚ ਦੁਹਰਾਓ, ਅਤੇ ਇਨਕਾਰ ਉੱਤੇ ਸਪਸ਼ਟ ਪ੍ਰਬੰਧਨ ਨਿਯਮ ਰੱਖੋ। ਉਸ ਪ੍ਰਬੰਧਨ ਨਿਯਮ ਨੂੰ ਤੰਗ ਪਰ ਪਹੁੰਚਯੋਗ ਰੱਖੋ, ਅਤੇ ਪਹਿਲਾ SSH ਸੈਸ਼ਨ ਬੰਦ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਦੂਜਾ ਸੈਸ਼ਨ ਖੋਲ੍ਹ ਕੇ ਇਸਦੀ ਪੁਸ਼ਟੀ ਕਰੋ। ਕਿਲ ਸਵਿੱਚ ਬਦਲਦੇ ਸਮੇਂ ਆਪਣੇ ਆਪ ਨੂੰ ਬਾਹਰ ਤਾਲਾ ਲਾਉਣਾ ਇੰਨਾ ਆਮ ਹੈ ਕਿ ਇਸਦੀ ਯੋਜਨਾ ਬਣਾਈ ਜਾਵੇ। WireGuard ਚਲਾਉਂਦੇ ਰਾਊਟਰ ’ਤੇ ਪੀਅਰ ਦੇ allowed-ips ਤੈਅ ਕਰਦੇ ਹਨ ਕਿ ਟਨਲ ਵਿੱਚ ਕੀ ਜਾਂਦਾ ਹੈ, ਜਦਕਿ ਇਹ ਨਿਯਮ ਤੈਅ ਕਰਦੇ ਹਨ ਕਿ ਇਸਦੇ ਬਿਨਾਂ ਕੀ ਬਾਹਰ ਜਾ ਸਕਦਾ ਹੈ।
IPv6 ਨੂੰ ਆਪਣਾ ਦਰਵਾਜ਼ਾ ਚਾਹੀਦਾ ਹੈ
ਉੱਪਰ ਦਾ ਸਭ IPv4 ਹੈ। ਜੇ ਤੁਹਾਡੇ LAN ਵਿੱਚ IPv6 ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ ਅਤੇ ਟਨਲ ਸਿਰਫ਼ IPv4 ਲੈ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਹਰ ਕਵਰ ਕੀਤੇ ਡਿਵਾਈਸ ਕੋਲ ਇੰਟਰਨੈੱਟ ਦਾ ਸਿੱਧਾ ਰਾਹ ਅਜੇ ਵੀ ਹੈ ਜੋ ਤੁਹਾਡੇ ਨਵੇਂ ਨਿਯਮ ਕਦੇ ਨਹੀਂ ਦੇਖਦੇ। ਦੋਹਰੇ ਸਟੈਕ ਵਾਲਾ ਲੈਪਟਾਪ ਇਸਨੂੰ ਖੁਸ਼ੀ ਨਾਲ ਚੁਣੇਗਾ, ਅਤੇ ਕਿਲ ਸਵਿੱਚ ਸਿਰਫ਼ IPv4 ਨਾਲ ਜਾਂਚਣ ਵਾਲੇ ਨੂੰ ਟੁੱਟਿਆ ਦਿਸੇਗਾ।
ip6tables -A FORWARD -i br-lan -j REJECT
ip6tables -A OUTPUT -o eth0 -j REJECT
ip6tables -A OUTPUT -o lo -j ACCEPT
ਇੱਥੇ ਵੀ ਕ੍ਰਮ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ: loopback ਦੀ ਇਜਾਜ਼ਤ WAN ਦੇ ਇਨਕਾਰ ਤੋਂ ਪਹਿਲਾਂ ਆਉਣੀ ਚਾਹੀਦੀ ਹੈ, ਨਹੀਂ ਤਾਂ ਰਾਊਟਰ ਉੱਤੇ ਸਥਾਨਕ ਸੇਵਾਵਾਂ ਅਜੀਬ ਤਰੀਕਿਆਂ ਨਾਲ ਫੇਲ੍ਹ ਹੋਣ ਲੱਗਦੀਆਂ ਹਨ। ਜੇ ਨੈੱਟਵਰਕ IPv6 ਬਿਲਕੁਲ ਨਹੀਂ ਵਰਤਦਾ, ਤਾਂ ਇਸਨੂੰ WAN ਅਤੇ LAN ਉੱਤੇ ਬੰਦ ਕਰਨਾ ਸੌਖਾ ਹੈ ਅਤੇ ਭੁੱਲਣ ਲਈ ਕੁਝ ਨਹੀਂ ਬਚਦਾ।
ਕੁਝ VPN ਕਲਾਇੰਟ ਸਿਰਫ਼ IPv4 ਲਈ ਡਿਫਾਲਟ ਰੂਟ ਲਾਉਂਦੇ ਹਨ ਅਤੇ ਮੌਜੂਦਾ IPv6 ਡਿਫਾਲਟ ਰੂਟ ਨੂੰ ਅਛੂਤਾ ਛੱਡ ਦਿੰਦੇ ਹਨ। ਟਨਲ ਜੁੜਨ ਤੋਂ ਬਾਅਦ ਰੂਟਿੰਗ ਸਾਰਣੀ ਜਾਂਚੋ, ਕਲਾਇੰਟ ਨੇ ਸੰਭਾਲ ਲਿਆ ਮੰਨਣ ਦੀ ਥਾਂ।
ਟਨਲ ਬੰਦ ਹੋਣ ਵੇਲੇ ਇਹ ਸਾਬਤ ਕਰੋ
ਟਨਲ ਨੂੰ ਰਾਊਟਰ ਤੋਂ ਰੋਕੋ ਅਤੇ ਤਿੰਨ ਥਾਵਾਂ ਤੋਂ ਇਸ ਕ੍ਰਮ ਵਿੱਚ ਜਾਂਚੋ:
# systemctl stop wg-quick@wg0
# ip route get 203.0.113.1
# curl -m 5 -sS http://example.com || echo blocked
# iptables -vnL OUTPUT | head
# ip6tables -vnL OUTPUT | head
ਰੂਟ ਖੋਜ ਦੱਸਦੀ ਹੈ ਪੈਕਟ ਕਿੱਥੇ ਜਾਵੇਗਾ, ਅਤੇ ਕਾਊਂਟਰ ਦੱਸਦੇ ਹਨ ਕਿ ਤੁਹਾਡੇ ਨਿਯਮ ਕਦੇ ਮਿਲੇ ਜਾਂ ਨਹੀਂ। ਫੇਲ੍ਹ ਜਾਂਚ ਤੋਂ ਬਾਅਦ ਸਿਫ਼ਰ ਪੈਕਟ ਵਾਲਾ ਨਿਯਮ ਕੁਝ ਨਹੀਂ ਬਚਾਉਂਦਾ, ਅਤੇ ਆਮ ਕਾਰਨ ਇੰਟਰਫੇਸ ਦਾ ਉਹ ਨਾਮ ਹੈ ਜੋ ਤੁਹਾਡੇ ਲਿਖੇ ਤੋਂ ਵੱਖਰਾ ਹੈ। ਰਾਊਟਰ ਵੱਲੋਂ ਬਣਾਈ ਟ੍ਰੈਫਿਕ ਨੂੰ ਸਪਸ਼ਟ ਰੂਪ ਵਿੱਚ ਜਾਂਚੋ, ਕਿਉਂਕਿ LAN ਪਾਸਿਓਂ ਜਾਂਚ OUTPUT ਨਹੀਂ ਚਲਾ ਸਕਦੀ।
ਫੇਲ੍ਹ ਦਾ ਢੰਗ ਲੋੜ ਤੋਂ ਪਹਿਲਾਂ ਤੈਅ ਕਰੋ। fail-closed ਕਲਾਇੰਟਾਂ ਨੂੰ ਟਨਲ ਵਾਪਸ ਆਉਣ ਤੱਕ ਆਫ਼ਲਾਈਨ ਰੱਖਦਾ ਹੈ; fail-open ਆਮ WAN ਪਹੁੰਚ ਬਹਾਲ ਕਰਦਾ ਹੈ ਅਤੇ ਤੁਹਾਨੂੰ ਮਹੱਤਵਪੂਰਨ ਲੱਗੀ ਟ੍ਰੈਫਿਕ ਦਾ ਮਕਸਦ ਵਿਅਰਥ ਕਰਦਾ ਹੈ। ਉੱਚੇ ਮੈਟ੍ਰਿਕ ਵਾਲਾ VPN ਪੂਲ ਵੱਲ blackhole ਰੂਟ fail-closed ਡਿਜ਼ਾਈਨਾਂ ਲਈ ਲਾਹੇਵੰਦ ਦੂਜੀ ਪਰਤ ਹੈ, ਕਿਉਂਕਿ ਟਨਲ ਰੂਟ ਗਾਇਬ ਹੋਣ ’ਤੇ ਇਹ ਡਿਫਾਲਟ ’ਤੇ ਡਿੱਗਣ ਦੀ ਥਾਂ ਟਿਕਿਆ ਰਹਿੰਦਾ ਹੈ।
LAN ਕਲਾਇੰਟ, ਰਾਊਟਰ ਵੱਲੋਂ ਬਣਾਈ ਬੇਨਤੀ ਅਤੇ IPv6 ਬੇਨਤੀ ਤਿੰਨੇ ਟਨਲ ਬੰਦ ਹੋਣ ਵੇਲੇ ਫੇਲ੍ਹ ਹੋਣ, ਅਤੇ ਟਨਲ ਉੱਪਰ ਆਉਣ ’ਤੇ ਤਿੰਨੇ ਫਿਰ ਕੰਮ ਕਰਨ ਤਾਂ ਹੀ ਸੈੱਟਅੱਪ ਸਵੀਕਾਰ ਕਰੋ।