દરેક VPN ક્લાયંટ પૂલ માટે એક ગંતવ્ય શ્રેણી બ્લોક કરો
એક nftables નિયમ ગેટવેના પોતાના ટ્રાફિકને સ્પર્શ કર્યા વિના મંજૂર VPN પૂલ માટે ગંતવ્ય પ્રીફિક્સ નકારી શકે છે. હૂક અને સ્થાન મેળવો.
એક નિયમ મંજૂર VPN પૂલને ગંતવ્ય શ્રેણીથી દૂર રાખી શકે છે, ગેટવે જે બીજું કંઈ કરે છે તેમાં ખલેલ પહોંચાડ્યા વિના. નિયમ પોતે ટૂંકો છે; તે કામ કરશે કે નહીં તે નક્કી કરતા ભાગો છે જે હૂકમાં તે રહે છે અને સાંકળમાં તેનું સ્થાન. આ બેમાં ભૂલ કરો તો એવો ફાયરવોલ મળે છે જે સાચો દેખાય છે અને અસંગત રીતે વર્તે છે. નિયમ પેકેટને જોય ત્યારે પેકેટ શું કરે છે ત્યાંથી શરૂ કરો.
નિયમ ખરેખર શું મેળવે છે
નિયમ એકસાથે ત્રણ વસ્તુઓ મેળવે છે: ઇનપુટ ઇન્ટરફેસ, સ્રોત પ્રીફિક્સ અને ગંતવ્ય પ્રીફિક્સ. ડ્રોપ લાગુ થાય તે પહેલાં ત્રણેય સાચા હોવા જોઈએ, અને એ જ તેને સાંકડો રાખે છે. તેને એક અભિવ્યક્તિ તરીકે વાંચવું ત્રણ અલગ નીતિઓ તરીકે વાંચવા કરતાં સરળ છે.
ઇન્ટરફેસ મેળ એ છે જે ફોરવર્ડ થયેલ ક્લાયંટ ટ્રાફિકને ગેટવેની પોતાની જોડાણોથી અલગ પાડે છે. તેના વિના, ફક્ત સ્રોત પૂલનું નામ આપતો નિયમ ગેટવે પોતે તે સરનામેથી બનાવેલા પેકેટોને પણ અસર કરશે, જો ક્યારેય એવું થાય તો. સ્રોત પ્રીફિક્સ નીતિને મંજૂર ક્લાયંટ સુધી મર્યાદિત કરે છે, અને ગંતવ્ય પ્રીફિક્સ તેને એક શ્રેણી સુધી. નિયમને યાદી તરીકે નહીં, છેદ તરીકે વાંચો.
કંઈપણ સંપાદિત કરતા પહેલાં ત્રણ મૂલ્યો લખો: ટનલ ઇન્ટરફેસનું નામ, સર્વર જે પૂલ આપે છે, અને જે પ્રીફિક્સ તમે નકારવા માગો છો. તેમાંથી કોઈપણમાં ટાઇપો હોય તો એવો નિયમ બને છે જે સ્વચ્છ રીતે પાર્સ થાય છે અને કંઈ રક્ષણ કરતો નથી. તે ત્રણ મૂલ્યો નિયમની બાજુમાં ફેરફાર રેકોર્ડમાં રાખો.
હૂક નક્કી કરે છે કે નિયમ કોના પર લાગુ પડે
netfilter સાંકળ હૂક સાથે જોડાયેલી હોય છે, અને હૂક જ નક્કી કરે છે કે સાંકળ કયા પેકેટો જુએ છે. ફોરવર્ડ હૂક ગેટવે દ્વારા રાઉટ થતો ટ્રાફિક જુએ છે, અને ક્લાયંટથી ગંતવ્ય સુધીનો ટ્રાફિક એ જ છે. સાંકળમાં બાકીનું બધું બીજા પ્રેક્ષકો તરફ નિર્દેશિત છે.
ઇનપુટ હૂક ગેટવે પોતાને સંબોધિત ટ્રાફિક જુએ છે, તેથી ત્યાં મૂકેલો નિયમ ટ્રાન્ઝિટને બદલે તેની પોતાની સેવાઓની ઍક્સેસ નિયંત્રિત કરે છે. આઉટપુટ હૂક ગેટવે જે ટ્રાફિક ઉત્પન્ન કરે તે જુએ છે, જે ક્લાયંટ પૂલ નીતિને જે જોઈએ તેનાથી વિરુદ્ધ છે. સાંકળનાં નામ જે રૂલસેટ લખનારે પસંદ કરેલા મનસ્વી લેબલ છે, તેથી નામ પરથી હૂક અનુમાન કરશો નહીં. સાંકળ ક્યાં જોડાયેલી છે તે તપાસો, પછી અનુમાન કરો કે તે શું મેળવી શકે.
| Hook | Traffic it sees | Right for this policy |
|---|---|---|
| input | Addressed to the gateway | No, that is the host's own services |
| forward | Routed through the gateway | Yes, for client-to-destination traffic |
| output | Generated by the gateway | No, that is the opposite direction |
જોડાણ વાંચવું એ એક લીટીની તપાસ છે જે નિયમને એવી સાંકળમાં પડતો અટકાવે છે જે પેકેટ ક્યારેય જોતી નથી.
વિશાળ સ્વીકૃતિ પહેલાં નિયમ મૂકો
નિયમો ક્રમમાં મૂલ્યાંકિત થાય છે, અને પ્રથમ ચુકાદો જીતે છે. સાંકળમાં પહેલાંની વિશાળ સ્વીકૃતિ જે પેકેટોને મેળવે છે તેમના માટે મૂલ્યાંકન સમાપ્ત કરે છે, તેથી પછી ઉમેરાયેલો ડ્રોપ તેમના માટે ક્યારેય ચાલતો નથી. એ ક્રમ-નિયમ જ સાચો દેખાતા નિયમની કોઈ અસર ન થવાનું આખું કારણ છે.
નિયમને અંતે ઉમેરવાને બદલે સ્વીકૃતિ પહેલાં દાખલ કરો. જો સાંકળમાં ટનલ ઇન્ટરફેસ માટે પહેલેથી સામાન્ય સ્વીકૃતિ હોય, તો નવો નિયમ તેની પહેલાં આવવો જોઈએ, નહીં તો તે ફક્ત સજાવટ છે. પરિણામી ક્રમ તપાસો, તમે સંપાદિત કરેલી ફાઇલ નહીં, કારણ કે ઘણી ફાઇલોમાંથી જોડાયેલો રૂલસેટ કદાચ એક પણ સાથે મેળ ખાતો ન હોય. પછી પૂલમાંથી પરીક્ષણ પેકેટ સાથે ખાતરી કરો.
sudo nft list chain inet filter forward
sudo nft insert rule inet filter forward iifname "tun0" ip saddr 10.90.0.0/24 ip daddr 198.51.100.0/24 drop
sudo nft -c -f /etc/nftables.conf
ત્રીજો આદેશ ફાઇલને લાગુ કર્યા વિના પાર્સ કરે છે, જે સિન્ટેક્સ ભૂલોને વિક્ષેપ બનતા પહેલાં પકડે છે. રોલબેક યોજના સાથે લાગુ કરો, કારણ કે ફોરવર્ડ સાંકળમાં ખોટો નિયમ તમે જે ટનલ પર કામ કરો છો તે કાપી શકે છે.
હાલના ફ્લો તમારા નવા નિયમની પરવા કરતા નથી
નિયમ અસ્તિત્વમાં આવે તે પહેલાં બનેલી conntrack એન્ટ્રી અગાઉની સ્વીકૃતિ સાથે મેળ ખાતી રહે છે. તેથી નવો ડ્રોપ ક્યારેક નવા જોડાણો માટે કામ કરતો દેખાય છે અને જેની પરીક્ષણ થાય છે તેના માટે કંઈ કરતો નથી.
સાંકળની ટોચ પર સ્ટેટ મેળ વાંચો. જો તે તમારા નિયમ પહેલાં established અને related ટ્રાફિક સ્વીકારે છે, તો ચાલુ દરેક ફ્લો બંધ ન થાય ત્યાં સુધી વહેતો રહે છે. કટોકટીના નિયમ માટે સામાન્ય રીતે એ જ વર્તન તમે ઇચ્છો છો, અને જ્યારે તાત્કાલિક કટની અપેક્ષા રાખો ત્યારે તે મૂંઝવણભર્યું છે. તૈનાત કરતા પહેલાં નક્કી કરો કે કઈ અસર જોઈએ છે. ખુલ્લા જોડાણનો ફરી ઉપયોગ કરતી પરીક્ષા તમને ખોટી વાર્તા કહેશે.
sudo conntrack -L -s 10.90.0.14 -d 198.51.100.20
sudo nft list ruleset | grep -n -A3 'ct state'
પ્રથમ આદેશ દર્શાવે છે કે ફ્લો છે કે નહીં, અને બીજો દર્શાવે છે કે અગાઉનો સ્ટેટ નિયમ તેને સ્વીકારતો રહે છે કે નહીં. બંને ફક્ત-વાંચન છે અને ઘટના દરમિયાન ચલાવવા સુરક્ષિત છે.
આ નિયમ શું નથી
નિયમ ડોમેન કાળી યાદી, IPv6 નીતિ કે કોઈ એકલ એપ્લિકેશન ખાતા પરની મર્યાદા નથી.
તેમાંથી દરેકને પોતાની પદ્ધતિ જોઈએ. ડોમેન બ્લોકને નામ ઉકેલવા પડે, જે પેકેટ ફિલ્ટર કરતું નથી. IPv6 ટ્રાફિકને પોતાનો મેળ જોઈએ, કારણ કે ip અભિવ્યક્તિ ip6 પેકેટો વિશે કંઈ કહેતી નથી. એપ્લિકેશન-સ્તરની મર્યાદા પ્રીફિક્સ મેળની નહીં, સેવા કે પ્રમાણિત પ્રોક્સીની છે. આ જરૂરિયાતોને અલગ રાખવી એ જ એક સાંકડા નિયમને ચાર કામ કરવા માટે કહેવાતા અટકાવે છે.
આ નિયમ જે કરાર આપે છે તે ચોક્કસ છે: મંજૂર પૂલથી એક ગંતવ્ય પ્રીફિક્સ તરફનો ટ્રાફિક નકારવામાં આવે છે, જ્યારે અસંબંધિત ગેટવે ટ્રાફિક તેની હાલની નીતિ રાખે છે. તે વાક્ય નિયમની બાજુમાં લખો, અને આગલી વ્યક્તિ જાણશે કે તે શેના માટે હતો.