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 0.0.0.0:53 અને [::]:53 દર્શાવે છે, VPN ક્લાયન્ટ સેવા મેળવે કે ન મેળવે. 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 ફરી દેખાયા પછી પણ રિઝોલ્વર જવાબ આપે છે. જે પ્રશ્ન ફક્ત આગલા રીબૂટ સુધી કામ કરે તે પૂર્ણ થયેલો ફેરફાર નથી.

સંબંધિત લેખો