Pi-hole v6 ਪੋਰਟ 53 ਉੱਤੇ DNS ਬੇਨਤੀ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਅਤੇ ਫਿਰ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਆਏ ਪੈਕੇਟ ਦਾ ਜਵਾਬ ਦੇਣ ਦੀ ਇਜਾਜ਼ਤ ਹੈ ਜਾਂ ਨਹੀਂ। WireGuard ਹੋਸਟ ਉੱਤੇ ਇਹੀ ਦੂਜਾ ਫੈਸਲਾ ਆਮ ਤੌਰ ’ਤੇ ਕਾਰਨ ਹੁੰਦਾ ਹੈ ਕਿ ਕਲਾਇੰਟ ਨੂੰ ਟਾਈਮਆਊਟ ਕਿਉਂ ਮਿਲਦਾ ਹੈ, ਜਦਕਿ ਰਿਜ਼ੌਲਵਰ LAN ਤੋਂ ਸਿਹਤਮੰਦ ਦਿਸਦਾ ਹੈ। ਪੋਰਟ ਖੁੱਲ੍ਹਾ ਹੈ, FTL ਚੱਲ ਰਿਹਾ ਹੈ, ਫਿਰ ਵੀ 10.90.0.1 ਤੋਂ ਕੁਝ ਵਾਪਸ ਨਹੀਂ ਆਉਂਦਾ। ਜਵਾਬ ਨਿਕਲਣ ਤੋਂ ਪਹਿਲਾਂ ਤਿੰਨ ਚੀਜ਼ਾਂ ਇੱਕ-ਦੂਜੇ ਉੱਤੇ ਅਸਰ ਪਾਉਂਦੀਆਂ ਹਨ: dns.interface, dns.listeningMode ਅਤੇ ਦੋਵਾਂ ਦੇ ਸਾਹਮਣੇ ਫਾਇਰਵਾਲ।

ਸੁਣਨ ਵਾਲਾ ਸਾਕਟ ਤੈਅ ਨਹੀਂ ਕਰਦਾ ਕਿ ਜਵਾਬ ਕਿਸ ਨੂੰ ਮਿਲੇਗਾ

FTL ਪੋਰਟ 53 ਉੱਤੇ UDP ਅਤੇ TCP ਸਰੋਤੇ ਖੋਲ੍ਹਦਾ ਹੈ। ਡਿਫ਼ਾਲਟ ਸੰਰਚਨਾ ਵਿੱਚ ਸਾਕਟ ਅਕਸਰ wildcard ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ss -lunp | grep :53 VPN ਕਲਾਇੰਟਾਂ ਦੀ ਸੇਵਾ ਹੋਵੇ ਜਾਂ ਨਾ ਹੋਵੇ, 0.0.0.0:53 ਅਤੇ [::]:53 ਦਿਖਾਉਂਦਾ ਹੈ। wildcard ਸਾਕਟ ਪੈਕੇਟ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਫਿਰ FTL ਜਵਾਬ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਆਪਣੇ ਇੰਟਰਫੇਸ ਅਤੇ ਸਰੋਤ ਨਿਯਮ ਲਾਗੂ ਕਰਦਾ ਹੈ। ਇਸ ਲਈ "ਪੋਰਟ ਸੁਣ ਰਿਹਾ ਹੈ" ਟਨਲ ਕਲਾਇੰਟ ਬਾਰੇ ਬਹੁਤ ਘੱਟ ਸਾਬਤ ਕਰਦਾ ਹੈ।

ਜਿਸ ਫਾਈਲ ਨੂੰ ਤੁਸੀਂ ਸਰਗਰਮ ਸਮਝਦੇ ਹੋ, ਉਸ ਦੀ ਥਾਂ ਚੱਲ ਰਹੀ ਸੰਰਚਨਾ ਪੜ੍ਹੋ। pihole-FTL --config dns.interface ਅਤੇ pihole-FTL --config dns.listeningMode ਪ੍ਰਭਾਵੀ ਮੁੱਲ ਛਾਪਦੇ ਹਨ, ਅਤੇ ਜਦੋਂ ਕੰਟੇਨਰ, ਵਾਤਾਵਰਣ ਚਰ ਜਾਂ ਡਿਪਲੌਇਮੈਂਟ ਮੈਨੇਜਰ ਕੋਲ ਇਹ ਸੈਟਿੰਗ ਹੋਵੇ ਤਾਂ ਉਹ ਹੋਸਟ ਫਾਈਲ ਤੋਂ ਵੱਖ ਹੋ ਸਕਦੇ ਹਨ। Pi-hole FTL ਸੰਰਚਨਾ ਸੰਦਰਭ ਮੋਡਾਂ ਅਤੇ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕਿਹੜਾ ਇੰਟਰਫੇਸ ਉੱਤੇ ਨਿਰਭਰ ਹੈ, ਦੀ ਸੂਚੀ ਦਿੰਦਾ ਹੈ।

LOCAL ਪੁੱਛਦਾ ਹੈ ਕਿਹੜਾ ਸਬਨੈੱਟ, SINGLE ਪੁੱਛਦਾ ਹੈ ਕਿਹੜਾ ਇੰਟਰਫੇਸ

LOCAL, ਡਿਫ਼ਾਲਟ, ਉਹਨਾਂ ਬੇਨਤੀਆਂ ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਦਾ ਸਰੋਤ ਪਤਾ ਹੋਸਟ ਦੇ ਕਿਸੇ ਇੱਕ ਇੰਟਰਫੇਸ ਉੱਤੇ ਸੰਰਚਿਤ ਸਬਨੈੱਟ ਵਿੱਚ ਆਉਂਦਾ ਹੈ। 10.90.0.1/24 ਵਾਲਾ ਸਧਾਰਨ wg0 ਇਹ ਜਾਂਚ ਪਾਸ ਕਰਦਾ ਹੈ, ਕਿਉਂਕਿ 10.90.0.2 ’ਤੇ ਕਲਾਇੰਟ ਟਨਲ ਸਬਨੈੱਟ ਦੇ ਅੰਦਰ ਹੈ। ਪੀਅਰ ਦੇ ਦੂਜੇ ਪਾਸੇ ਰੂਟ ਕੀਤਾ ਕਲਾਇੰਟ, ਜਾਂ ਕਿਸੇ ਹੋਰ ਪ੍ਰੀਫਿਕਸ ਵਿੱਚ NAT ਪਿੱਛੇ ਲੁਕਿਆ ਕਲਾਇੰਟ, ਪੈਕੇਟ wg0 ’ਤੇ ਆਉਣ ਦੇ ਬਾਵਜੂਦ ਇਹ ਪਾਸ ਨਹੀਂ ਕਰਦਾ, ਅਤੇ ਲੌਗ ਵਿੱਚ ਕੋਈ ਬੇਨਤੀ ਨਹੀਂ ਦਿਸਦੀ।

SINGLE ਸਵਾਲ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਇਹ dns.interface ਵਿੱਚ ਨਾਮਿਤ ਇੰਟਰਫੇਸ ਉੱਤੇ ਆਉਣ ਵਾਲੀਆਂ ਬੇਨਤੀਆਂ ਲੂਪਬੈਕ ਸਮੇਤ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ ਅਤੇ ਸਰੋਤ ਸਬਨੈੱਟ ਨੂੰ ਅਣਡਿੱਠ ਕਰਦਾ ਹੈ। ਸ਼੍ਰੰਖਲਾਬੱਧ ਜਾਂ ਰੂਟ ਕੀਤੀ VPN ਟੋਪੋਲੋਜੀ ਵਿੱਚ ਟਿਕਣ ਵਾਲਾ ਮੋਡ ਇਹੀ ਹੈ। ਦੋਵੇਂ ਕੁੰਜੀਆਂ ਇਕੱਠੀਆਂ ਸੈੱਟ ਕਰੋ, ਕਿਉਂਕਿ ਨਾਮਿਤ ਇੰਟਰਫੇਸ ਤੋਂ ਬਿਨਾਂ ਮੋਡ ਪੂਰਾ ਨਿਰਦੇਸ਼ ਨਹੀਂ:

sudo pihole-FTL --config dns.interface "wg0"
sudo pihole-FTL --config dns.listeningMode "SINGLE"

BIND ਸਾਕਟ ਬਦਲਦਾ ਹੈ, ਅਤੇ ਇਸ ਦੀ ਕੀਮਤ ਹੈ

BIND wildcard ਸਾਕਟ ਨੂੰ ਫਿਲਟਰ ਨਹੀਂ ਕਰਦਾ; ਇਹ ਪੋਰਟ 53 ਨੂੰ ਸਿਰਫ਼ ਨਾਮਿਤ ਇੰਟਰਫੇਸ ਉੱਤੇ ਮੌਜੂਦ ਪਤਿਆਂ ਨਾਲ ਬੰਨ੍ਹਦਾ ਹੈ, ਇਸ ਲਈ ਕਰਨਲ ਕਿਤੇ ਹੋਰ ਆਉਣ ਵਾਲੇ ਪੈਕੇਟ ਨੂੰ ਰੱਦ ਕਰਦਾ ਹੈ। ਇਹ SINGLE ਤੋਂ ਸਖ਼ਤ ਹੈ ਅਤੇ ਇਸ ਦਾ ਸਮਾਨਾਰਥੀ ਨਹੀਂ। ਕੀਮਤ ਬੂਟ ਵੇਲੇ ਦਿਸਦੀ ਹੈ: ਜੇ FTL ਸ਼ੁਰੂ ਹੁੰਦਿਆਂ wg0 ਉੱਪਰ ਨਾ ਹੋਵੇ, ਤਾਂ ਬੰਨ੍ਹਣ ਲਈ ਪਤਾ ਨਹੀਂ ਹੋ ਸਕਦਾ, ਅਤੇ ਇੰਟਰਫੇਸ ਦਿਸਣ ਅਤੇ FTL ਮੁੜ ਸ਼ੁਰੂ ਹੋਣ ਤੱਕ ਰਿਜ਼ੌਲਵਰ ਸਰੋਤੇ ਤੋਂ ਬਿਨਾਂ ਚੱਲ ਸਕਦਾ ਹੈ।

BIND ਚੁਣੋ ਜਦੋਂ ਤੁਸੀਂ ਸਟਾਰਟਅੱਪ ਕ੍ਰਮ ਨਿਯੰਤਰਿਤ ਕਰਦੇ ਹੋ, ਉਦਾਹਰਣ ਲਈ WireGuard ਇੰਟਰਫੇਸ ਤੋਂ ਬਾਅਦ ਤਰਤੀਬਬੱਧ systemd ਯੂਨਿਟ, ਅਤੇ ਜਦੋਂ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਕਰਨਲ FTL ਵੇਖਣ ਤੋਂ ਪਹਿਲਾਂ ਭਟਕਦੇ ਪੈਕੇਟ ਸੁੱਟ ਦੇਵੇ। SINGLE ਚੁਣੋ ਜਦੋਂ ਟਨਲ ਆਉਂਦਾ-ਜਾਂਦਾ ਹੈ, ਜਾਂ ਜਦੋਂ ਇੰਟਰਫੇਸ FTL ਤੋਂ ਬਾਅਦ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਸਾਧਨ ਦੁਆਰਾ ਬਣਦਾ ਹੈ।

ਫਾਇਰਵਾਲ ਦੂਜਾ ਦਰਵਾਜ਼ਾ ਹੈ

ਸਹੀ FTL ਮੋਡ ਵੀ ਫੇਲ ਹੁੰਦਾ ਹੈ ਜੇ ਹੋਸਟ ਫਾਇਰਵਾਲ wg0 ਉੱਤੇ ਪੋਰਟ 53 ਸੁੱਟ ਦੇਵੇ। ਦੋਵੇਂ ਪ੍ਰੋਟੋਕੋਲਾਂ ਲਈ VPN ਸਰੋਤ ਰੇਂਜ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ ਅਤੇ ਇੰਟਰਨੈੱਟ ਪਾਸਾ ਬੰਦ ਰੱਖੋ। nftables ਵਿੱਚ, inet filter ਟੇਬਲ ਦੀ ਮੌਜੂਦਾ input ਸ਼੍ਰੰਖਲਾ ਨਾਲ, ਨਿਯਮ ਇੰਝ ਦਿਸਦੇ ਹਨ:

sudo nft add rule inet filter input iifname "wg0" ip saddr 10.90.0.0/24 udp dport 53 accept
sudo nft add rule inet filter input iifname "wg0" ip saddr 10.90.0.0/24 tcp dport 53 accept

ਜੇ ਟਨਲ IPv6 ਲੈ ਕੇ ਜਾਂਦਾ ਹੈ ਤਾਂ ਮਿਲਦੇ IPv6 ਨਿਯਮ ਸ਼ਾਮਲ ਕਰੋ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਸ਼੍ਰੰਖਲਾ ਦੀ drop ਨੀਤੀ ਤੋਂ ਪਹਿਲਾਂ ਰੱਖੋ। ਜੇ ਹੋਸਟ ufw ਜਾਂ firewalld ਵਰਤਦਾ ਹੈ, ਤਾਂ ਸਾਧਨ ਮਿਲਾਉਣ ਦੀ ਥਾਂ ਉਸੇ ਮੈਨੇਜਰ ਵਿੱਚ ਉਹੀ ਮਿਲਾਨ ਪ੍ਰਗਟ ਕਰੋ। ਇੰਟਰਨੈੱਟ ਰਾਊਟਰ ਤੋਂ ਪੋਰਟ 53 ਅੱਗੇ ਨਾ ਭੇਜੋ; ਕਲਾਇੰਟਾਂ ਨੂੰ ਟਨਲ ਰਾਹੀਂ ਰਿਜ਼ੌਲਵਰ ਦੇ VPN ਪਤੇ ’ਤੇ ਪਹੁੰਚਣਾ ਚਾਹੀਦਾ ਹੈ।

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

ਜਵਾਬ ਅਤੇ ਰੱਦ ਕਰਨ ਦੀ ਜਾਂਚ ਕਰੋ

VPN ਕਲਾਇੰਟ ਤੋਂ, ਦੋਵੇਂ ਪ੍ਰੋਟੋਕੋਲਾਂ ’ਤੇ ਰਿਜ਼ੌਲਵਰ ਦਾ ਪਤਾ ਪੁੱਛੋ: dig @10.90.0.1 example.com ਅਤੇ dig +tcp @10.90.0.1 example.com। ਫਿਰ ਐਡਮਿਨ ਇੰਟਰਫੇਸ ਵਿੱਚ ਬੇਨਤੀ ਲੌਗ ਵੇਖੋ ਕਿ FTL ਨੇ ਬੇਨਤੀ ਦਰਜ ਕੀਤੀ ਹੈ। ਲੌਗ ਐਂਟਰੀ ਤੋਂ ਬਿਨਾਂ ਕਲਾਇੰਟ ਟਾਈਮਆਊਟ ਫਾਇਰਵਾਲ ਜਾਂ ਇੰਟਰਫੇਸ ਫਿਲਟਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ; ਜਵਾਬ ਤੋਂ ਬਿਨਾਂ ਲੌਗ ਐਂਟਰੀ ਅਪਸਟ੍ਰੀਮ ਹੱਲ ਵੱਲ।

VPN ਤੋਂ ਬਾਹਰਲੇ ਹੋਸਟ ਤੋਂ ਨਕਾਰਾਤਮਕ ਰਾਹ ਜਾਂਚੋ। dig @10.90.0.1 example.com ਦਾ ਸਮਾਂ ਖ਼ਤਮ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ss -lunp ਰਿਜ਼ੌਲਵਰ ਉੱਤੇ ਪੋਰਟ 53 ਨੂੰ ਕਿਸੇ ਜਨਤਕ ਪਤੇ ਨਾਲ ਬੱਝਿਆ ਨਹੀਂ ਦਿਖਾਉਣਾ ਚਾਹੀਦਾ। ਸੇਵਾ ਇੱਕ ਵਾਰ ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ, ਫਿਰ ਹੋਸਟ ਰੀਬੂਟ ਕਰੋ ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ wg0 ਮੁੜ ਦਿਸਣ ਤੋਂ ਬਾਅਦ ਵੀ ਰਿਜ਼ੌਲਵਰ ਜਵਾਬ ਦਿੰਦਾ ਹੈ। ਜੋ ਬੇਨਤੀ ਸਿਰਫ਼ ਅਗਲੇ ਰੀਬੂਟ ਤੱਕ ਕੰਮ ਕਰੇ, ਉਹ ਪੂਰਾ ਹੋਇਆ ਬਦਲਾਅ ਨਹੀਂ।

ਸੰਬੰਧਿਤ ਲੇਖ