Ինչպես տեղադրել OpenVPN սերվերը և հաճախորդը Easy-RSA 3-ով CentOS 8-ում
Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար
- CentOS 8
- CentOS 7.6
- CentOS 7
Այս էջում
- Քայլ 1 - Տեղադրեք OpenVPN և Easy-RSA
- Քայլ 2 - Կարգավորեք Easy-RSA 3-ը
Քայլ 3 - Ստեղծեք OpenVPN բանալիներ
- - Նախնականացում և CA կառուցում
- - Ստեղծեք սերվերի բանալի
- - Կառուցեք հաճախորդի բանալի
- - Կառուցեք Diffie-Hellman բանալին
- - Լրացուցիչ. Ստեղծեք CRL բանալին
- - Պատճենել վկայականի ֆայլերը
Քայլ 7 - Միացեք OpenVPN-ին
OpenVPN-ը բաց կոդով հավելված է, որը թույլ է տալիս ստեղծել անվտանգ մասնավոր ցանց հանրային ինտերնետի միջոցով: OpenVPN-ն իրականացնում է վիրտուալ մասնավոր ցանց (VPN)՝ անվտանգ կապ ստեղծելու համար: OpenVPN-ն օգտագործում է OpenSSL գրադարանը՝ գաղտնագրում ապահովելու համար, և այն տրամադրում է նույնականացման մի քանի մեխանիզմներ, ինչպիսիք են վկայականի վրա հիմնված, նախապես համօգտագործվող բանալիները և օգտվողի անունը/գաղտնաբառի իսկությունը:
Այս ձեռնարկում մենք ձեզ ցույց կտանք, թե ինչպես քայլ առ քայլ տեղադրել և կարգավորել OpenVPN-ը CentOS 8 սերվերի վրա: Եվ մենք կիրականացնենք վկայագրի վրա հիմնված OpenVPN նույնականացումը:
Նախադրյալներ
- CentOS 8 սերվեր
- Արմատային արտոնություններ
Ի՞նչ ենք մենք անելու:
- Տեղադրեք OpenVPN և Easy-RSA
- Կարգավորել Easy-RSA 3 Vars
- Կառուցեք OpenVPN բանալիներ
- Կարգավորեք OpenVPN սերվերը
- Կարգավորեք Firewalld-ը և միացրեք Port Forwarding-ը
- Հաճախորդի կարգավորում
- Փորձարկում
Քայլ 1 - Տեղադրեք OpenVPN և Easy-RSA
Նախ, մենք պատրաստվում ենք ավելացնել EPEL (Extra Package for Enterprise Linux) պահոցը և տեղադրել վերջին OpenVPN փաթեթը և ներբեռնել easy-rsa սցենարը CentOS 8 համակարգում:
Տեղադրեք EPEL պահոցը՝ օգտագործելով ստորև բերված dnf հրամանը:
dnf install epel-release
Դրանից հետո տեղադրեք վերջին OpenVPN փաթեթը 2.4.7.
dnf install openvpn
Տեղադրումն ավարտվելուց հետո անցեք «/etc/openvpn» և ներբեռնեք easy-rsa սցենարը՝ օգտագործելով ստորև նշված wget հրամանը:
cd /etc/openvpn/
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz
Այժմ հանեք «EasyRSA-unix-v3.0.6.tgz» ֆայլը և վերանվանեք գրացուցակը «easy-rsa»:
tar -xf EasyRSA-unix-v3.0.6.tgz
mv EasyRSA-v3.0.6/ easy-rsa/; rm -f EasyRSA-unix-v3.0.6.tgz
OpenVPN փաթեթը և easy-rsa սկրիպտը տեղադրվել են CentOS 8 համակարգում։
Քայլ 2 - Կարգավորեք Easy-RSA 3-ը
Այս քայլում մենք կկարգավորենք easy-rsa 3-ը՝ ստեղծելով նոր «vars» ֆայլ: «vars» ֆայլը պարունակում է Easy-RSA 3 կարգավորումները:
Գնացեք «/etc/openvpn/easy-rsa/» գրացուցակ և ստեղծեք նոր vars սցենար՝ օգտագործելով vim խմբագրիչը:
cd /etc/openvpn/easy-rsa/
vim vars
Տեղադրեք vars easy-rsa 3 կոնֆիգուրացիաները ստորև:
set_var EASYRSA "$PWD"
set_var EASYRSA_PKI "$EASYRSA/pki"
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "ID"
set_var EASYRSA_REQ_PROVINCE "Jakarta"
set_var EASYRSA_REQ_CITY "Jakarta"
set_var EASYRSA_REQ_ORG "hakase-labs CERTIFICATE AUTHORITY"
set_var EASYRSA_REQ_EMAIL "[email "
set_var EASYRSA_REQ_OU "HAKASE-LABS EASY CA"
set_var EASYRSA_KEY_SIZE 2048
set_var EASYRSA_ALGO rsa
set_var EASYRSA_CA_EXPIRE 7500
set_var EASYRSA_CERT_EXPIRE 365
set_var EASYRSA_NS_SUPPORT "no"
set_var EASYRSA_NS_COMMENT "HAKASE-LABS CERTIFICATE AUTHORITY"
set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.cnf"
set_var EASYRSA_DIGEST "sha256"
Պահպանել և դուրս գալ:
Նշում.
- Փոխեք փոփոխականների արժեքները ըստ անհրաժեշտության:
- Բարձրացրեք «EASYRSA_KEY_SIZE»-ը՝ ավելի լավ անվտանգության համար:
- Փոխեք «EASYRSA_CA_EXPIRE» և «EASYRSA_CERT_EXPIRE»:
Այժմ «vars» ֆայլը գործարկելի դարձրեք՝ փոխելով ֆայլի թույլտվությունը:
chmod +x vars
Easy-rsa 3-ի կոնֆիգուրացիան ավարտված է:
Քայլ 3 - Ստեղծեք OpenVPN բանալիներ
Այս քայլում մենք կկառուցենք OpenVPN ստեղները՝ հիմնվելով մեր ստեղծած easy-rsa 3 «vars» ֆայլի վրա: Մենք կստեղծենք CA բանալին, սերվերի և հաճախորդի ստեղները, DH և CRL PEM ֆայլը:
Մենք կստեղծենք բոլոր այդ ստեղները՝ օգտագործելով «easyrsa» հրամանի տողը: Գնացեք «/etc/openvpn/easy-rsa/» գրացուցակ:
cd /etc/openvpn/easy-rsa/3/
- Նախնականացում և CA կառուցում
Նախքան սերվերի և հաճախորդի բանալին կառուցելը, մենք պետք է նախաստորագրենք PKI (Public Key Infrastructure) գրացուցակը և կառուցենք CA բանալին:
Սկսեք PKI գրացուցակը և կառուցեք CA բանալին՝ օգտագործելով ստորև նշված հրամանը:
./easyrsa init-pki
./easyrsa build-ca
Այժմ մուտքագրեք ձեր CA բանալիի գաղտնաբառը, և դուք կստանաք ձեր «ca.crt» և «ca.key» ֆայլերը «pki» գրացուցակի տակ:
- Ստեղծեք սերվերի բանալի
Այժմ մենք ցանկանում ենք ստեղծել սերվերի բանալին, և մենք կկառուցենք «hakase-server» անունով սերվերի բանալին:
Կառուցեք «hakase-server» սերվերի բանալին՝ օգտագործելով ստորև նշված հրամանը:
./easyrsa gen-req hakase-server nopass
Նշում.
- nopass=տարբերակ «hakase-server» ստեղնի համար գաղտնաբառը անջատելու համար:
Եվ ստորագրեք «hakase-server» բանալին՝ օգտագործելով մեր CA վկայագիրը:
./easyrsa sign-req server hakase-server
Ձեզանից կպահանջվի «CA» գաղտնաբառը, մուտքագրեք գաղտնաբառը և սեղմեք Enter: Եվ դուք կստանաք «hakase-server.crt» վկայագրի ֆայլը «pki/issued/» գրացուցակի տակ:
Ստուգեք վկայագրի ֆայլը՝ օգտագործելով OpenSSL հրամանը և համոզվեք, որ սխալ չկա:
openssl verify -CAfile pki/ca.crt pki/issued/hakase-server.crt
Բոլոր սերվերի վկայականի բանալիները ստեղծվել են: Սերվերի անձնական բանալին գտնվում է «pki/private/hakase-server.key»-ում, իսկ սերվերի վկայականը՝ «pki/issued/hakase-server.crt»-ում:
- Կառուցեք հաճախորդի բանալի
Այժմ մենք պետք է ստեղծենք բանալիներ հաճախորդի համար: Մենք կստեղծենք նոր հաճախորդի բանալի՝ «client01» անունով:
Ստեղծեք «client01» ստեղնը՝ օգտագործելով ստորև նշված հրամանը:
./easyrsa gen-req client01 nopass
Այժմ ստորագրեք «client01» բանալին՝ օգտագործելով մեր CA վկայականը, ինչպես ստորև:
./easyrsa sign-req client client01
Մուտքագրեք «այո»՝ հաճախորդի վկայականի հարցումը հաստատելու համար, ապա մուտքագրեք CA գաղտնաբառը:
«client01» անունով հաճախորդի վկայագիրը ստեղծվել է, ստուգեք հաճախորդի վկայագիրը՝ օգտագործելով openssl հրամանը:
openssl verify -CAfile pki/ca.crt pki/issued/client01.crt
Համոզվեք, որ սխալ չկա:
- Կառուցեք Diffie-Hellman բանալին
Ավելի լավ անվտանգության համար անհրաժեշտ է Diffie-Hellman բանալին: Եվ մենք պատրաստվում ենք ստեղծել «2048» DH ստեղնը վերևում ստեղծված «vars» կազմաձևման ֆայլի հիման վրա:
Ստեղծեք Diffie-Hellman ստեղնը՝ օգտագործելով ստորև նշված հրամանը:
./easyrsa gen-dh
Եվ ստեղծվել է DH բանալին, որը գտնվում է «pki» գրացուցակում:
- Լրացուցիչ. Ստեղծեք CRL բանալին
CRL (Վկայականների հետ կանչման ցուցակ) ստեղնը կօգտագործվի հաճախորդի բանալին չեղյալ համարելու համար: Եթե ձեր VPN սերվերում ունեք հաճախորդների բազմաթիվ հաճախորդի վկայագրեր, և ցանկանում եք հեռացնել որևէ մեկի բանալին, պարզապես անհրաժեշտ է չեղարկել՝ օգտագործելով easy-rsa հրամանը:
Եթե ցանկանում եք հետ կանչել որոշ բանալի, գործարկեք ստորև նշված հրամանը:
./easyrsa revoke someone
Եվ հետո ստեղծեք CRL ստեղնը:
./easyrsa gen-crl
CRL PEM ֆայլը ստեղծվել է «pki» գրացուցակի տակ. ստորև բերված է իմ սերվերի օրինակ:
- Պատճենել վկայականի ֆայլերը
Բոլոր վկայագրերը ստեղծվել են, այժմ պատճենեք վկայագրի ֆայլերը և PEM ֆայլերը:
Պատճենել սերվերի բանալին և վկայականը:
cp pki/ca.crt /etc/openvpn/server/
cp pki/issued/hakase-server.crt /etc/openvpn/server/
cp pki/private/hakase-server.key /etc/openvpn/server/
Պատճենել client01 բանալին և վկայականը:
cp pki/ca.crt /etc/openvpn/client/
cp pki/issued/client01.crt /etc/openvpn/client/
cp pki/private/client01.key /etc/openvpn/client/
Պատճենեք DH և CRL բանալին:
cp pki/dh.pem /etc/openvpn/server/
cp pki/crl.pem /etc/openvpn/server/
Սերվերի և հաճախորդի բոլոր վկայագրերը պատճենվել են յուրաքանչյուր գրացուցակում:
Քայլ 4 - Կարգավորեք OpenVPN-ը
Այս քայլում մենք կստեղծենք նոր կոնֆիգուրացիա «server.conf» OpenVPN սերվերի համար:
Գնացեք «/etc/openvpn/server/» գրացուցակ և ստեղծեք նոր կազմաձևման ֆայլ «server.conf»՝ օգտագործելով vim:
cd /etc/openvpn/server/
vim server.conf
Տեղադրեք հետևյալ OpenVPN սերվերի կոնֆիգուրացիան այնտեղ.
# OpenVPN Port, Protocol, and the Tun
port 1194
proto udp
dev tun
# OpenVPN Server Certificate - CA, server key and certificate
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/hakase-server.crt
key /etc/openvpn/server/hakase-server.key
#DH and CRL key
dh /etc/openvpn/server/dh.pem
crl-verify /etc/openvpn/server/crl.pem
# Network Configuration - Internal network
# Redirect all Connection through OpenVPN Server
server 10.5.0.0 255.255.255.0
push "redirect-gateway def1"
# Using the DNS from https://dns.watch
push "dhcp-option DNS 84.200.69.80"
push "dhcp-option DNS 84.200.70.40"
#Enable multiple clients to connect with the same certificate key
duplicate-cn
# TLS Security
cipher AES-256-CBC
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
auth SHA512
auth-nocache
# Other Configuration
keepalive 20 60
persist-key
persist-tun
compress lz4
daemon
user nobody
group nobody
# OpenVPN Log
log-append /var/log/openvpn.log
verb 3
Պահպանել և դուրս գալ:
Եվ OpenVPN սերվերի կոնֆիգուրացիան ստեղծվել է:
Քայլ 5 - Միացնել Port-Forwarding և Configure Routing in Firewalld-ում
Այս քայլում մենք կակտիվացնենք Port-forwarding kernel մոդուլը և կկարգավորենք «Firewalld» երթուղիչը OpenVPN-ի համար:
Միացրեք port-forwarding kernel-ի մոդուլը՝ գործարկելով հետևյալ հրամանները.
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
Հաջորդը, կարգավորեք երթուղին, օգտագործելով Firewalld-ը OpenVPN-ի համար:
Ավելացնել OpenVPN ծառայությունը «հանրային» և «վստահելի» firewall գոտում:
firewall-cmd --permanent --add-service=openvpn
firewall-cmd --permanent --zone=trusted --add-service=openvpn
Դրանից հետո ավելացրեք «tun0» «վստահելի» գոտուն:
firewall-cmd --permanent --zone=trusted --add-interface=tun0
Այժմ միացրեք «ԴԻՄԱԿԱՆԱԳԻՐԸ» լռելյայն «հանրային» գոտու firewall-ում:
firewall-cmd --permanent --add-masquerade
Միացնել NAT-ը OpenVPN ներքին IP հասցեի համար՝ «10.5.0.0/24» դեպի արտաքին IP հասցե՝ «SERVERIP»:
SERVERIP=$(ip route get 1.1.1.1 | awk 'NR==1 {print $(NF-2)}')
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.5.0.0/24 -o $SERVERIP -j MASQUERADE
Եվ վերաբեռնեք firewall-ը:
firewall-cmd --reload
Port-forwarding-ը և Firewalld-ի երթուղային կազմաձևումն ավարտված է, գործարկեք OpenVPN ծառայությունը և թույլ տվեք այն ավտոմատ կերպով գործարկել ամեն անգամ համակարգի բեռնման ժամանակ:
systemctl start openvpn-server@server
systemctl enable openvpn-server@server
Դրանից հետո ստուգեք OpenVPN ծառայությունը՝ օգտագործելով ստորև նշված հրամանները:
netstat -plntu
systemctl status openvpn-server@server
Եվ արդյունքը կստանաք ստորև։
Արդյունքում OpenVPN ծառայությունը գործարկվում և աշխատում է UDP արձանագրության վրա՝ լռելյայն «1194» պորտով:
Քայլ 6 - OpenVPN Հաճախորդի կարգավորում
Գնացեք «/etc/openvpn/client» գրացուցակ և ստեղծեք նոր openvpn հաճախորդի կոնֆիգուրացիայի ֆայլ՝ «client01.ovpn»՝ օգտագործելով vim:
cd /etc/openvpn/client
vim client01.ovpn
Տեղադրեք հետևյալ OpenVPN հաճախորդի կոնֆիգուրացիան այնտեղ.
client
dev tun
proto udp
remote xxx.xxx.xxx.xxx 1194
ca ca.crt
cert client01.crt
key client01.key
cipher AES-256-CBC
auth SHA512
auth-nocache
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
resolv-retry infinite
compress lz4
nobind
persist-key
persist-tun
mute-replay-warnings
verb 3
Պահպանել և դուրս գալ:
Այժմ սեղմեք «/etc/openvpn/client» գրացուցակը «zip» կամ «tar.gz» ֆայլի մեջ և ներբեռնեք սեղմված ֆայլը՝ օգտագործելով SCP ձեր տեղական համակարգչից:
Սեղմեք «/etc/openvpn/client» գրացուցակը «client01.tar.gz» ֆայլում:
cd /etc/openvpn/
tar -czvf client01.tar.gz client/*
Այժմ դուք կարող եք ներբեռնել սեղմված OpenVPN ֆայլը, օգտագործելով FTP սերվերը կամ scp հրամանը, ինչպես ստորև:
scp [email :/etc/openvpn/client01.tar.gz .
Քայլ 7 - Միացեք OpenVPN-ին
Փորձարկում հաճախորդների վրա:
- Linux-ի վրա
Տեղադրեք OpenVPN փաթեթը և եթե ցանկանում եք GUI-ի կոնֆիգուրացիա, տեղադրեք OpenVPN ցանցի կառավարիչ:
sudo apt install openvpn network-manager-openvpn network-manager-openvpn-gnome -y
Եթե ցանկանում եք միանալ տերմինալի կեղևի միջոցով, գործարկեք ներքևում գտնվող OpenVPN հրամանը:
openvpn --config client01.ovpn
Երբ միացված եք OpenVPN-ին, բացեք նոր տերմինալի ներդիր և ստուգեք կապը՝ օգտագործելով curl հրամանը:
curl ifconfig.io
Եվ դուք կստանաք OpenVPN սերվերի IP հասցեն:
- Mac OS-ում
Ներբեռնեք Tunnelblick-ը և տեղադրեք այն:
Քաղեք «client01.tar.gz» ֆայլը և վերանվանեք «client» գրացուցակը «client01.tblk»:
tar -xzvf client01.tar.gz
mv client client01.tblk
Կրկնակի սեղմեք «client01.tblk»-ի վրա, և Tunnelblick-ը ավտոմատ կերպով կհայտնաբերի OpenVPN-ի կոնֆիգուրացիան և այնուհետև կներմուծի:
Այժմ միացեք Tunnelblick-ի միջոցով վերևի բարում:
- Windows-ում
Ներբեռնեք openvpn հաճախորդը Windows-ի համար և ներմուծեք կազմաձևը:
Հղում
- https://openvpn.net/