OpenVPN-เตฝ เด’เดฐเต SMB เด“เตผเด—เดจเตˆเดธเต‡เดทเดจเตเดฑเต† เดฑเดฟเดฎเต‹เดŸเตเดŸเต เดตเตผเด•เตเด•เดฟเดจเตเดฑเต† เด“เตผเด—เดจเตˆเดธเต‡เดทเตป

เดชเตเดฐเดถเตเดจ เดชเตเดฐเดธเตเดคเดพเดตเดจ

เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เด‰เตฝเดชเตเดชเดจเตเดจเด™เตเด™เดณเดฟเตฝ เดœเต€เดตเดจเด•เตเด•เดพเตผเด•เตเด•เตเดณเตเดณ เดตเดฟเดฆเต‚เดฐ เด†เด•เตโ€Œเดธเดธเต เด“เตผเด—เดจเตˆเดธเต‡เดทเดจเต† เดฒเต‡เด–เดจเด‚ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดธเตเดตเดฏเด‚เดญเดฐเดฃ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดตเดพเดฃเดฟเดœเตเดฏ เดธเด‚เดตเดฟเดงเดพเดจเดคเตเดคเดฟเตฝ เดฒเตˆเดธเตปเดธเตเด•เดณเตเดŸเต† เด•เตเดฑเดตเตเดฃเตเดŸเดพเด•เตเดฎเตเดชเต‹เดดเต‹ เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฐเด•เดŸเดจเด‚ เด…เดชเดฐเตเดฏเดพเดชเตเดคเดฎเดพเด•เตเดฎเตเดชเต‹เดดเต‹ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเต เด‡เดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเด•เตเด‚.

เด’เดฐเต เด“เตผเด—เดจเตˆเดธเต‡เดทเดจเดฟเดฒเต‡เด•เตเด•เต เดฑเดฟเดฎเต‹เดŸเตเดŸเต เด†เด•เตเดธเดธเต เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดธเดฎเตเดชเต‚เตผเดฃเตเดฃ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดฒเด•เตเดทเตเดฏเด‚, เด…เดคเต "10 เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ OpenVPN เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต‡เด•เตเด•เดพเตพ" เด•เต‚เดŸเตเดคเดฒเดพเดฃเต.

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต† เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เดณเตเด‚ (เด“เดชเตเดทเดฃเดฒเดพเดฏเดฟ) เด•เต‹เตผเดชเตเดชเดฑเต‡เดฑเตเดฑเต เด†เด•เตเดฑเตเดฑเต€เดตเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚. เด…เดคเต. เดžเด™เตเด™เตพเด•เตเด•เต เดฐเดฃเตเดŸเต เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃ เด˜เดŸเด•เด™เตเด™เดณเตเดณเตเดณ เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดฒเดญเดฟเด•เตเด•เตเด‚ - เดŽเดจเตเดฑเต† เดชเด•เตเด•เดฒเตเดณเตเดณเดคเต (เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต), เดŽเดจเดฟเด•เตเด•เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเต (เดชเดพเดธเตโ€Œเดตเต‡เดกเต).

myVPNUsr เด—เตเดฐเต‚เดชเตเดชเดฟเดฒเต† เด…เด‚เด—เดคเตเดตเดฎเดพเดฃเต เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด…เดŸเดฏเดพเดณเด‚. เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เด…เดคเต‹เดฑเดฟเดฑเตเดฑเดฟ เด“เดซเตโ€Œเดฒเตˆเดจเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

เดชเดฐเดฟเดนเดพเดฐเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดšเต†เดฒเดตเต เดšเต†เดฑเดฟเดฏ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตเด‚ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเดฑเตเดŸเต† 1 เดฎเดฃเดฟเด•เตเด•เต‚เตผ เดœเต‹เดฒเดฟเดฏเตเด‚ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต.

CetntOS 3-เตฝ OpenVPN, Easy-RSA เดชเดคเดฟเดชเตเดชเต 7 เดŽเดจเตเดจเดฟเดตเดฏเตเดณเตเดณ เด’เดฐเต เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เตป เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚, 100 เด•เดฃเด•เตเดทเดจเตเด•เตพเด•เตเด•เต 4 vCPU-เด•เดณเตเด‚ 4 GiB RAM-เด‰เด‚ เด…เดจเตเดตเดฆเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เด“เตผเด—เดจเตˆเดธเต‡เดทเดจเตเดฑเต† เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต 172.16.0.0/16 เด†เดฃเต, เด…เดคเดฟเตฝ 172.16.19.123 เดŽเดจเตเดจ เดตเดฟเดฒเดพเดธเดฎเตเดณเตเดณ VPN เดธเต†เตผเดตเตผ เดธเต†เด—เตโ€Œเดฎเต†เดจเตเดฑเดฟเตฝ 172.16.19.0/24, DNS เดธเต†เตผเดตเดฑเตเด•เตพ 172.16.16.16, 172.16.17.17.net172.16.20.0, 23 เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเดพเดฃเต เดธเตเดฅเดฟเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต. .XNUMX/XNUMX VPN เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด…เดจเตเดตเดฆเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเตเดฑเดคเตเดคเต เดจเดฟเดจเตเดจเต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดชเต‹เตผเดŸเตเดŸเต 1194/udp เดตเดดเดฟเดฏเตเดณเตเดณ เด’เดฐเต เด•เดฃเด•เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดžเด™เตเด™เดณเตเดŸเต† เดธเต†เตผเดตเดฑเดฟเดจเดพเดฏเดฟ DNS-เตฝ เด’เดฐเต A-record gw.abc.ru เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต.

SELinux เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดพเตป เด•เตผเดถเดจเดฎเดพเดฏเดฟ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ! เดธเตเดฐเด•เตเดทเดพ เดจเดฏเด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† OpenVPN เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เด‰เดณเตเดณเดŸเด•เตเด•เด‚

  1. OS, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเต‹เดซเตเดฑเตเดฑเตเดตเต†เดฏเตผ เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป
  2. เด•เตเดฐเดฟเดชเตเดฑเตเดฑเต‹เด—เตเดฐเดซเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต
  3. OpenVPN เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต
  4. เดŽเดกเดฟ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚
  5. เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเตเด‚ เดกเดฏเด—เตเดจเต‹เดธเตเดฑเตเดฑเดฟเด•เตเดธเตเด‚
  6. เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เด‡เดทเตเดฏเต‚เดตเตเด‚ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดฒเตเด‚
  7. เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเดœเตเดœเต€เด•เดฐเดฃเด‚
  8. เด…เดŸเตเดคเตเดคเดคเต เดŽเดจเตเดคเดพเดฃเต

OS, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเต‹เดซเตเดฑเตเดฑเตเดตเต†เดฏเตผ เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป

เดžเด™เตเด™เตพ CentOS 7.8.2003 เดตเดฟเดคเดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดฎเดฟเดจเดฟเดฎเตฝ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ OS เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต เด•เดฟเด•เตเด•เตเดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเต, เดฎเตเดฎเตเดชเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดค OS เด‡เดฎเต‡เดœเตเด‚ เดฎเดฑเตเดฑเต เดฎเดพเตผเด—เด™เตเด™เดณเตเด‚ เด•เตเดฒเต‹เตบ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเดจเต เดถเต‡เดทเด‚, เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดตเดฟเดฒเดพเดธเด‚ เดจเตฝเด•เดฟ (เดŸเดพเดธเตเด•เต 172.16.19.123 เดจเดฟเดฌเดจเตเดงเดจเด•เตพ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต), เดžเด™เตเด™เตพ OS เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

$ sudo yum update -y && reboot

เดจเดฎเตเดฎเตเดŸเต† เดฎเต†เดทเต€เดจเดฟเตฝ เดŸเตˆเด‚ เดธเดฟเตปเด•เตเดฐเตŠเดฃเตˆเดธเต‡เดทเตป เดจเดŸเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.
เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป, เดจเดฟเด™เตเด™เตพเด•เตเด•เต openvpn, openvpn-auth-ldap, easy-rsa, vim เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ เดชเตเดฐเดงเดพเดจ เดŽเดกเดฟเดฑเตเดฑเดฑเดพเดฏเดฟ เด†เดตเดถเตเดฏเดฎเดพเดฃเต (เดจเดฟเด™เตเด™เตพเด•เตเด•เต EPEL เดถเต‡เด–เดฐเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต).

$ sudo yum install epel-release
$ sudo yum install openvpn openvpn-auth-ldap easy-rsa vim

เด’เดฐเต เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเดพเดฏเดฟ เด’เดฐเต เด—เดธเตเดฑเตเดฑเต เดเดœเดจเตเดฑเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต:

$ sudo yum install open-vm-tools

VMware ESXi เดนเต‹เดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ oVirt

$ sudo yum install ovirt-guest-agent

เด•เตเดฐเดฟเดชเตเดฑเตเดฑเต‹เด—เตเดฐเดซเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต

เดˆเดธเดฟ-เด†เตผเดŽเดธเตเดŽ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด•:

$ cd /usr/share/easy-rsa/3/

เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•:

$ sudo vim vars

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด‰เดณเตเดณเดŸเด•เตเด•เด‚:

export KEY_COUNTRY="RU"
export KEY_PROVINCE="MyRegion"
export KEY_CITY="MyCity"
export KEY_ORG="ABC LLC"
export KEY_EMAIL="[email protected]"
export KEY_CN="allUsers"
export KEY_OU="allUsers"
export KEY_NAME="gw.abc.ru"
export KEY_ALTNAMES="abc-openvpn-server"
export EASYRSA_CERT_EXPIRE=3652

เดธเต‹เดชเดพเดงเดฟเด• เด“เตผเด—เดจเตˆเดธเต‡เดทเดจเดพเดฏ เดŽเดฌเดฟเดธเดฟ เดŽเตฝเดŽเตฝเดธเดฟเดฏเตเดŸเต† เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‡เดตเดฟเดŸเต† เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต; เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดต เดฏเดฅเดพเตผเดคเตเดฅเดฎเดพเดฏเดตเดฏเดฟเดฒเต‡เด•เตเด•เต เดถเดฐเดฟเดฏเดพเด•เตเด•เดพเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดต เด‰เดชเต‡เด•เตเดทเดฟเด•เตเด•เดพเด‚. เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเดฟเดฒเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เด•เดพเดฐเตเดฏเด‚ เด…เดตเดธเดพเดจ เดตเดฐเดฟเดฏเดพเดฃเต, เด‡เดคเต เดฆเดฟเดตเดธเด™เตเด™เดณเดฟเตฝ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเดฟเดจเตเดฑเต† เดธเดพเดงเตเดค เด•เดพเดฒเดฏเดณเดตเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเด‚ 10 เดตเตผเดทเด‚ (365*10+2 เด…เดงเดฟเดตเตผเดทเด‚) เดฎเต‚เดฒเตเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดˆ เดฎเต‚เดฒเตเดฏเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดžเด™เตเด™เตพ เด’เดฐเต เดธเตเดตเดฏเด‚เดญเดฐเดฃ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เต‡เดทเตป เด…เดคเต‹เดฑเดฟเดฑเตเดฑเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเดœเตเดœเต€เด•เดฐเดฃเดคเตเดคเดฟเตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดŽเด•เตโ€Œเดธเตโ€Œเดชเต‹เตผเดŸเตเดŸเตเดšเต†เดฏเตเดฏเตฝ, CA เด†เดฐเด‚เดญเดฟเด•เตเด•เตฝ, CA เดฑเต‚เดŸเตเดŸเต เด•เต€เดฏเตเด‚ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด‚ เดจเตฝเด•เตฝ, Diffie-Hellman เด•เต€, TLS เด•เต€, เดธเต†เตผเดตเตผ เด•เต€, เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เดŽเดจเตเดจเดฟเดต เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต. CA เด•เต€ เดถเตเดฐเดฆเตเดงเดพเดชเต‚เตผเดตเตเดตเด‚ เดชเดฐเดฟเดฐเด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฐเดนเดธเตเดฏเดฎเดพเดฏเดฟ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚! เดŽเดฒเตเดฒเดพ เด…เดจเตเดตเต‡เดทเดฃ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ เดตเดฟเดŸเดพเด‚.

cd /usr/share/easy-rsa/3/
. ./vars
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa gen-req myvpngw nopass
./easyrsa sign-req server myvpngw
./easyrsa gen-crl
openvpn --genkey --secret pki/ta.key

เด‡เดคเต เด•เตเดฐเดฟเดชเตเดฑเตเดฑเต‹เด—เตเดฐเดพเดซเดฟเด•เต เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด‚ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดญเดพเด—เด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเต.

OpenVPN เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต

OpenVPN เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด•, เดธเต‡เดตเดจ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดšเต เดˆเดธเดฟ-เด†เตผเดธเดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดฒเดฟเด™เตเด•เต เดšเต‡เตผเด•เตเด•เตเด•:

cd /etc/openvpn/
mkdir /var/log/openvpn/ /etc/openvpn/ccd /usr/share/easy-rsa/3/client
ln -s /usr/share/easy-rsa/3/pki/ /etc/openvpn/

เดชเตเดฐเดงเดพเดจ OpenVPN เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•:

$ sudo vim server.conf

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เตพ

port 1194
proto udp
dev tun
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/myvpngw.crt
key /etc/openvpn/pki/private/myvpngw.key
crl-verify /etc/openvpn/pki/crl.pem
dh /etc/openvpn/pki/dh.pem
server 172.16.20.0 255.255.254.0
ifconfig-pool-persist ipp.txt
push "route 172.16.0.0 255.255.255.0"
push "route 172.17.0.0 255.255.255.0"
client-config-dir ccd
push "dhcp-option DNS 172.16.16.16"
push "dhcp-option DNS 172.16.17.17"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
username-as-common-name
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/ldap.conf

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเดฟเดฒ เด•เตเดฑเดฟเดชเตเดชเตเด•เตพ:

  • เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เดจเตฝเด•เตเดฎเตเดชเต‹เตพ เดฎเดฑเตเดฑเตŠเดฐเต เดชเต‡เดฐเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเด•;
  • เดจเดฟเด™เตเด™เดณเตเดŸเต† เดœเต‹เดฒเดฟเด•เตพเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดตเดฟเดฒเดพเดธเด™เตเด™เดณเตเดŸเต† เดชเต‚เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•*;
  • เด’เดจเตเดจเต‹ เด…เดคเดฟเดฒเดงเดฟเด•เดฎเต‹ เดฑเต‚เดŸเตเดŸเตเด•เดณเตเด‚ DNS เดธเต†เตผเดตเดฑเตเด•เดณเตเด‚ เด‰เดฃเตเดŸเดพเด•เดพเด‚;
  • AD**-เตฝ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด…เดตเดธเดพเดจ 2 เดตเดฐเดฟเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

*เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เดตเดฟเดฒเดพเดธเด™เตเด™เดณเตเดŸเต† เดถเตเดฐเต‡เดฃเดฟ 127 เด•เตเดฒเดฏเดจเตเดฑเตเด•เดณเต† เดตเดฐเต† เด’เดฐเต‡เดธเดฎเดฏเด‚ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด‚, เด•เดพเดฐเดฃเด‚ /23 เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต, เด•เต‚เดŸเดพเดคเต† เด“เดชเตเดชเตบเดตเดฟเดชเดฟเดŽเตป /30 เดฎเดพเดธเตโ€Œเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด“เดฐเต‹ เด•เตเดฒเดฏเดจเตเดฑเดฟเดจเตเด‚ เด’เดฐเต เดธเดฌเตโ€Œเดจเต†เดฑเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจเต.
เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚ เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ, เดชเต‹เตผเดŸเตเดŸเตเด‚ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เดณเตเด‚ เดฎเดพเดฑเตเดฑเดพเดตเตเดจเตเดจเดคเดพเดฃเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเต‹เตผเดŸเตเดŸเต เดชเต‹เตผเดŸเตเดŸเต เดจเดฎเตเดชเตผ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเต SELinux เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเดฎเต†เดจเตเดจเตเด‚, tcp เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด“เดตเตผเดนเต†เดกเต เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเตเด‚ เด“เตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต. เดŸเดฃเดฒเดฟเตฝ เดชเตŠเดคเดฟเดžเตเดž เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เดณเตเดŸเต† เดคเดฒเดคเตเดคเดฟเตฝ เดŸเดฟเดธเดฟเดชเดฟ เดชเดพเด•เตเด•เดฑเตเดฑเต เดกเต†เดฒเดฟเดตเดฑเดฟ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด‚ เด‡เดคเดฟเดจเด•เด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

**เดŽเดกเดฟ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด…เดต เด…เดญเดฟเดชเตเดฐเดพเดฏเดฎเดฟเดŸเตเด•, เด…เดŸเตเดคเตเดค เดญเดพเด—เด‚ เด’เดดเดฟเดตเดพเด•เตเด•เตเด•, เด•เต‚เดŸเดพเดคเต† เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเดฟเตฝ auth-user-pass เดฒเตˆเตป เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด•.

เดŽเดกเดฟ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเด‚

เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เด˜เดŸเด•เดคเตเดคเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เดพเตป, เดžเด™เตเด™เตพ เดŽเดกเดฟเดฏเดฟเตฝ เด…เด•เตเด•เต—เดฃเตเดŸเต เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเดฑเต†เดฏเตเด‚ เด’เดฐเต เด—เตเดฐเต‚เดชเตเดชเดฟเดจเตเดฑเต†เดฏเตเด‚ เด…เดตเด•เดพเดถเด™เตเด™เดณเตเดณเตเดณ เดกเตŠเดฎเต†เดฏเตโ€Œเดจเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด…เด•เตเด•เต—เดฃเตเดŸเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เด…เดคเดฟเตฝ เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจ เด…เด‚เด—เดคเตเดตเด‚.

เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•:

/etc/openvpn/ldap.conf

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เตพ

<LDAP>
        URL             "ldap://ldap.abc.ru"
        BindDN          "CN=bindUsr,CN=Users,DC=abc,DC=ru"
        Password        b1ndP@SS
        Timeout         15
        TLSEnable       no
        FollowReferrals yes
</LDAP>
<Authorization>
        BaseDN          "OU=allUsr,DC=abc,DC=ru"
        SearchFilter    "(sAMAccountName=%u)"
        RequireGroup    true
        <Group>
                BaseDN          "OU=myGrp,DC=abc,DC=ru"
                SearchFilter    "(cn=myVPNUsr)"
                MemberAttribute "member"
        </Group>
</Authorization>

เดชเตเดฐเดงเดพเดจ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ:

  • URL "ldap://ldap.abc.ru" - เดกเตŠเดฎเต†เดฏเตเตป เด•เตบเดŸเตเดฐเต‹เดณเตผ เดตเดฟเดฒเดพเดธเด‚;
  • BindDN โ€œCN=bindUsr,CN=Users,DC=abc,DC=ruโ€ - LDAP-เดฒเต‡เด•เตเด•เต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เดพเดจเต‹เดจเดฟเด•เตเด•เตฝ เดจเดพเดฎเด‚ (UZ - bindUsr เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเตฝ abc.ru/Users);
  • เดชเดพเดธเตโ€Œเดตเต‡เดกเต b1ndP@SS โ€” เดฌเตˆเตปเดกเดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดชเดพเดธเตโ€Œเดตเต‡เดกเต;
  • BaseDN โ€œOU=allUsr,DC=abc,DC=ruโ€ โ€” เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเดพเดฏเดฟ เดคเดฟเดฐเดฏเดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจ เดชเดพเดค;
  • BaseDN "OU=myGrp,DC=abc,DC=ru" - เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด—เตเดฐเต‚เดชเตเดชเดฟเดจเตเดฑเต† เด•เดฃเตเดŸเต†เดฏเตเดจเตผ (abc.rumyGrp เดŽเดจเตเดจ เด•เดฃเตเดŸเต†เดฏเตเดจเดฑเดฟเดฒเต† myVPNUsr เด—เตเดฐเต‚เดชเตเดชเต);
  • SearchFilter "(cn=myVPNUsr)" เดŽเดจเตเดจเดคเต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด—เตเดฐเต‚เดชเตเดชเดฟเดจเตเดฑเต† เดชเต‡เดฐเดพเดฃเต.

เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเตเด‚ เดกเดฏเด—เตเดจเต‹เดธเตเดฑเตเดฑเดฟเด•เตเดธเตเด‚

เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดžเด™เตเด™เดณเตเดŸเต† เดธเต†เตผเดตเตผ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเดจเตเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเดจเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เดพเด‚:

$ sudo systemctl enable [email protected]
$ sudo systemctl start [email protected]

เด†เดฐเด‚เดญ เดชเดฐเดฟเดถเต‹เดงเดจ:

systemctl status [email protected]
journalctl -xe
cat /var/log/messages
cat /var/log/openvpn/*log

เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เด‡เดทเตเดฏเต‚เดตเตเด‚ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดฒเตเด‚

เด•เดพเดฐเดฃเด‚ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพเด•เตเด•เต เดชเตเดฑเดฎเต‡, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต€เด•เดณเตเด‚ เดฎเดฑเตเดฑเต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต; เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด’เดฐเต เดชเตเดฐเตŠเดซเตˆเตฝ เดซเดฏเดฒเดฟเตฝ เดชเตŠเดคเดฟเดฏเตเดจเตเดจเดคเต เดตเดณเดฐเต† เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต. เดˆ เดซเดฏเตฝ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดชเตเดฐเตŠเดซเตˆเตฝ OpenVPN เด•เตเดฒเดฏเดจเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด‡เดฑเด•เตเด•เตเดฎเดคเดฟ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เด’เดฐเต เด•เตเดฐเดฎเต€เด•เดฐเดฃ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด‚ เดชเตเดฐเตŠเดซเตˆเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚.

เดจเดฟเด™เตเด™เตพ เดชเตเดฐเตŠเดซเตˆเดฒเดฟเดฒเต‡เด•เตเด•เต เดฑเต‚เดŸเตเดŸเต เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต (ca.crt), TLS เด•เต€ (ta.key) เดซเดฏเดฒเตเด•เดณเตเดŸเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดธเดพเดงเตเดค เด•เดพเดฒเดฏเดณเดตเต เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เดฎเดฑเด•เตเด•เดฐเตเดคเต เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดซเดฏเดฒเดฟเตฝ. เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดตเดณเดฐเต† เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏเดคเดพเด•เตเด•เดฐเตเดคเต; เดชเดฐเดฎเดพเดตเดงเดฟ 180 เดฆเดฟเดตเดธเดคเตเดคเต‡เด•เตเด•เต เดธเตเดตเดฏเด‚ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดžเดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

vim /usr/share/easy-rsa/3/vars

...
export EASYRSA_CERT_EXPIRE=180

vim /usr/share/easy-rsa/3/client/template.ovpn

client
dev tun
proto udp
remote gw.abc.ru 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
verb 3
auth-user-pass

<ca>
-----BEGIN CERTIFICATE-----
PUT YOUR CA CERT (ca.crt) HERE
-----END CERTIFICATE-----
</ca>

key-direction 1
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
PUT YOUR TA KEY (ta.key) HERE
-----END OpenVPN Static key V1-----
</tls-auth>

เด•เตเดฑเดฟเดชเตเดชเตเด•เตพ:

  • เดธเตเดŸเตเดฐเดฟเด‚เด—เตเด•เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต†... เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด• เด…เดตเดฐเตเดŸเต† เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ;
  • เดฑเดฟเดฎเต‹เดŸเตเดŸเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เด—เต‡เดฑเตเดฑเตโ€Œเดตเต‡เดฏเตเดŸเต† เดชเต‡เดฐเต/เดตเดฟเดฒเดพเดธเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•;
  • เด…เดงเดฟเด• เดฌเดพเดนเตเดฏ เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ auth-user-pass เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เดนเต‹เด‚ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดธเตเดฅเดฒเดคเตเดคเต) เด’เดฐเต เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เด…เดญเตเดฏเตผเดคเตเดฅเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด’เดฐเต เดชเตเดฐเตŠเดซเตˆเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเดพเดฏเดฟ เดžเด™เตเด™เตพ เด’เดฐเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต:

vim ~/make.profile.sh

#!/bin/bash

if [ -z "$1" ] ; then
 echo Missing mandatory client name. Usage: $0 vpn-username
 exit 1
fi

#Set variables
basepath=/usr/share/easy-rsa/3
clntpath=$basepath/client
privpath=$basepath/pki/private
certpath=$basepath/pki/issued
profile=$clntpath/$1.ovpn

#Get current year and lowercase client name
year=`date +%F`
client=${1,,}
echo Processing $year year cert for user/device $client

cd $basepath

if [  -f client/$client* ]; then
    echo "*** ERROR! ***"
    echo "Certificate $client already issued!"
    echo "*** ERROR! ***"
    exit 1
fi

. ./vars
./easyrsa --batch --req-cn=$client gen-req $client nopass
./easyrsa --batch sign-req client $client

#Make profile
cp $clntpath/template.ovpn $profile

echo "<key>" >> $profile
cat $privpath/$1.key >> $profile
echo "</key>" >> $profile

echo -e "n" >> $profile
openssl x509 -in $certpath/$1.crt -out $basepath/$1.crt

echo "<cert>" >> $profile
cat $basepath/$1.crt >> $profile
echo "</cert>" >> $profile
echo -e "n" >> $profile

#remove tmp file
rm -f $basepath/$1.crt

echo Complete. See $profile file.

cd ~

เดซเดฏเตฝ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เด†เด•เตเด•เตเดจเตเดจเต:

chmod a+x ~/make.profile.sh

เดžเด™เตเด™เดณเตเดŸเต† เด†เดฆเตเดฏ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เด‡เดทเตเดฏเต‚ เดšเต†เดฏเตเดฏเดพเด‚.

~/make.profile.sh my-first-user

เดซเต€เดกเตเดฌเดพเด•เตเด•เต

เด’เดฐเต เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต (เดจเดทเตเดŸเด‚, เดฎเต‹เดทเดฃเด‚) เดตเดฟเดŸเตเดŸเตเดตเต€เดดเตเดš เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดˆ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เด…เดธเดพเดงเตเดตเดพเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต:

cd /usr/share/easy-rsa/3/
./easyrsa revoke my-first-user
./easyrsa gen-crl

เด‡เดทเตเดฏเต‚ เดšเต†เดฏเตเดคเดคเตเด‚ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดฟเดฏเดคเตเดฎเดพเดฏ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เด•เดพเดฃเตเด•

เด‡เดทเตเดฏเต‚ เดšเต†เดฏเตเดคเดคเตเด‚ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดฟเดฏเดคเตเดฎเดพเดฏ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เด•เดพเดฃเตเดจเตเดจเดคเดฟเดจเต, เดธเต‚เดšเดฟเด• เดซเดฏเตฝ เด•เดพเดฃเตเด•:

cd /usr/share/easy-rsa/3/
cat pki/index.txt

เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด‚:

  • เด†เดฆเตเดฏ เดตเดฐเดฟ เดธเต†เตผเดตเตผ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเดพเดฃเต;
  • เด†เดฆเตเดฏ เด•เดฅเดพเดชเดพเดคเตเดฐเด‚
    • เดตเดฟ (เดธเดพเดงเตเดตเดพเดฏ) - เดธเดพเดงเตเดคเดฏเตเดณเตเดณ;
    • R (เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดฟ) - เดคเดฟเดฐเดฟเดšเตเดšเตเดตเดฟเดณเดฟเดšเตเดšเต.

เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเดœเตเดœเต€เด•เดฐเดฃเด‚

เดŸเตเดฐเดพเตปเดธเตเดฎเดฟเดทเตป เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด…เดตเดธเดพเดจ เด˜เดŸเตเดŸเด™เตเด™เตพ - เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เตเด‚ เดซเดฏเตผเดตเดพเดณเตเด•เดณเตเด‚.

เดฒเต‹เด•เตเด•เตฝ เดซเดฏเตผเดตเดพเดณเดฟเตฝ เด•เดฃเด•เตเดทเดจเตเด•เตพ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต:

$ sudo firewall-cmd --add-service=openvpn
$ sudo firewall-cmd --add-service=openvpn --permanent

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, IP เดŸเตเดฐเดพเดซเดฟเด•เต เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด•:

$ sudo sysctl net.ipv4.ip_forward=1
$ sudo echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/50-sysctl.conf

เด’เดฐเต เด•เต‹เตผเดชเตเดชเดฑเต‡เดฑเตเดฑเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ, เดธเดฌเตโ€Œเดจเต†เดฑเตเดฑเดฟเด‚เด—เต เด‰เดฃเตเดŸเดพเด•เดพเตป เดธเดพเดงเตเดฏเดคเดฏเตเดฃเตเดŸเต, เดžเด™เตเด™เดณเตเดŸเต† VPN เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด‰เดฆเตเดฆเต‡เดถเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณ เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เดŽเด™เตเด™เดจเต† เด…เดฏเดฏเตโ€Œเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดฑเต‚เดŸเตเดŸเดฑเดฟเดจเต‹เดŸเต เดชเดฑเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเตฝ เดžเด™เตเด™เตพ เด•เดฎเดพเตปเดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด‰เดชเด•เดฐเดฃเดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต):

# ip route 172.16.20.0 255.255.254.0 172.16.19.123

เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด•.

เด•เต‚เดŸเดพเดคเต†, gw.abc.ru เดŽเดจเตเดจ เดฌเดพเดนเตเดฏ เดตเดฟเดฒเดพเดธเด‚ เดจเตฝเด•เตเดจเตเดจ เดฌเต‹เตผเดกเตผ เดฑเต‚เดŸเตเดŸเตผ เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเตฝ, udp/1194 เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เด•เดŸเดจเตเดจเตเดชเต‹เด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เดธเตเดฅเดพเดชเดจเดคเตเดคเดฟเดจเต เด•เตผเดถเดจเดฎเดพเดฏ เดธเตเดฐเด•เตเดทเดพ เดจเดฟเดฏเดฎเด™เตเด™เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† VPN เดธเต†เตผเดตเดฑเดฟเตฝ เด’เดฐเต เดซเดฏเตผเดตเดพเตพ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดŽเดจเตเดฑเต† เด…เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ, iptables เดซเต‹เตผเดตเต‡เดกเต เดถเตƒเด‚เด–เดฒเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เดตเดฒเดฟเดฏ เดตเดดเด•เตเด•เด‚ เดจเตฝเด•เตเดจเตเดจเดคเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚ เด…เดต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดฒเตเดฒ. เด…เดต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, "เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดจเดฟเดฏเดฎเด™เตเด™เตพ" เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดเดฑเตเดฑเดตเตเด‚ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต - เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดจเดฟเดฏเดฎเด™เตเด™เตพ, เด’เดฐเต เดซเดฏเดฒเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต /etc/firewalld/direct.xml. เดจเดฟเดฏเดฎเด™เตเด™เดณเตเดŸเต† เดจเดฟเดฒเดตเดฟเดฒเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ เด•เดพเดฃเดพเด‚:

$ sudo firewall-cmd --direct --get-all-rule

เด’เดฐเต เดซเดฏเตฝ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เด…เดคเดฟเดจเตเดฑเต† เด’เดฐเต เดฌเดพเด•เตเด•เดชเตเดชเต เดชเด•เตผเดชเตเดชเต เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•:

cp /etc/firewalld/direct.xml /etc/firewalld/direct.xml.`date +%F.%T`.bak

เดซเดฏเดฒเดฟเดจเตเดฑเต† เดเด•เดฆเต‡เดถ เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เตพ เด‡เดตเดฏเดพเดฃเต:

<?xml version="1.0" encoding="utf-8"?>
<direct>
 <!--Common Remote Services-->
  <!--DNS-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o ens192 -p udp --dport 53 -j ACCEPT</rule>
  <!--web-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.200 --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.201 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
  <!--Some Other Systems-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p udp -d 172.16.19.100 --dport 7000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
  <!--just logging-->
    <rule priority="1" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -j LOG --log-prefix 'forward_fw '</rule>
</direct>

เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด™เตเด™เตพ

เด‡เดต เด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ เดธเดพเดงเดพเดฐเดฃ iptables เดจเดฟเดฏเดฎเด™เตเด™เดณเดพเดฃเต, เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เดซเดฏเตผเดตเดพเตพเดกเดฟเดจเตเดฑเต† เด†เดตเดฟเตผเดญเดพเดตเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดชเดพเด•เตเด•เต‡เดœเตเดšเต†เดฏเตเดคเดตเดฏเดพเดฃเต.

เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเตเดณเตเดณ เดกเต†เดธเตเดฑเตเดฑเดฟเดจเต‡เดทเตป เด‡เดจเตเดฑเตผเดซเต‡เดธเต tun0 เด†เดฃเต, เด•เต‚เดŸเดพเดคเต† เดŸเดฃเดฒเดฟเดจเตเดณเตเดณ เดฌเดพเดนเตเดฏ เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, ens192, เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต.

เดกเตเดฐเต‹เดชเตเดชเต เดšเต†เดฏเตเดค เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฃเต เด…เดตเดธเดพเดจ เดตเดฐเดฟ. เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดฒเต‹เด—เดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เดซเดฏเตผเดตเดพเตพเดกเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดกเต€เดฌเด—เต เดฒเต†เดตเตฝ เดฎเดพเดฑเตเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

vim /etc/sysconfig/firewalld
FIREWALLD_ARGS=--debug=2

เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดตเต€เดฃเตเดŸเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดพเดงเดพเดฐเดฃ เดซเดฏเตผเดตเดพเตพเดกเต เด•เดฎเดพเตปเดกเต เด†เดฃเต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต:

$ sudo firewall-cmd --reload

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเตเดชเต‹เดฒเต† เดกเตเดฐเต‹เดชเตเดชเต เดšเต†เดฏเตเดค เดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚:

grep forward_fw /var/log/messages

เด…เดŸเตเดคเตเดคเดคเต เดŽเดจเตเดคเดพเดฃเต

เด‡เดคเต เดธเดœเตเดœเต€เด•เดฐเดฃเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเต!

เด•เตเดฒเดฏเดจเตเดฑเต เดธเตˆเดกเดฟเตฝ เด•เตเดฒเดฏเดจเตเดฑเต เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•, เดชเตเดฐเตŠเดซเตˆเตฝ เด‡เดฎเตเดชเต‹เตผเดŸเตเดŸเตเดšเต†เดฏเตโ€Œเดคเต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเด• เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเดคเต. เดตเดฟเตปเดกเต‹เดธเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ, เดตเดฟเดคเดฐเดฃ เด•เดฟเดฑเตเดฑเต เดธเตเดฅเดฟเดคเดฟเดšเต†เดฏเตเดฏเตเดจเตเดจเต เดกเดตเดฒเดชเตเดชเตผ เดตเต†เดฌเตเดธเตˆเดฑเตเดฑเต.

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดžเด™เตเด™เตพ เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดคเดฟเดฏ เดธเต†เตผเดตเดฑเดฟเดจเต† เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเดฟเด‚เด—เต, เด†เตผเด•เตเด•เตˆเดตเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดชเดคเดฟเดตเดพเดฏเดฟ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเตเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เดฎเดฑเด•เตเด•เดฐเตเดคเต.

เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เด•เดฃเด•เตเดทเตป!

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•