એક જ પ્રકારના હોસ્ટમાંથી બે નિષ્ફળતાઓ સતત આવે છે. પ્રથમમાં ક્લાયન્ટ પ્રમાણીકરણ કરે છે અને પછી ટનલની બહાર કંઈ પણ પહોંચતા નથી. બીજામાં VPN ઉપર આવે છે અને સર્વરની પોતાની વેબસાઇટ જવાબ આપવાનું બંધ કરે છે, જે વધુ ચિંતાજનક છે કારણ કે તે ગૌણ નુકસાન જેવું લાગે છે. કન્ટેનર-આધારિત VPS પર બંને સામાન્ય રીતે એક જ ટૂંકી ચકાસણી સૂચિ પર પાછાં આવે છે, અને ક્રમ મહત્વપૂર્ણ છે: પહેલા ઉપકરણ, બીજું અનુવાદ, ત્રીજું વ્યાપ.

ખાતરી કરો કે કન્ટેનર tun ઉપકરણ બનાવી શકે છે

ટનલ ઇન્ટરફેસ અસ્તિત્વમાં ન આવી શકે તો બીજું કંઈ મહત્વનું નથી. ચકાસો કે /dev/net/tun હાજર છે અને પરીક્ષણ ઉપકરણ બનાવવું સફળ થાય છે, કારણ કે ઘણા પ્રદાતાઓ ડિફૉલ્ટ રૂપે કન્ટેનરની અંદર tun બંધ રાખે છે. કોઈપણ firewall કાર્ય ક્યારેય ન બનેલા ઉપકરણની ભરપાઈ કરતું નથી.

જો ઉપકરણ ખૂટે છે, તો ફક્ત હોસ્ટ અથવા પ્રદાતા તેને સક્ષમ કરી શકે છે. એક અઠવાડિયું ચાલતા ખુલ્લા સપોર્ટ થ્રેડ કરતાં બીજી યોજના ઘણી વાર સસ્તી હોય છે. OpenVPN લોગની એક પણ લાઇન વાંચતા પહેલાં આની ખાતરી કરો. નહિંતર તમે સાંજ એવા નિયમો ટ્યુન કરવામાં પસાર કરશો જે ક્યારેય પેકેટ જોશે નહીં.

આ ઇન્ટરફેસ પર MASQUERADE શું કરે છે તે નક્કી કરો

સામાન્ય વર્ચ્યુઅલ મશીન પર સામાન્ય ઇગ્રેસ નિયમ મુખ્ય ઇન્ટરફેસમાંથી POSTROUTING MASQUERADE છે. OpenVZ કન્ટેનરમાં દેખાતું ઉપકરણ ઘણી વાર venet0 હોય છે, જે હોસ્ટ દ્વારા સંચાલિત વર્ચ્યુઅલ ઇન્ટરફેસ છે, રૂટ કરેલ NIC નહીં, અને MASQUERADE ત્યાં હંમેશા ટ્યુટોરિયલ માને છે તેમ વર્તતું નથી.

કાર્યક્ષમ સ્વરૂપ એ છે કે ક્લાયન્ટ પહેલેથી જ પહોંચે છે તે સરનામા તરફ સ્પષ્ટ અનુવાદ, બંને દિશામાં ફોરવર્ડિંગ મંજૂર રાખીને. સર્વર રૂપરેખાંકનમાંથી પૂલ બદલવો સરનામું બદલવા જેટલો જ મહત્વપૂર્ણ છે. પેસ્ટ કરતા પહેલાં દરેક લાઇન વાંચો.

iptables -t nat -A POSTROUTING -o venet0 -s 10.8.0.0/24 -j SNAT --to-source 203.0.113.10
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

ફોરવર્ડિંગ નિયમો વિના અનુવાદ તો થાય જ છે અને કર્નલ ફોરવર્ડ કરવાનો ઇનકાર પણ કરે જ છે. આ સંયોજન એ ગૂંચવણભરી સ્થિતિ ઊભી કરે છે જ્યાં NAT નિયમના કાઉન્ટર વધે છે જ્યારે ક્લાયન્ટને કંઈ મળતું નથી. બે FORWARD લાઇન પણ એ જ ચેઇનમાં કોઈપણ વિશાળ drop નિયમ પહેલાં હોવી જોઈએ. ક્રમ રૂપરેખાંકનનો ભાગ છે, અમલીકરણની વિગત નહીં.

નિયમને એક પૂલ અને એક ઇન્ટરફેસ સુધી મર્યાદિત કરો

બીજા લક્ષણનું કારણ અલગ છે: સ્રોત કે આઉટપુટ પ્રતિબંધ વિનાનો POSTROUTING નિયમ. આવો નિયમ હોસ્ટ છોડતા દરેક પેકેટને ફરી લખે છે.

મૂળ સ્રોત પર આધારિત સેવાઓ પછી ખોટી રીતે વર્તે છે. સ્થાનિક પ્રોક્સી પાછળનો વેબ સર્વર જવાબ આપવાનું બંધ કરી શકે છે, અને તેને ફરી શરૂ કરવાથી કંઈ બદલાતું નથી કારણ કે નિયમ હજુ પણ માર્ગમાં છે. હોસ્ટ તેના પોતાના જાહેર સરનામા પર મોકલતો ટ્રાફિક પણ પ્રભાવિત થાય છે, તેથી નિષ્ફળતા firewall ની નહીં પણ DNS અથવા પ્રમાણપત્રની સમસ્યા જેવી લાગી શકે છે. નિયમ લગભગ ચોક્કસપણે પ્રથમ લક્ષણ સુધારવા માટે ઉમેરાયો હતો.

ઉકેલ એ છે કે મેળને ટનલ પૂલ અને ઇગ્રેસ ઇન્ટરફેસ સુધી સાંકડો કરો, પછી ઘણાને આવરી લેવા એક નિયમ પહોળો કરવાને બદલે દરેક પૂલ માટે એક નિયમ ઉમેરો.

નિયમોને ચિરસ્થાયી બનાવો અને જાણો બીજું કોણ તેમનો માલિક છે

હાથે ઉમેરેલા નિયમો રીબૂટ પર અદૃશ્ય થાય છે, તેથી તેમને iptables-save વડે સાચવો અથવા જ્યાં તે સ્થાપિત હોય ત્યાં netfilter-persistent દ્વારા સંચાલિત કરો. ખાતરી કરો કે પુનઃસ્થાપન OpenVPN શરૂ થાય તે પહેલાં ચાલે છે. પછી ઘટનાના સમયે ખાલી જગ્યા શોધવાને બદલે જાણી જોઈને એક વાર રીબૂટ કરો.

કન્ટેનર હોસ્ટ પર, એ પણ ખાતરી કરો કે ચિરસ્થાયી ફાઇલ લખી શકાય તેવા કન્ટેનર સ્ટોરેજમાં રહે છે અને પ્રદાતા બૂટ પર ફિલ્ટરિંગ બદલતું નથી. કેટલાક પ્લેટફોર્મ કન્ટેનરની બહાર નીતિ સંચાલિત કરે છે, જ્યાં સ્થાનિક નિયમો કાં તો અવગણવામાં આવે છે અથવા હોસ્ટના પોતાના નિયમો સાથે ટકરાય છે.

કાઉન્ટર અને એક કેપ્ચર કરેલા ફ્લો વડે ચકાસો

જોડાયેલા ક્લાયન્ટથી, બાહ્ય સેવા જે જાહેર સરનામું જણાવે છે તે ચકાસો. જો તે સર્વરના સરનામા સાથે મેળ ખાય, તો અનુવાદ કામ કરે છે; જો નહીં, તો પેકેટ બીજા માર્ગે નીકળે છે અથવા બિલકુલ નીકળતું નથી. પછી સર્વર પર હોસ્ટ કરેલી સેવા અને જાહેર ઇન્ટરનેટ પરની સેવા બંને ચકાસો, કારણ કે તે એક જ નિયમ સેટમાંથી અલગ માર્ગો લે છે.

સર્વર પર, iptables -t nat -L -v -n વડે NAT અને FORWARD નિયમોના પેકેટ કાઉન્ટર વાંચો અને કેપ્ચરમાં એક ફ્લો જુઓ. જો કેપ્ચરમાં ક્લાયન્ટનું સરનામું દેખાય અને કોઈ જવાબ ન આવે, તો ખાલી જગ્યા વળતરના માર્ગ પર અથવા પ્રદાતાના ફિલ્ટરિંગમાં છે, ક્લાયન્ટ પ્રોફાઇલમાં નહીં. કેપ્ચર કરેલા સ્રોતની સરખામણી નિયમ જે સરનામા તરફ અનુવાદ કરે છે તેની સાથે કરો, કારણ કે અસંગતિ એટલે બીજો નિયમ પહેલાં મેળ ખાધો. એક અવલોકિત ફ્લો એક પાના રૂપરેખાંકન વાંચવા કરતાં વધુ નક્કી કરે છે.

પૂલ, અનુવાદિત સરનામું અને ઇન્ટરફેસનું નામ ફેરફાર રેકોર્ડમાં સાથે રાખો. એક પૂલ માટે સાચો નિયમ આગલાનું ખોટું અનુવાદ કરે છે.

સંબંધિત લેખો