உங்கள் VPN ரூட் CA-ஐ ஆஃப்லைனில் வைத்து இருந்தும் சான்றிதழ்களை வழங்குங்கள்
ரூட் விசையை நெட்வொர்க்கிற்கு வெளியே வைத்திருங்கள், இடைநிலை CA மூலம் இலைச் சான்றிதழ்களில் கையொப்பமிடுங்கள், CRL-ஐ சரியான நேரத்தில் வெளியிடுங்கள், முதல் கிளையண்ட் இணைவதற்கு முன் சங்கிலியைச் சோதிக்கவும்.
உங்கள் VPN இரவு 3 மணிக்கு இணைப்புகளுக்குப் பதிலளிக்கிறது, அதே நேரத்தில் அதன் சான்றிதழ்களில் கையொப்பமிடும் இயந்திரம் இழுப்பறையில் அணைக்கப்பட்டு இருக்கிறது. சேவையகச் சான்றிதழைச் சரிபார்க்கும் கிளையண்ட் ஒருபோதும் உங்கள் CA-ஐத் தொடர்பு கொள்ளாது, எனவே எந்த இணைப்பிற்கும் CA அணுகக்கூடியதாக இருக்க வேண்டியதில்லை. திட்டமிடல் தேவைப்படும் பகுதி ஒரு சான்றிதழை வழங்க, புதுப்பிக்க அல்லது ரத்து செய்ய வேண்டிய நாள் ஆகும், ரூட் விசை பூட்டப்பட்டிருக்கும்போது.
ஒரு இணைப்பு உண்மையில் எதைச் சரிபார்க்கிறது
OpenVPN கிளையண்ட் இணையும்போது, சேவையகத்தின் இலைச் சான்றிதழிலிருந்து தான் ஏற்கனவே நம்பும் CA சான்றிதழ் வரை கையொப்பச் சங்கிலியைக் கடக்கிறது, செல்லுபடியாகும் காலத்தைச் சரிபார்க்கிறது, சுயவிவரம் அவ்வாறு கூறினால் ரத்துச் செயல் பட்டியலைப் பார்க்கிறது. உங்கள் ரூட் CA-ஐ ஒருபோதும் தேடுவதில்லை. சேவையகம் கிளையண்ட் சான்றிதழ்களுக்கு அதே வேலையைக் கண்ணாடி போலச் செய்கிறது. இணைக்கும் நேரத்தில் இலை, இடைநிலை மற்றும் முன்பு விநியோகித்த நம்பிக்கைத் தொகுப்பு மட்டுமே இருக்கும்.
உண்மையில் தோல்வியடைவது மூன்றில் ஒன்று: வழங்கும் நேரத்தில் கையொப்ப விசை கிடைக்கவில்லை, ரத்துச் செயல் பட்டியல் பழையதாகிவிட்டது, அல்லது கிளையண்டின் நம்பிக்கைத் தொகுப்பு சேவையகம் வழங்கும் சங்கிலியை விடப் பழையது. முதலாவது செயல்முறைச் சிக்கல்; மற்ற இரண்டும் விநியோகச் சிக்கல்கள். எதுவும் ரூட் விசை ஆன்லைனில் இருக்க வேண்டும் என்று கோரவில்லை, மேலும் சுரங்கப்பாதை அங்கீகாரத்திற்குத் தனிப்பட்ட சான்றிதழைக் கோரும் நிர்வகிக்கப்பட்ட VPN சேவை கையொப்ப அதிகாரத்தை வழங்குநருக்கு மட்டுமே மாற்றுகிறது. Azure புள்ளி-முதல்-தளம் எதிர்மாறாக வேலை செய்கிறது: நீங்கள் ரூட் சான்றிதழைப் பதிவேற்றுகிறீர்கள், அதன் கீழ் கையொப்பமிடப்பட்ட சான்றிதழ்கள் நம்பகமானவையாகக் கருதப்படுகின்றன, எனவே யார் கையொப்பமிடுகிறார், யார் சரிபார்க்கிறார், ஒரு சான்றிதழ் எவ்வாறு முன்கூட்டியே திரும்பப் பெறப்படுகிறது என்று கேளுங்கள்.
ஒருபோதும் முகவரி பெறாத புரவலனில் ரூட்டை உருவாக்குங்கள்
ஆஃப்லைன் ரூட் அரிதாகவே பயன்படுத்தப்படுகிறது: இடைநிலை CA சான்றிதழில் கையொப்பமிடவும், பின்னர் அதைப் புதுப்பிக்க அல்லது ரத்து செய்யவும். மற்ற அனைத்தும் ஒரு நிலை கீழே நடக்கின்றன. நெட்வொர்க்கிலிருந்து விலக்கி வைக்கப்பட்ட இயந்திரத்தில், முடிந்தால் நேரடி அமைப்பிலிருந்து ரூட் வேலையைச் செய்யுங்கள், அறையில் யார் இருந்தார்கள் என்று பதிவு செய்யுங்கள். கட்டளைகள் OpenSSL 1.1.1 அல்லது புதியதைக் கருதுகின்றன, ஏனெனில் பழைய கட்டுமானங்களில் -addext இல்லை.
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out root.key
openssl req -x509 -new -key root.key -sha256 -days 7300 \
-subj "/CN=Example VPN Root CA" -out root.crt \
-addext "basicConstraints=critical,CA:TRUE" \
-addext "keyUsage=critical,keyCertSign,cRLSign"
கையொப்ப புரவலனில் இடைநிலையை உருவாக்கி அதன் கோரிக்கையை மட்டும் ஆஃப்லைன் இயந்திரத்திற்குக் கொண்டு செல்லுங்கள். ரூட் அந்தக் கோரிக்கையை பூஜ்ஜிய பாதை நீளத்துடன் கையொப்பமிடுகிறது, எனவே இடைநிலை CA இறுதிப் புள்ளி சான்றிதழ்களில் கையொப்பமிடலாம் ஆனால் தனக்குக் கீழே மற்றொரு CA-ஐ உருவாக்க முடியாது. அந்த ஒரு நீட்டிப்பு சமரசம் செய்யப்பட்ட கையொப்ப புரவலன் ரூட்டிற்கு இணையான அதிகாரத்தை உருவாக்குவதைத் தடுக்கிறது. ஒவ்வொரு கிளையண்டும் OpenVPN 2.4 அல்லது புதியதை இயக்கினால் மட்டுமே ECDSA-ஐப் பயன்படுத்துங்கள்; இல்லையெனில் RSA விசைகளை உருவாக்கி ஓட்டத்தை அதேபோல் வைத்திருங்கள்.
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out intermediate.key
openssl req -new -key intermediate.key -subj "/CN=Example VPN Intermediate CA" -out intermediate.csr
openssl x509 -req -in intermediate.csr -CA root.crt -CAkey root.key \
-CAcreateserial -days 3650 -sha256 -extfile intermediate.ext -out intermediate.crt
intermediate.ext இல் basicConstraints=critical,CA:TRUE,pathlen:0, keyUsage=critical,keyCertSign,cRLSign மற்றும் authorityKeyIdentifier=keyid:always உள்ளன. கையொப்ப புரவலன் மீண்டும் இணைவதற்கு முன் ரூட் விசையை அதன் பாதுகாப்புப் பெட்டகத்திற்குத் திருப்புங்கள். ரூட் இடைநிலையை ரத்து செய்ய முடிய வேண்டுமானால், openssl x509 -req க்குப் பதிலாக ரூட் நிலை index.txt க்கு எதிராக openssl ca -config root.cnf -extensions intermediate_ca மூலம் கையொப்பமிடுங்கள், வரிசை எண் பதிவாகும்; பின்னர் விளைந்த ரூட் பட்டியலை கிளையண்ட் சுயவிவரத்திற்குள் அனுப்புங்கள், அங்கு கோப்பு அடிப்படையிலான crl-verify அதைத் தொடக்கத்தில் படிக்கிறது. கிளையண்டுகளுக்கு இரண்டு CA சான்றிதழ்களையும் கொண்ட தொகுப்பை அனுப்புங்கள்; ஒரு இலை மட்டும் ரூட்டிற்கு எதிராகச் சரிபார்க்கப்படாது.
இடைநிலையிலிருந்து இலைகளை வழங்குங்கள், தரவுத்தளத்துடன்
openssl x509 -req உடன் கையொப்பமிடுவது ரத்து தேவைப்படும் வரை வேலை செய்கிறது, ஏனெனில் எதுவும் வரிசை எண்ணைப் பதிவு செய்யவில்லை. முதல் சான்றிதழிலிருந்தே openssl ca பயன்படுத்துங்கள், வரிசை எண், காலாவதி மற்றும் ரத்து நிலை ஒரே தரவுத்தளத்தில் இருக்கும். தரவுத்தளக் கோப்புகளை ஒருமுறை உருவாக்கி, பின்னர் உள்ளமைவை அவற்றை நோக்கித் திருப்புங்கள்:
mkdir -p /etc/vpn-ca/intermediate/newcerts
touch /etc/vpn-ca/intermediate/index.txt
echo 1000 > /etc/vpn-ca/intermediate/serial
echo 1000 > /etc/vpn-ca/intermediate/crlnumber
[ ca ]
default_ca = CA_default
[ CA_default ]
dir = /etc/vpn-ca/intermediate
database = $dir/index.txt
new_certs_dir = $dir/newcerts
serial = $dir/serial
crlnumber = $dir/crlnumber
certificate = $dir/intermediate.crt
private_key = $dir/intermediate.key
default_md = sha256
default_days = 365
default_crl_days = 30
unique_subject = no
policy = policy_any
[ policy_any ]
commonName = supplied
[ server_cert ]
basicConstraints = CA:FALSE
keyUsage = critical, digitalSignature
extendedKeyUsage = serverAuth
subjectAltName = @server_names
[ client_cert ]
basicConstraints = CA:FALSE
keyUsage = critical, digitalSignature
extendedKeyUsage = clientAuth
[ server_names ]
DNS.1 = vpn.example.com
விசைப் பயன்பாட்டு வரி ECDSA விசையைக் கருதுகிறது; RSA க்கு keyEncipherment சேர்க்கவும். ஒவ்வொரு கிளையண்டிற்கும் அதன் சொந்த பொதுப் பெயரைக் கொடுங்கள், ஏனெனில் OpenVPN அந்தப் புலத்தால் இணைப்பை அடையாளம் காண்கிறது, CN=vpn-client பகிரும் இரண்டு மடிக்கணினிகள் பதிவுகளிலும், client-config-dir விதிகளிலும் அல்லது எந்தப் பயனர்-குறிப்பிட்ட புஷிலும் வேறுபடுத்த முடியாது, ரத்து முடிவைப் பாதுகாக்கக்கூடிய பண்புக்கூறை இழக்கிறீர்கள். இலையை இவ்வாறு வழங்கி சரிபார்க்கவும்:
openssl req -new -key alice.key -subj "/CN=alice-laptop" -out alice.csr
openssl ca -config intermediate.cnf -extensions client_cert -in alice.csr -out alice.crt -batch
openssl verify -CAfile ca-bundle.crt -untrusted intermediate.crt alice.crt
கையொப்ப விசையை VPN புரவலனுக்கு நகலெடுப்பதற்குப் பதிலாக கொள்கை எல்லைக்குப் பின்னால் வைத்திருங்கள்: கோரிக்கையை அங்கீகரிக்கும், பொதுப் பெயரை அனுமதிக்கப்பட்ட பட்டியலுக்கு எதிராகச் சரிபார்க்கும், சான்றிதழை மட்டும் திருப்பித் தரும் சிறிய சேவை. ஒவ்வொரு வரிசை எண்ணையும் பதிவு செய்யுங்கள்; பதிவு என்பது சான்றிதழுக்கும் அதைக் கோரிய நபருக்கும் இடையிலான ஒரே இணைப்பு.
ரூட்டை எழுப்பாமல் ரத்துச் செயலை வெளியிடுங்கள்
கிளையண்ட் சான்றிதழ்களை இடைநிலை ரத்து செய்கிறது, ஒருபோதும் ரூட் அல்ல. இடைநிலை எரிக்கப்பட்டால் மட்டுமே ரூட் பட்டியல் முக்கியம். crl-verify மூலம் சேவையகத்தை இடைநிலைப் பட்டியலை நோக்கித் திருப்புங்கள். கோப்பு அடிப்படையிலான CRL சேவை தொடக்கத்தில் ஏற்றப்படுகிறது, எனவே ஒவ்வொரு மறுஉருவாக்கத்திற்குப் பிறகும் மீண்டும் ஏற்றுங்கள்; அடைவு வடிவம் இணைக்கும் நேரத்தில் நிலையைப் படித்து ஒவ்வொரு வரிசை எண்ணுக்கும் ஒரு கோப்பைச் செலவிடுகிறது.
ஒரே தரவுத்தளத்திலிருந்து இரண்டு கட்டளைகளால் ரத்து செய்து மீண்டும் உருவாக்குங்கள்:
openssl ca -config intermediate.cnf -revoke /etc/vpn-ca/intermediate/newcerts/1001.pem
openssl ca -config intermediate.cnf -gencrl -out /etc/openvpn/crl.pem
பின்னர் கடிகாரத்தைக் கவனியுங்கள். CRL அடுத்த புதுப்பிப்புப் புலத்தைக் கொண்டுள்ளது, அந்தத் தேதி கடந்ததும் சரிபார்க்கும் தரப்பு பட்டியலைப் புறக்கணிக்காமல் நிராகரிக்கிறது. default_crl_days = 30 உடன் மாதந்தோறும் மறுஉருவாக்கம் சிறிது இடைவெளி விடுகிறது; ஆண்டுதோறும் விடாது. குறுகிய இலை ஆயுள் மிகவும் நம்பகமான கட்டுப்பாடு, ஏனெனில் ரத்துச் செயல் பட்டியல் பார்க்கப்படும் இடத்தில் மட்டுமே பொருந்தும்.
சங்கிலியைச் சோதித்து, பின்னர் சடங்கை எழுதுங்கள்
வடிவமைப்பை நம்புவதற்கு முன் நான்கு தோல்விகளை மீண்டும் உருவாக்குங்கள். openssl verify -CAfile ca-bundle.crt -untrusted intermediate.crt server.crt மூலம் சங்கிலியைச் சரிபார்க்கவும். காலாவதியான கிளையண்ட் சான்றிதழுடன் இணைந்து சேவையகம் அதை நிராகரிப்பதை உறுதிப்படுத்துங்கள். சோதனைக் கிளையண்டை ரத்து செய்து, மீண்டும் ஏற்றி, பட்டியல் நடைமுறைக்கு வருவதை உறுதிப்படுத்துங்கள். புரவலனின் கடிகாரத்தை ஒரு நாள் முன்னோக்கி நகர்த்துங்கள், ஏனெனில் தவறான கடிகாரம் வேறெங்கும் செல்லுபடியாகத் தோன்றும் சான்றிதழ்களை வழங்கி நிராகரிக்கலாம்.
ஆஃப்லைன் ரூட் ஆவணங்கள் இருந்தால் மட்டுமே கட்டுப்பாடு: சடங்கிற்கு இரண்டு பெயரிடப்பட்ட நபர்கள், கையொப்பமிடப்பட்ட ஒவ்வொரு வரிசை எண்ணின் பதிவு, இயந்திரத்திலிருந்து தனியாகச் சேமிக்கப்பட்ட மறையாக்கப்பட்ட காப்புப்பிரதி, தனிமைப்படுத்தப்பட்ட புரவலனில் மீட்டெடுப்புச் சோதனை. அதே சடங்கில் கூடுதல் இடைநிலையில் கையொப்பமிடுங்கள், இறந்த கையொப்ப புரவலன் உங்களை நள்ளிரவில் ரூட்டைத் திறக்கக் கட்டாயப்படுத்தாதிருக்க.
அதை முழுமை என்று சொல்வதற்கு முன் ஐந்து விஷயங்களை உறுதிப்படுத்துங்கள்: ரூட் விசை நெட்வொர்க் புரவலனில் இல்லை, இடைநிலை விசை கையொப்ப புரவலனில் மட்டுமே வாழ்கிறது, கிளையண்ட் தொகுப்பு இரண்டு CA சான்றிதழ்களையும் கொண்டுள்ளது, CRL எதிர்கால அடுத்த புதுப்பிப்பைக் கொண்டுள்ளது, சங்கிலியின் ஒவ்வொரு காலாவதிக்கும் யாரோ ஒருவரிடம் நாட்காட்டி உள்ளீடு உள்ளது. ஒன்று இல்லாவிட்டால், ஆஃப்லைன் போல் தோன்றும் அமைப்பு ஆவணப்படுத்தப்படாதது மட்டுமே.