ปัญหา
เมื่อไม่นานมานี้ หลายๆ คนไม่รู้ว่าการทำงานจากที่บ้านเป็นอย่างไร การระบาดใหญ่ได้เปลี่ยนแปลงสถานการณ์ในโลกไปอย่างมาก ทุกคนเริ่มปรับตัวเข้ากับสถานการณ์ปัจจุบัน กล่าวคือ การออกจากบ้านกลายเป็นเรื่องไม่ปลอดภัยเลย และหลายคนต้องจัดระเบียบงานจากที่บ้านให้กับพนักงานอย่างรวดเร็ว
อย่างไรก็ตาม การขาดแนวทางที่มีความสามารถในการเลือกโซลูชันสำหรับการทำงานจากระยะไกลอาจนำไปสู่การสูญเสียที่แก้ไขไม่ได้ รหัสผ่านผู้ใช้สามารถถูกขโมยได้ และสิ่งนี้จะทำให้ผู้โจมตีสามารถเชื่อมต่อกับเครือข่ายและทรัพยากรไอทีขององค์กรอย่างไม่สามารถควบคุมได้
นั่นคือเหตุผลว่าทำไมความต้องการในการสร้างเครือข่าย VPN ขององค์กรที่เชื่อถือได้จึงเพิ่มขึ้น ฉันจะบอกคุณเกี่ยวกับ เชื่อถือได้, ปลอดภัย и ง่าย ในการใช้งานเครือข่าย VPN
ทำงานตามรูปแบบ IPsec/L2TP ซึ่งใช้คีย์และใบรับรองที่ไม่สามารถเรียกคืนได้ซึ่งจัดเก็บไว้ในโทเค็นเพื่อตรวจสอบสิทธิ์ไคลเอ็นต์ และยังส่งข้อมูลผ่านเครือข่ายในรูปแบบที่เข้ารหัสอีกด้วย
เซิร์ฟเวอร์ที่มี CentOS 7 (ที่อยู่: centos.vpn.server.ad) และไคลเอนต์ที่มี Ubuntu 20.04 รวมถึงไคลเอนต์ที่มี Windows 10 ถูกนำมาใช้เป็นการสาธิตย่อมาจากการกำหนดค่า
คำอธิบายระบบ
VPN จะทำงานตามรูปแบบ IPSec + L2TP + PPP มาตรการ โปรโตคอลแบบจุดต่อจุด (พรรคพลังประชาชน) ทำงานที่ data link layer ของโมเดล OSI และจัดให้มีการตรวจสอบผู้ใช้และการเข้ารหัสข้อมูลที่ส่ง ข้อมูลของมันถูกห่อหุ้มไว้ในข้อมูลของโปรโตคอล L2TP ซึ่งรับประกันการสร้างการเชื่อมต่อในเครือข่าย VPN จริง ๆ แต่ไม่ได้ให้การรับรองความถูกต้องและการเข้ารหัส
ข้อมูล L2TP ถูกห่อหุ้มไว้ใน IPSec ซึ่งให้การตรวจสอบสิทธิ์และการเข้ารหัสด้วย แต่ต่างจาก PPP ตรงที่การตรวจสอบสิทธิ์และการเข้ารหัสเกิดขึ้นที่ระดับอุปกรณ์ ไม่ใช่ที่ระดับผู้ใช้
คุณสมบัตินี้ช่วยให้คุณตรวจสอบสิทธิ์ผู้ใช้จากอุปกรณ์บางชนิดเท่านั้น เราจะใช้โปรโตคอล IPSec เหมือนเดิมและอนุญาตการตรวจสอบสิทธิ์ผู้ใช้จากอุปกรณ์ใดก็ได้
การตรวจสอบผู้ใช้โดยใช้สมาร์ทการ์ดจะดำเนินการที่ระดับโปรโตคอล PPP โดยใช้โปรโตคอล EAP-TLS
ข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับการทำงานของวงจรนี้สามารถพบได้ใน
เหตุใดโครงการนี้จึงตรงตามข้อกำหนดทั้งสามประการของเครือข่าย VPN ที่ดี
- ความน่าเชื่อถือของโครงการนี้ได้รับการทดสอบตามเวลา มันถูกใช้ในการปรับใช้เครือข่าย VPN ตั้งแต่ปี 2000
- การรับรองความถูกต้องของผู้ใช้ที่ปลอดภัยนั้นมาจากโปรโตคอล PPP
การใช้งานมาตรฐานของโปรโตคอล PPP ที่พัฒนาโดย Paul Mackerras ไม่ได้ให้ระดับความปลอดภัยที่เพียงพอเพราะว่า สำหรับการตรวจสอบสิทธิ์ ในกรณีที่ดีที่สุด จะใช้การตรวจสอบสิทธิ์โดยใช้ข้อมูลเข้าสู่ระบบและรหัสผ่าน เราทุกคนรู้ดีว่ารหัสผ่านเข้าสู่ระบบสามารถสอดแนม คาดเดา หรือขโมยได้ อย่างไรก็ตาม เป็นเวลานานแล้วที่ผู้พัฒนาแจน แค่ ไคเซอร์ вการนำไปปฏิบัติ โปรโตคอลนี้แก้ไขปัญหานี้และเพิ่มความสามารถในการใช้โปรโตคอลที่ใช้การเข้ารหัสแบบไม่สมมาตร เช่น EAP-TLS สำหรับการตรวจสอบสิทธิ์ นอกจากนี้ เขายังเพิ่มความสามารถในการใช้สมาร์ทการ์ดในการตรวจสอบสิทธิ์ ซึ่งทำให้ระบบมีความปลอดภัยมากขึ้น
ขณะนี้การเจรจาที่ดำเนินอยู่กำลังดำเนินการเพื่อรวมสองโครงการนี้ และคุณสามารถมั่นใจได้ว่าจะไม่ช้าก็เร็วสิ่งนี้จะเกิดขึ้นต่อไป ตัวอย่างเช่น PPP เวอร์ชันแพตช์อยู่ในที่เก็บ Fedora มาเป็นเวลานาน โดยใช้โปรโตคอลที่ปลอดภัยสำหรับการตรวจสอบสิทธิ์ - จนกระทั่งเมื่อไม่นานมานี้ เครือข่ายนี้สามารถใช้งานได้โดยผู้ใช้ Windows เท่านั้น แต่เพื่อนร่วมงานของเราจาก Moscow State University Vasily Shokov และ Alexander Smirnov พบว่า
โครงการไคลเอนต์ L2TP เก่าสำหรับ Linux และแก้ไขมัน เราได้แก้ไขข้อบกพร่องและข้อบกพร่องมากมายในงานของลูกค้าร่วมกัน ทำให้การติดตั้งและการกำหนดค่าระบบง่ายขึ้น แม้ในขณะที่สร้างจากแหล่งที่มาก็ตาม ที่สำคัญที่สุดคือ:- แก้ไขปัญหาความเข้ากันได้ของไคลเอนต์เก่าด้วยอินเทอร์เฟซของ openssl และ qt เวอร์ชันใหม่
- ลบ pppd ออกจากการส่งโทเค็น PIN ผ่านไฟล์ชั่วคราว
- แก้ไขการเปิดโปรแกรมขอรหัสผ่านไม่ถูกต้องผ่านทางอินเทอร์เฟซแบบกราฟิก ซึ่งทำได้โดยการติดตั้งสภาพแวดล้อมที่ถูกต้องสำหรับบริการ xl2tpd
- ขณะนี้การสร้าง L2tpIpsecVpn daemon ดำเนินการร่วมกับการสร้างไคลเอ็นต์เอง ซึ่งทำให้กระบวนการสร้างและการกำหนดค่าง่ายขึ้น
- เพื่อความสะดวกในการพัฒนา ระบบ Azure Pipelines จะเชื่อมต่อเพื่อทดสอบความถูกต้องของบิลด์
- เพิ่มความสามารถในการบังคับดาวน์เกรด
ระดับความปลอดภัย ในบริบทของ openssl สิ่งนี้มีประโยชน์สำหรับการรองรับระบบปฏิบัติการใหม่อย่างถูกต้องโดยตั้งค่าระดับความปลอดภัยมาตรฐานไว้ที่ 2 โดยมีเครือข่าย VPN ที่ใช้ใบรับรองที่ไม่ตรงตามข้อกำหนดด้านความปลอดภัยของระดับนี้ ตัวเลือกนี้จะมีประโยชน์สำหรับการทำงานกับเครือข่าย VPN เก่าที่มีอยู่
สามารถดูฉบับแก้ไขได้ที่
ไคลเอนต์นี้รองรับการใช้สมาร์ทการ์ดในการตรวจสอบสิทธิ์ และยังซ่อนความยากลำบากและความยากลำบากของการตั้งค่าโครงร่างนี้ภายใต้ Linux ให้มากที่สุดเท่าที่จะเป็นไปได้ ทำให้การตั้งค่าไคลเอนต์ง่ายและรวดเร็วที่สุด
แน่นอนว่าเพื่อการเชื่อมต่อที่สะดวกสบายระหว่าง PPP และ GUI ไคลเอนต์ มันเป็นไปไม่ได้หากไม่มีการแก้ไขเพิ่มเติมในแต่ละโครงการ แต่ถึงกระนั้นพวกเขาก็ถูกย่อให้เล็กสุดและลดลงเหลือน้อยที่สุด:
- แก้ไขแล้ว
ข้อผิดพลาดในการส่งต่อรหัส PIN โทเค็นจาก PPP ไปยังบริบท openssl อย่างไม่ถูกต้อง - แก้ไขแล้ว
เกิดข้อผิดพลาดตามลำดับการโหลดการกำหนดค่าและการเริ่มต้นบริบท openssl . ข้อผิดพลาดนี้ไม่อนุญาตให้เราโหลดสิ่งใดจากไฟล์การกำหนดค่า /etc/ppp/openssl.cnf ในเครื่องยกเว้นข้อมูลเกี่ยวกับเอ็นจิ้น openssl สำหรับการทำงานกับสมาร์ทการ์ด ซึ่งเป็นความไม่สะดวกร้ายแรง ตัวอย่างเช่น นอกเหนือจากข้อมูลเกี่ยวกับเอ็นจิ้น เราต้องการตั้งค่าอย่างอื่น ตัวอย่างเช่น แก้ไขระดับความปลอดภัยเมื่อสร้างการเชื่อมต่อ
ตอนนี้คุณสามารถเริ่มการตั้งค่าได้แล้ว
การปรับแต่งเซิร์ฟเวอร์
มาติดตั้งแพ็คเกจที่จำเป็นทั้งหมดกัน
การติดตั้ง Strongswan (IPsec)
ก่อนอื่น มากำหนดค่าไฟร์วอลล์สำหรับการทำงานของ ipsec กันก่อน
sudo firewall-cmd --permanent --add-port=1701/{tcp,udp}
sudo firewall-cmd --permanent --add-service=ipsec
sudo firewall-cmd --reload
จากนั้นเรามาเริ่มการติดตั้งกันดีกว่า
sudo yum install epel-release ipsec-tools dnf
sudo dnf install strongswan
หลังการติดตั้ง คุณจะต้องกำหนดค่า Strongswan (หนึ่งในการใช้งาน IPSec) เมื่อต้องการทำเช่นนี้ ให้แก้ไขไฟล์ /etc/strongswan/ipsec.conf :
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=%any
leftprotoport=udp/1701
right=%any
rightprotoport=udp/%any
ike=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024
esp=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024
เราจะตั้งรหัสผ่านเข้าสู่ระบบทั่วไปด้วย ผู้เข้าร่วมเครือข่ายทุกคนจะต้องทราบรหัสผ่านที่ใช้ร่วมกันเพื่อการตรวจสอบสิทธิ์ วิธีนี้ไม่น่าเชื่อถืออย่างเห็นได้ชัดเพราะว่า รหัสผ่านนี้สามารถเป็นที่รู้จักได้ง่ายสำหรับบุคคลที่เราไม่ต้องการให้เข้าถึงเครือข่าย
อย่างไรก็ตามแม้ข้อเท็จจริงข้อนี้จะไม่ส่งผลกระทบต่อความปลอดภัยของเครือข่ายเพราะว่า การเข้ารหัสข้อมูลพื้นฐานและการตรวจสอบสิทธิ์ผู้ใช้ดำเนินการโดยโปรโตคอล PPP แต่ตามความเป็นจริงแล้ว เป็นที่น่าสังเกตว่า Strongswan รองรับเทคโนโลยีที่ปลอดภัยยิ่งขึ้นสำหรับการตรวจสอบสิทธิ์ เช่น การใช้คีย์ส่วนตัว Strongswan ยังมีความสามารถในการให้การรับรองความถูกต้องโดยใช้สมาร์ทการ์ด แต่จนถึงขณะนี้รองรับอุปกรณ์จำนวนจำกัดเท่านั้น ดังนั้นการตรวจสอบสิทธิ์โดยใช้โทเค็น Rutoken และสมาร์ทการ์ดยังคงทำได้ยาก มาตั้งรหัสผ่านทั่วไปผ่านไฟล์กัน /etc/strongswan/ipsec.secrets:
# ipsec.secrets - strongSwan IPsec secrets file
%any %any : PSK "SECRET_PASSPHRASE"
มารีสตาร์ท Strongswan กันเถอะ:
sudo systemctl enable strongswan
sudo systemctl restart strongswan
การติดตั้ง xl2tp
sudo dnf install xl2tpd
มากำหนดค่าผ่านไฟล์กันดีกว่า /etc/xl2tpd/xl2tpd.conf:
[global]
force userspace = yes
listen-addr = 0.0.0.0
ipsec saref = yes
[lns default]
exclusive = no
; определяет статический адрес сервера в виртуальной сети
local ip = 100.10.10.1
; задает диапазон виртуальных адресов
ip range = 100.10.10.1-100.10.10.254
assign ip = yes
refuse pap = yes
require authentication = yes
; данную опцию можно отключить после успешной настройки сети
ppp debug = yes
length bit = yes
pppoptfile = /etc/ppp/options.xl2tpd
; указывает адрес сервера в сети
name = centos.vpn.server.ad
มาเริ่มบริการใหม่:
sudo systemctl enable xl2tpd
sudo systemctl restart xl2tpd
การตั้งค่า PPP
ขอแนะนำให้ติดตั้ง pppd เวอร์ชันล่าสุด เมื่อต้องการทำเช่นนี้ ให้ดำเนินการตามลำดับคำสั่งต่อไปนี้:
sudo yum install git make gcc openssl-devel
git clone "https://github.com/jjkeijser/ppp"
cd ppp
./configure --prefix /usr
make -j4
sudo make install
เขียนลงไฟล์ /etc/ppp/options.xl2tpd ต่อไปนี้ (หากมีค่าใด ๆ อยู่ คุณสามารถลบออกได้):
ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
ms-dns 1.1.1.1
noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
เราออกใบรับรองหลักและใบรับรองเซิร์ฟเวอร์:
#директория с сертификатами пользователей, УЦ и сервера
sudo mkdir /etc/ppp/certs
#директория с закрытыми ключами сервера и УЦ
sudo mkdir /etc/ppp/keys
#запрещаем любой доступ к этой дирректории кроме администатора
sudo chmod 0600 /etc/ppp/keys/
#генерируем ключ и выписываем сертификат УЦ
sudo openssl genrsa -out /etc/ppp/keys/ca.pem 2048
sudo openssl req -key /etc/ppp/keys/ca.pem -new -x509 -out /etc/ppp/certs/ca.pem -subj "/C=RU/CN=L2TP CA"
#генерируем ключ и выписываем сертификат сервера
sudo openssl genrsa -out /etc/ppp/keys/server.pem 2048
sudo openssl req -new -out server.req -key /etc/ppp/keys/server.pem -subj "/C=RU/CN=centos.vpn.server.ad"
sudo openssl x509 -req -in server.req -CAkey /etc/ppp/keys/ca.pem -CA /etc/ppp/certs/ca.pem -out /etc/ppp/certs/server.pem -CAcreateserial
ดังนั้นเราจึงเสร็จสิ้นการตั้งค่าเซิร์ฟเวอร์พื้นฐานแล้ว การกำหนดค่าเซิร์ฟเวอร์ที่เหลือเกี่ยวข้องกับการเพิ่มไคลเอนต์ใหม่
การเพิ่มลูกค้าใหม่
หากต้องการเพิ่มไคลเอ็นต์ใหม่ลงในเครือข่าย คุณต้องเพิ่มใบรับรองลงในรายการที่เชื่อถือได้สำหรับไคลเอ็นต์นี้
หากผู้ใช้ต้องการเป็นสมาชิกของเครือข่าย VPN เขาจะสร้างคู่คีย์และแอปพลิเคชันใบรับรองสำหรับไคลเอ็นต์นี้ หากผู้ใช้ได้รับความเชื่อถือ แอปพลิเคชันนี้สามารถลงนามได้ และสามารถเขียนใบรับรองผลลัพธ์ลงในไดเร็กทอรีใบรับรองได้:
sudo openssl x509 -req -in client.req -CAkey /etc/ppp/keys/ca.pem -CA /etc/ppp/certs/ca.pem -out /etc/ppp/certs/client.pem -CAcreateserial
มาเพิ่มบรรทัดในไฟล์ /etc/ppp/eaptls-server เพื่อให้ตรงกับชื่อไคลเอ็นต์และใบรับรอง:
"client" * /etc/ppp/certs/client.pem /etc/ppp/certs/server.pem /etc/ppp/certs/ca.pem /etc/ppp/keys/server.pem *
หมายเหตุ
เพื่อหลีกเลี่ยงความสับสน ควรให้ชื่อสามัญ ชื่อไฟล์ใบรับรอง และชื่อผู้ใช้ ไม่ซ้ำกัน
นอกจากนี้ ควรตรวจสอบด้วยว่าชื่อผู้ใช้ที่เรากำลังเพิ่มนั้นไม่ปรากฏในไฟล์การตรวจสอบสิทธิ์อื่นๆ มิฉะนั้นจะเกิดปัญหากับวิธีการตรวจสอบสิทธิ์ผู้ใช้
ใบรับรองเดียวกันจะต้องถูกส่งกลับไปยังผู้ใช้
การสร้างคู่คีย์และใบรับรอง
เพื่อให้การรับรองความถูกต้องสำเร็จ ลูกค้าจะต้อง:
- สร้างคู่คีย์
- มีใบรับรองรูท CA
- มีใบรับรองสำหรับคู่คีย์ของคุณที่ลงนามโดย Root CA
สำหรับลูกค้าบน Linux
ขั้นแรก เรามาสร้างคู่คีย์บนโทเค็นและสร้างแอปพลิเคชันสำหรับใบรับรอง:
#идентификатор ключа (параметр --id) можно заменить на любой другой.
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45
openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:librtpkcs11ecp.so
...
OpenSSL> req -engine pkcs11 -new -key 45 -keyform engine -out client.req -subj "/C=RU/CN=client"
ส่งแอปพลิเคชัน client.req ที่ปรากฏใน CA เมื่อคุณได้รับใบรับรองสำหรับคู่คีย์ของคุณแล้ว ให้เขียนลงในโทเค็นที่มีรหัสเดียวกันกับคีย์:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w ./client.pem --id 45
สำหรับไคลเอนต์ Windows และ Linux (วิธีการที่เป็นสากลมากขึ้น)
วิธีนี้เป็นสากลมากกว่าเพราะว่า ช่วยให้คุณสร้างคีย์และใบรับรองที่ผู้ใช้ Windows และ Linux จะรับรู้ได้สำเร็จ แต่ต้องใช้เครื่อง Windows เพื่อดำเนินการตามขั้นตอนการสร้างคีย์
ก่อนที่จะสร้างคำขอและนำเข้าใบรับรอง คุณต้องเพิ่มใบรับรองหลักของเครือข่าย VPN ลงในรายการที่เชื่อถือได้ ในการดำเนินการนี้ให้เปิดและในหน้าต่างที่เปิดขึ้นให้เลือกตัวเลือก "ติดตั้งใบรับรอง":
ในหน้าต่างที่เปิดขึ้น ให้เลือกการติดตั้งใบรับรองสำหรับผู้ใช้ภายในเครื่อง:
มาติดตั้งใบรับรองในที่เก็บใบรับรองหลักที่เชื่อถือได้ของ CA:
หลังจากการกระทำทั้งหมดนี้ เราเห็นด้วยกับประเด็นเพิ่มเติมทั้งหมด ขณะนี้ระบบได้รับการกำหนดค่าแล้ว
มาสร้างไฟล์ cert.tmp โดยมีเนื้อหาดังต่อไปนี้:
[NewRequest]
Subject = "CN=client"
KeyLength = 2048
KeySpec = "AT_KEYEXCHANGE"
ProviderName = "Microsoft Base Smart Card Crypto Provider"
KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE"
KeyUsageProperty = "NCRYPT_ALLOW_DECRYPT_FLAG"
RequestType = PKCS10
SMIME = FALSE
หลังจากนี้ เราจะสร้างคู่คีย์และสร้างแอปพลิเคชันสำหรับใบรับรอง หากต้องการทำสิ่งนี้ ให้เปิด PowerShell แล้วป้อนคำสั่งต่อไปนี้:
certreq.exe -new -pin $PIN .cert.tmp .client.req
ส่งแอปพลิเคชัน client.req ที่สร้างขึ้นไปยัง CA ของคุณและรอรับใบรับรอง client.pem สามารถเขียนลงในโทเค็นและเพิ่มลงในที่เก็บใบรับรอง Windows ได้โดยใช้คำสั่งต่อไปนี้:
certreq.exe -accept .client.pem
เป็นที่น่าสังเกตว่าการกระทำที่คล้ายกันสามารถทำซ้ำได้โดยใช้อินเทอร์เฟซแบบกราฟิกของโปรแกรม mmc แต่วิธีนี้ใช้เวลานานกว่าและตั้งโปรแกรมได้น้อยกว่า
การตั้งค่าไคลเอนต์ Ubuntu
หมายเหตุ
ขณะนี้การตั้งค่าไคลเอ็นต์บน Linux ค่อนข้างใช้เวลานาน เนื่องจาก... ต้องสร้างโปรแกรมแยกจากแหล่งที่มา เราจะพยายามให้แน่ใจว่าการเปลี่ยนแปลงทั้งหมดจะรวมอยู่ในที่เก็บข้อมูลอย่างเป็นทางการในอนาคตอันใกล้นี้
เพื่อให้แน่ใจว่าการเชื่อมต่อที่ระดับ IPSec กับเซิร์ฟเวอร์ จะใช้แพ็คเกจ Strongswan และ xl2tp daemon เพื่อให้การเชื่อมต่อเครือข่ายง่ายขึ้นโดยใช้สมาร์ทการ์ด เราจะใช้แพ็คเกจ l2tp-ipsec-vpn ซึ่งมีเชลล์กราฟิกสำหรับการตั้งค่าการเชื่อมต่อที่ง่ายขึ้น
มาเริ่มประกอบองค์ประกอบทีละขั้นตอน แต่ก่อนหน้านั้นเราจะติดตั้งแพ็คเกจที่จำเป็นทั้งหมดเพื่อให้ VPN ทำงานโดยตรง:
sudo apt-get install xl2tpd strongswan libp11-3
การติดตั้งซอฟต์แวร์สำหรับการทำงานกับโทเค็น
ติดตั้งไลบรารี librtpkcs11ecp.so ล่าสุดจาก
sudo apt-get install pcscd pcsc-tools opensc libengine-pkcs11-openssl
เชื่อมต่อ Rutoken และตรวจสอบว่าระบบได้รับการยอมรับ:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O -l
การติดตั้ง ppp ที่แพตช์แล้ว
sudo apt-get -y install git make gcc libssl-dev
git clone "https://github.com/jjkeijser/ppp"
cd ppp
./configure --prefix /usr
make -j4
sudo make install
การติดตั้งไคลเอนต์ L2tpIpsecVpn
ในขณะนี้ ไคลเอ็นต์ยังต้องได้รับการคอมไพล์จากซอร์สโค้ดด้วย ทำได้โดยใช้ลำดับคำสั่งต่อไปนี้:
sudo apt-get -y install git qt5-qmake qt5-default build-essential libctemplate-dev libltdl-dev
git clone "https://github.com/Sander80/l2tp-ipsec-vpn"
cd l2tp-ipsec-vpn
make -j4
sudo make install
การตั้งค่าไคลเอนต์ L2tpIpsecVpn
เปิดตัวไคลเอนต์ที่ติดตั้ง:
หลังจากเปิดตัว แอปเพล็ต L2tpIpsecVPN ควรเปิดขึ้น คลิกขวาที่มันและกำหนดค่าการเชื่อมต่อ:
ในการทำงานกับโทเค็น ก่อนอื่นเราต้องระบุเส้นทางไปยังกลไก opensc ของกลไก OpenSSL และไลบรารี PKCS#11 ในการดำเนินการนี้ ให้เปิดแท็บ "การตั้งค่า" เพื่อกำหนดค่าพารามิเตอร์ openssl:
.
มาปิดหน้าต่างการตั้งค่า OpenSSL แล้วไปยังการตั้งค่าเครือข่าย มาเพิ่มเครือข่ายใหม่โดยคลิกที่ปุ่มเพิ่ม... ในแผงการตั้งค่าและป้อนชื่อเครือข่าย:
หลังจากนี้ เครือข่ายนี้จะพร้อมใช้งานในแผงการตั้งค่า ดับเบิลคลิกขวาบนเครือข่ายใหม่เพื่อกำหนดค่า ในแท็บแรกคุณต้องทำการตั้งค่า IPsec มาตั้งค่าที่อยู่เซิร์ฟเวอร์และรหัสสาธารณะ:
หลังจากนี้ไปที่แท็บการตั้งค่า PPP และระบุชื่อผู้ใช้ที่เราต้องการเข้าถึงเครือข่าย:
หลังจากนั้น ให้เปิดแท็บคุณสมบัติแล้วระบุเส้นทางไปยังคีย์ ใบรับรองไคลเอ็นต์ และ CA:
มาปิดแท็บนี้และทำการตั้งค่าสุดท้าย โดยเปิดแท็บ "การตั้งค่า IP" และทำเครื่องหมายที่ช่องถัดจากตัวเลือก "รับที่อยู่เซิร์ฟเวอร์ DNS โดยอัตโนมัติ":
ตัวเลือกนี้จะช่วยให้ไคลเอนต์ได้รับที่อยู่ IP ส่วนบุคคลภายในเครือข่ายจากเซิร์ฟเวอร์
หลังจากการตั้งค่าทั้งหมดแล้ว ให้ปิดแท็บทั้งหมดแล้วรีสตาร์ทไคลเอ็นต์:
การเชื่อมต่อเครือข่าย
หลังจากการตั้งค่า คุณสามารถเชื่อมต่อกับเครือข่ายได้ ในการดำเนินการนี้ให้เปิดแท็บแอปเพล็ตแล้วเลือกเครือข่ายที่เราต้องการเชื่อมต่อ:
ในระหว่างกระบวนการสร้างการเชื่อมต่อ ลูกค้าจะขอให้เราป้อนรหัส PIN Rutoken:
หากมีการแจ้งเตือนปรากฏขึ้นในแถบสถานะว่าสร้างการเชื่อมต่อสำเร็จแล้ว แสดงว่าการตั้งค่าสำเร็จแล้ว:
มิฉะนั้น ก็ควรพิจารณาว่าเหตุใดจึงไม่สร้างการเชื่อมต่อ ในการดำเนินการนี้ คุณควรดูบันทึกของโปรแกรมโดยเลือกคำสั่ง "ข้อมูลการเชื่อมต่อ" ในแอปเพล็ต:
การตั้งค่าไคลเอนต์ Windows
การตั้งค่าไคลเอนต์บน Windows นั้นง่ายกว่าบน Linux มาก เพราะ... ซอฟต์แวร์ที่จำเป็นทั้งหมดมีอยู่แล้วในระบบ
ติดตั้งระบบ
เราจะติดตั้งไดรเวอร์ที่จำเป็นทั้งหมดสำหรับการทำงานกับ Rutokens โดยดาวน์โหลดจาก
การนำเข้าใบรับรองหลักสำหรับการตรวจสอบสิทธิ์
ดาวน์โหลดใบรับรองหลักของเซิร์ฟเวอร์และติดตั้งลงในระบบ ในการดำเนินการนี้ให้เปิดและในหน้าต่างที่เปิดขึ้นให้เลือกตัวเลือก "ติดตั้งใบรับรอง":
ในหน้าต่างที่เปิดขึ้น ให้เลือกการติดตั้งใบรับรองสำหรับผู้ใช้ภายในเครื่อง หากคุณต้องการให้ใบรับรองพร้อมใช้งานสำหรับผู้ใช้ทุกคนบนคอมพิวเตอร์ คุณควรเลือกติดตั้งใบรับรองบนเครื่องคอมพิวเตอร์:
มาติดตั้งใบรับรองในที่เก็บใบรับรองหลักที่เชื่อถือได้ของ CA:
หลังจากการกระทำทั้งหมดนี้ เราเห็นด้วยกับประเด็นเพิ่มเติมทั้งหมด ขณะนี้ระบบได้รับการกำหนดค่าแล้ว
การตั้งค่าการเชื่อมต่อ VPN
หากต้องการตั้งค่าการเชื่อมต่อ VPN ให้ไปที่แผงควบคุมแล้วเลือกตัวเลือกเพื่อสร้างการเชื่อมต่อใหม่
ในหน้าต่างป๊อปอัป เลือกตัวเลือกเพื่อสร้างการเชื่อมต่อเพื่อเชื่อมต่อกับที่ทำงานของคุณ:
ในหน้าต่างถัดไป เลือกการเชื่อมต่อ VPN:
และกรอกรายละเอียดการเชื่อมต่อ VPN พร้อมทั้งระบุตัวเลือกในการใช้สมาร์ทการ์ดด้วย:
การตั้งค่ายังไม่เสร็จสมบูรณ์ สิ่งที่เหลืออยู่คือการระบุคีย์ที่ใช้ร่วมกันสำหรับโปรโตคอล IPsec โดยไปที่แท็บ "การตั้งค่าการเชื่อมต่อเครือข่าย" จากนั้นไปที่แท็บ "คุณสมบัติสำหรับการเชื่อมต่อนี้":
ในหน้าต่างที่เปิดขึ้น ให้ไปที่แท็บ "ความปลอดภัย" ระบุ "เครือข่าย L2TP/IPsec" เป็นประเภทเครือข่าย และเลือก "การตั้งค่าขั้นสูง":
ในหน้าต่างที่เปิดขึ้น ให้ระบุคีย์ IPsec ที่ใช้ร่วมกัน:
สัมพันธ์
หลังจากตั้งค่าเสร็จแล้ว คุณสามารถลองเชื่อมต่อกับเครือข่ายได้:
ในระหว่างขั้นตอนการเชื่อมต่อ เราจะต้องป้อนรหัส PIN โทเค็น:
เราได้ตั้งค่าเครือข่าย VPN ที่ปลอดภัยและทำให้แน่ใจว่าไม่ใช่เรื่องยาก
บลาโกดาเรนนอสตี
ฉันขอขอบคุณเพื่อนร่วมงานของเรา Vasily Shokov และ Alexander Smirnov อีกครั้งสำหรับงานที่พวกเขาทำร่วมกันเพื่อทำให้การสร้างการเชื่อมต่อ VPN สำหรับไคลเอนต์ Linux ง่ายขึ้น
ที่มา: will.com