Ինչպես տեղադրել OpenVPN սերվերը և հաճախորդը Easy-RSA 3-ով CentOS 8-ում


Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար

  • CentOS 8
  • CentOS 7.6
  • CentOS 7

Այս էջում

  1. Քայլ 1 - Տեղադրեք OpenVPN և Easy-RSA
  2. Քայլ 2 - Կարգավորեք Easy-RSA 3-ը
  3. Քայլ 3 - Ստեղծեք OpenVPN բանալիներ

    1. - Նախնականացում և CA կառուցում
    2. - Ստեղծեք սերվերի բանալի
    3. - Կառուցեք հաճախորդի բանալի
    4. - Կառուցեք Diffie-Hellman բանալին
    5. - Լրացուցիչ. Ստեղծեք CRL բանալին
    6. - Պատճենել վկայականի ֆայլերը
  4. Քայլ 4 - Կարգավորեք OpenVPN-ը
  5. Քայլ 5 - Միացնել Port-Forwarding-ը և կարգավորել երթուղավորումը Firewalld-ում
  6. Քայլ 6 - OpenVPN Հաճախորդի կարգավորում
  7. Քայլ 7 - Միացեք OpenVPN-ին

    1. - Linux-ի վրա
    2. - Mac OS-ում
    3. - Windows-ում
  8. Հղում

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/