macOS-இல், ஒரு கொலைச் சுவிட்ச் அதன் பின்னால் உள்ள பாக்கெட் வடிகட்டி கொள்கையைப் போலவே மட்டுமே நல்லது, மேலும் pf அந்தக் கொள்கையைச் செயல்படுத்தும் பகுதி. கொள்கை ஒரே நேரத்தில் இரண்டு எதிரெதிர் விஷயங்களைச் செய்ய வேண்டும்: சுரங்கம் இருக்க வாடிக்கையாளர் தன் சேவையகத்தை அடைய அனுமதிப்பது, மற்ற அனைத்தும் நேரடியாக வெளியேறுவதைத் தடுப்பது. வெளியிடப்பட்ட விதித் தொகுப்புகளில் பெரும்பாலானவை இரண்டாவதைச் செய்து முதலாவதை மறந்துவிடுகின்றன, எனவே இயந்திரம் பாதுகாப்பைப் பெறுவதற்குப் பதிலாக இணைப்பை இழக்கிறது. வேலை செய்யும் பதிப்பு முடிவுப் புள்ளி, தீர்வி மற்றும் சுரங்கத்தைப் பெயரிடுகிறது, அதற்கு மேல் ஒன்றுமில்லை.

பாக்கெட் வடிகட்டி எதை முடிவு செய்ய முடியும், எதை முடியாது

pf இடைமுகங்கள், முகவரிகள், நெறிமுறை எண்கள் மற்றும் துறைகளைப் பார்க்கிறது, அங்கேயே நிற்கிறது. எந்தச் செயல்முறை ஒரு சாக்கெட்டைத் திறந்தது என்பதை அது ஒருபோதும் அறியாது, எனவே ஒரு நிரலுக்கு எழுதப்பட்ட அனுமதி அதே துறையை அடையக்கூடிய ஒவ்வொரு நிரலுக்கும் அனுமதியாகிறது. இப்படித்தான் ஒரு தாராள UDP விதிவிலக்கு கொலைச் சுவிட்சை மீண்டும் சாதாரண வலையமைப்பாக மாற்றுகிறது. பயன்பாட்டை அறிந்த தடுப்பு வாடிக்கையாளருக்கோ அமைப்பு நீட்டிப்புக்கோ உரியது, இந்தக் கோப்புக்கு அல்ல.

வடிகட்டி பாதைகளையும் உருவாக்குவதில்லை. வாடிக்கையாளர் விழும்போது, இயல்புநிலைப் பாதை இன்னும் இறந்த சுரங்கத்தைச் சுட்டிக்காட்டலாம், pf அதை Wi-Fi-க்கு அமைதியாகத் திரும்புவதற்குப் பதிலாகத் தடுக்கப்பட்ட பாக்கெட்டுகளாக மாற்றுகிறது. தடுப்பே நோக்கமான முடிவு, சுற்றிவளைக்க வேண்டிய குறைபாடு அல்ல.

விதியின் உரையை விட வரிசையே அடிக்கடி முடிவைத் தீர்மானிக்கிறது. quick இல்லாமல் pf பொருத்தத்திற்குப் பிறகும் மதிப்பீட்டைத் தொடர்கிறது, கடைசியாகப் பொருந்தும் விதி வெல்லும், எனவே கீழேயுள்ள ஒரு அகலமான கடப்பு மேலேயுள்ள கவனமான விதிவிலக்குகளை ரத்து செய்கிறது. கடப்புகளை quick எனக் குறித்தால் முதல் பொருத்தம் இறுதியாகிறது, ஒரு கொள்கை எழுத்தாளர் பொதுவாகக் கருதுவது அதுவே.

முதலில் இடைமுகம் மற்றும் முடிவுப் புள்ளியின் உண்மைகளைப் படியுங்கள்

ஒவ்வொரு Mac-இலும் கம்பியில்லா இடைமுகங்கள் ஒரே மாதிரி எண்ணிடப்படுவதில்லை, சுரங்கச் சாதனம் துவக்கங்களுக்கு இடையே மாறக்கூடிய எண்ணைப் பெறுகிறது. இல்லாத சாதனத்தைப் பெயரிடும் விதி பகுப்பாய்வின்போது தோல்வியடைகிறது, அது சத்தமானதும் பிடிக்க எளிதானதும் ஆகும், அதேசமயம் தவறான இருக்கும் சாதனத்தைப் பெயரிடும் விதி தூய்மையாகப் பகுப்பாய்வு செய்யப்பட்டு நீங்கள் நிறுத்த விரும்பிய இயக்கத்தை அனுமதிக்கிறது.

வாடிக்கையாளர் இணைந்திருக்கும்போது உண்மைகளைச் சேகரியுங்கள், ஏனெனில் சுரங்கச் சாதனம் அப்போது மட்டுமே இருக்கும். இயல்புநிலைப் பாதையை வைத்திருக்கும் இடைமுகம், வாடிக்கையாளர் உருவாக்கிய சாதனம், மேலும் அது அழைக்கும் சேவையகத்தின் முகவரி மற்றும் துறை உங்களுக்குத் தேவை. அந்தக் கடைசி மதிப்பையே பெரும்பாலான விதித் தொகுப்புகள் விட்டுவிடுகின்றன, அதை விட்டுவிடுவதே நகலெடுத்த தொகுப்பு தன் சொந்த சுரங்கத்தைத் தடுக்கக் காரணம்.

route -n get default
ifconfig -l
scutil --nc list

முதல் கட்டளை இப்போது வெல்லும் இடைமுகத்தைப் பெயரிடுகிறது, இரண்டாவது கர்னலுக்குத் தெரிந்த ஒவ்வொரு சாதனத்தையும் பட்டியலிடுகிறது, மூன்றாவது அமைப்பு தொடங்கக்கூடிய VPN கட்டமைப்புகளைக் காட்டுகிறது. அந்தப் பதில்களை எழுதி வையுங்கள், பின்னர் வாடிக்கையாளரின் சொந்தக் கட்டமைப்பிலிருந்து சேவையக முகவரியையும் துறையையும் படியுங்கள்.

சுரங்கப் பாதையைச் சுற்றி விதித் தொகுப்பை எழுதுங்கள்

கீழேயுள்ள கோப்பு இயல்பாக மறுத்து ஐந்து விஷயங்களை மீண்டும் அனுமதிக்கிறது: லூப்பபேக், சுரங்கச் சாதனம், வாடிக்கையாளரின் சேவையகத்திற்கான பாதை, சுரங்கம் உருவாகும் முன் பயன்படுத்தப்படும் தீர்வி, மற்றும் கம்பியில்லா இணைப்பைப் பயனுள்ளதாக வைத்திருக்கும் இரண்டு பரிமாற்றங்கள். இடைமுகப் பெயர்களும் சேவையக முகவரியும் உங்கள் இயந்திரத்திலிருந்து வருகின்றன, எனவே நீங்கள் உறுதிப்படுத்திய மதிப்புகளை இடுங்கள். சுரங்க எண்ணும் உங்களுடையதுடன் பொருந்தாது.

set skip on lo0
block all
pass out quick on utun0
# maintain this line when the server address changes
pass out quick on en1 inet proto udp to 203.0.113.10 port 1194
# only the resolver the client uses before the tunnel exists
pass out quick on en1 inet proto udp to 192.0.2.53 port 53
pass out quick on en1 inet proto udp from any port 68 to any port 67
pass out quick on en1 inet proto udp to 224.0.0.251 port 5353

Mac ஒரு முகவரி கிடைப்பதற்கு முன்பே அதைக் கேட்பதால் DHCP வரி உள்ளது, எனவே கோரிக்கை பயன்படுத்தக்கூடிய மூல முகவரி இல்லாமல் துறை 68-இலிருந்து துறை 67 நோக்கி வெளியேறுகிறது. மல்டிகாஸ்ட் வரி கம்பியில்லா இணைப்பு பயன்படுத்தத் தகுந்ததா என அமைப்பு தீர்மானிக்க அனுமதிக்கிறது, அதை நீக்கினால் வேலை செய்யும் வலையமைப்பிலும் இணைப்பு இல்லை எனத் தெரிவிக்கும் இயந்திரம் உருவாகிறது. முடிவுப் புள்ளி வரி OpenVPN தன் சேவையகத்தை அடைய அனுமதிக்கிறது; அது இல்லாமல் block all வெளிப்புறக் கைக்குலுக்கலை வீழ்த்துகிறது, சுரங்கம் ஒருபோதும் மேலெழுவதில்லை. தீர்வியின் வரி பொதுவான DNS அனுமதியை விடக் குறுகியது, ஏனெனில் இயந்திரம் செய்யும் ஒவ்வொரு வினவலுக்கும் பதிலாக ஒரு முகவரியையும் ஒரு துறையையும் பெயரிடுகிறது.

அந்த முடிவுப் புள்ளி மற்றும் தீர்வி விதிவிலக்குகளே இருக்க வேண்டிய இரண்டு; மற்ற அனைத்தும் தடுக்கப்பட்டே இருக்கும். வாடிக்கையாளர் நேரடி முகவரியை அழைத்தால், தீர்வி வரியை நீக்கி முடிவுப் புள்ளி வரியை வைத்திருங்கள். சேவையக முகவரி மாறினால், அடுத்த இணைப்புக்கு முன் அந்த வரியைப் புதுப்பியுங்கள், அல்லது வாடிக்கையாளரின் சொந்தக் கொக்கியிலிருந்து pf அட்டவணையை நிரப்பி அதற்குப் பதிலாக அட்டவணையைப் பொருத்துங்கள்.

சுரங்கத்தை இறக்குங்கள், பின்னர் மறுதொடக்கம் செய்யுங்கள்

ஏற்றுவதற்கு முன் பகுப்பாய்வு செய்யுங்கள், ஏனெனில் இலக்கணப் பிழை உலர்ந்த ஓட்டத்தில் மலிவானது, தொலை அமர்வில் விலை உயர்ந்தது. பின்னர் கோப்பை ஏற்றுங்கள், வடிகட்டி அணைந்திருந்தால் இயக்குங்கள், உண்மையில் எது அமலில் உள்ளது என்பதை மீண்டும் படியுங்கள். மீண்டும் படிப்பது சடங்கு அல்ல: மற்றொரு நங்கூரம் நீங்கள் எழுதாத விதிகளைச் சேர்க்கலாம், எனவே அச்சிடப்பட்ட தொகுப்பை உங்கள் கோப்புடன் ஒப்பிடுங்கள்.

sudo pfctl -n -v -f /etc/pf.conf
sudo pfctl -f /etc/pf.conf
sudo pfctl -e
sudo pfctl -s rules
sudo pfctl -s Anchors
sudo pfctl -a <anchor> -s rules
sudo pfctl -s info

விதிகள் ஏற்றப்பட்ட நிலையில் சுரங்கத்தை இறக்கி ஒரு பக்கத்தை ஏற்ற முயலுங்கள். சாதாரண இயக்கம் நிற்க வேண்டும், இயந்திரம் உறங்கி எழுந்த பிறகும் நிற்க வேண்டும், ஏனெனில் அந்த மாற்றத்தில்தான் பழைய நிலை மீண்டும் ஊடுருவுகிறது. மீண்டும் இணைந்து விதித் தொகுப்பைத் தொடாமல் இயக்கம் மீள்வதை உறுதிப்படுத்துங்கள். சுரங்கம் இறக்கப்பட்டிருந்தும் உலாவி வேலை செய்தால், ஏதோ ஒரு விதி நீங்கள் நினைத்ததை விட அகலமானது, மீண்டும் படிப்பது பொதுவாக அதைப் பெயரிடும்.

மறுதொடக்கம் என்பது மக்கள் தவிர்க்கும் பகுதி. macOS துவக்கத்தில் /etc/pf.conf படிக்கிறது, ஆனால் கோப்பைப் படிப்பது வடிகட்டியை இயக்குவதற்குச் சமமல்ல, எனவே இப்போது வேலை செய்யும் விதித் தொகுப்பு மறுதொடக்கத்திற்குப் பிறகு செயலற்றதாக இருக்கலாம். பின்னர் sudo pfctl -s info இயக்கி நிலை வரி வடிகட்டியை இயக்கப்பட்டதாகத் தெரிவிக்கிறதா என உறுதிப்படுத்துங்கள்.

வெளியேறும் பாதையையும் மறுதொடக்கப் பாதையையும் நேர்மையாக வைத்திருங்கள்

எல்லாவற்றையும் தடுக்கும் விதித் தொகுப்பு தொலைவிலிருந்து நிர்வகிக்கும் இயந்திரத்திலிருந்து உங்களைப் பூட்டவும் முடியும். முடிந்தால் உள்ளூர் அமர்விலிருந்து திருத்துங்கள், முந்தைய கோப்பைப் புதியதற்கு அருகில் வைத்திருங்கள், தேவைப்படும் முன் திரும்பும் வழியை அறிந்திருங்கள். கீழேயுள்ள கட்டளைகள் வடிகட்டியை முடக்கி நீங்கள் வைத்திருந்த நகலை மீண்டும் ஏற்றுகின்றன, இது பணியகத்திலிருந்து இயக்க வேண்டிய வரிசை, நீங்கள் இப்போது வெட்டிய சுரங்கம் வழியாக அல்ல. ஐந்து நொடி திரும்புதல் ஒவ்வொரு முறையும் ஒரு புத்திசாலி விதியை வெல்லும்.

sudo pfctl -d
sudo pfctl -f /etc/pf.conf.previous
sudo pfctl -s rules

நிலைத்தன்மைக்கு pfctl -e இயக்கி துவக்கத்தில் உங்கள் கோப்பை ஏற்றும் துவக்க டீமன் தேவை. மற்ற எந்தச் சிறப்புரிமை வேலையைப் போலவே அதைக் கையாளுங்கள்: முழுப் பாதைகள், பின்னர் படிக்கக்கூடிய பதிவு, மற்றும் உடல்ரீதியாக அடையக்கூடிய இயந்திரத்தில் ஒரு சோதனை. அமைதியாகத் தோல்வியடையும் டீமன் இயந்திரத்தைப் பாதுகாப்பற்றதாகவும் சாதாரணமாகத் தெரியும்படியும் விட்டுவிடும்.

இடைவெளிகளை ஆவணப்படுத்துங்கள், தன் சொந்த சுரங்கச் சாதனத்தை உருவாக்கும் இரண்டாவது VPN வாடிக்கையாளரில் தொடங்குங்கள். உங்கள் விதிகள் ஒரு சுரங்க இடைமுகத்தைப் பெயரிடுகின்றன, எனவே இரண்டாவது தடுக்கப்பட்டே இருக்கும் அல்லது பின்னர் சேர்க்கப்படும் அகலமான விதியால் பிடிக்கப்படும். டெதரிங் மற்றும் ஹாட்ஸ்பாட் இடைமுகங்கள் சில நேரங்களில் மட்டுமே தோன்றும், அதே குறிப்புக்குத் தகுதியானவை. அந்த இடைவெளிகளில் எதுவும் கொள்கையைத் தவிர்க்கும் காரணமல்ல; அவை கொள்கை இன்னும் நிலைத்திருக்கும் நிபந்தனைகள்.

தொடர்புடைய கட்டுரைகள்