天天看點

CentOS 7安裝OpenVPN服務

一、架構圖

CentOS 7安裝OpenVPN服務

二、規劃:

1.外出筆記本:

系統:windows X

軟體:openvpn用戶端

2.VPN伺服器:

系統:Centos7.8

軟體:openvpn、easy-rsa、花生殼

三、環境準備(VPN伺服器)

1、開啟轉發功能并生效

## 不存在該配置則添加
# grep 'net.ipv4.ip_forward = 1' /etc/sysctl.conf || echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
# sysctl -p
           

2、iptables配置(隻需添加配置,不需要啟動iptables服務)

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables


[[email protected] ~]# iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  10.8.0.0/24          0.0.0.0/0 
           

3、定時任務同步系統時間:crontab -l

CentOS 7安裝OpenVPN服務

4、使用上海時間:ls -l /etc/localtime

CentOS 7安裝OpenVPN服務

5、檢視硬體時間:hwclock --show

CentOS 7安裝OpenVPN服務

6、系統時間同步到硬體時間:hwclock --systohc

說明:如果時間不同步,那麼VPN登入通路就可能存在問題。

7、網卡設定:

[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV6INIT=no
NAME=eth0
UUID=3813523a-3a49-4251-bb38-0af0bf18c3bb
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.100.194
DNS1=8.8.8.8
DNS2=114.114.114.114
GATEWAY=192.168.100.254


[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV6INIT=no
NAME=eth1
UUID=3813523a-3a49-4251-bb38-0af0bf18c3bb
DEVICE=eth1
ONBOOT=yes
IPADDR=10.0.0.10
DNS1=8.8.8.8
DNS2=114.114.114.114
GATEWAY=10.0.0.254
           

四、openvpn

1、安裝依賴

yum install -y lz4-devel lzo-devel pam-devel openssl-devel systemd-devel sqlite-devel autoconf  automake libtool libtool-ltdl
           

2、安裝openvpn

wget https://github.com/OpenVPN/openvpn/archive/v2.4.9.tar.gz
mv v2.4.9.tar.gz openvpn-2.4.9.tar.gz
tar xf openvpn-2.4.9.tar.gz 
cd openvpn-2.4.9/
autoreconf -i -v -f
./configure --prefix=/usr/local/openvpn --enable-lzo --enable-lz4 --enable-crypto --enable-server --enable-plugins --enable-port-share --enable-iproute2 --enable-pf --enable-plugin-auth-pam --enable-pam-dlopen --enable-systemd
make && make install
ln -s /usr/local/openvpn/sbin/openvpn /usr/local/sbin/openvpn
           

3、修改配置檔案并啟動

# vim /usr/local/openvpn/lib/systemd/system/[email protected]
### 找到 ExecStart 這行,改為如下
ExecStart=/usr/local/openvpn/sbin/openvpn --config server.conf

配置系統服務,并開機自啟動
# cp -a /usr/local/openvpn/lib/systemd/system/[email protected] /usr/lib/systemd/system/openvpn.service
# systemctl enable openvpn.service
           

五、easy-rsa

1、安裝easy-rsa

wget https://github.com/OpenVPN/easy-rsa/archive/v3.0.7.tar.gz
mv v3.0.7.tar.gz easy-rsa-3.0.7.tar.gz
tar xf easy-rsa-3.0.7.tar.gz
           

2、修改配置檔案

cd easy-rsa-3.0.7/easyrsa3
cp -a vars.example vars

在檔案末尾添加一下資訊
# 國家
set_var EASYRSA_REQ_COUNTRY     "CN"
# 省
set_var EASYRSA_REQ_PROVINCE    "GD"
# 城市
set_var EASYRSA_REQ_CITY        "ShenZhen"
# 組織
set_var EASYRSA_REQ_ORG         "yu"
# 郵箱
set_var EASYRSA_REQ_EMAIL       "[email protected]"
# 擁有者
set_var EASYRSA_REQ_OU          "yuxiaoer"

# 長度
set_var EASYRSA_KEY_SIZE        2048
# 算法
set_var EASYRSA_ALGO            rsa

# CA憑證過期時間,機關天
set_var EASYRSA_CA_EXPIRE      36500
# 簽發證書的有效期是多少天,機關天
set_var EASYRSA_CERT_EXPIRE    36500
           

六、生成服務端和用戶端證書

1、初始化與建立CA根證書

cd /root/easy-rsa-3.0.7/easyrsa3
./easyrsa init-pki
./easyrsa build-ca
           

在這部分需要輸入PEM密碼 PEM pass phrase,輸入兩次,此密碼必須記住,不然以後不能為證書簽名。還需要輸入common name 通用名,如:openvpen,這個你自己随便設定個獨一無二的。

2、生成服務端證書

./easyrsa build-server-full server nopass
./easyrsa gen-dh	#建立Diffie-Hellman,確定key穿越不安全網絡的指令,時間會有點長,耐心等待
           

3、生成用戶端證書

./easyrsa build-client-full client nopass    # 無密碼,實際應用中不推薦,用戶端有密碼可提高安全性
./easyrsa build-client-full zhangsan		 # 讓你輸入密碼,後續VPN連接配接時會使用
openvpn --genkey --secret ta.key			 #為了提高安全性,生成ta.key
           

4、整理服務端配置檔案

mkdir -p /etc/openvpn/server/
cp -a pki/ca.crt /etc/openvpn/server/
cp -a pki/private/server.key /etc/openvpn/server/
cp -a pki/issued/server.crt /etc/openvpn/server/
cp -a pki/dh.pem /etc/openvpn/server/
cp -a ta.key /etc/openvpn/server/


#服務端配置檔案
[[email protected] easyrsa3]# cat /etc/openvpn/server/server.conf
local 0.0.0.0
port 1194
proto tcp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.100.0  255.255.255.0"
push "route 10.0.0.2 255.0.0.0"
push "route 10.0.10.0 255.255.255.0"
;client-to-client
;duplicate-cn
keepalive 10 120
tls-auth /etc/openvpn/server/ta.key 0
cipher AES-256-CBC
compress lz4-v2
push "compress lz4-v2"
;comp-lzo
max-clients 1000
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log  /var/log/openvpn.log
verb 3
;explicit-exit-notify 1

#啟動openvpn(port:1194)
systemctl start openvpn.service
           

通過ifconfig指令,也可見多個tun0網卡資訊

CentOS 7安裝OpenVPN服務

七、花生殼

模拟環境,沒有公網ip,是以用花生殼

1、安裝phddns

wget https://down.oray.com/hsk/linux/phddns-5.1.0.amd64.rpm
rpm -ivh phddns-5.1.0.amd64.rpm
           
CentOS 7安裝OpenVPN服務

2、浏覽器輸入遠端管理位址b.oray.com進入花生殼遠端管理頁面,輸入安裝花生殼時生成的SN碼及預設密碼admin進入

3、首次登入,需要進行初始化:重設密碼,填寫手機,發送驗證碼

CentOS 7安裝OpenVPN服務

4、建立域名建立穿透映射

CentOS 7安裝OpenVPN服務

八、Windows用戶端配置與通路

1、用戶端安裝

win7:https://www.techspot.com/downloads/downloadnow/5182/?evp=851afc05ae3a528d9f392a9da40bc911&file=6
win10:http://down.i4t.com/openvpn-install-2.4.7-I606-Win10.exe
           

2、安裝完畢後會在「網絡連接配接」中會多出一個連接配接

CentOS 7安裝OpenVPN服務

3、用戶端zhangsan使用者配置檔案

1、注意路徑,在OpenVPN/config目錄下建立了client目錄

2、ca.crt、zhangsan.crt、zhangsan.key、ta.key都是之前建立好的,隻有zhangsan.ovpn需要單獨下載下傳并修改。

CentOS 7安裝OpenVPN服務

zhangsan.ovpn内容如下:

client

dev tun

proto tcp

remote ****.vip 端口(填寫花生殼上面的域名和端口)

resolv-retry infinite

nobind

;user nobody

;group nobody

persist-key

persist-tun

ca ca.crt

cert zhangsan.crt

key zhangsan.key

remote-cert-tls server

tls-auth ta.key 1

cipher AES-256-CBC

compress lz4-v2

verb 3

;mute 20

4、連接配接zhangsan使用者

之前生成用戶端證書的時候,加上 nopass 參數,是以直接連接配接無需輸入密碼。如果連接配接的是使用者zhangsan,則需要輸入密碼。

連接配接成功如下所示

CentOS 7安裝OpenVPN服務

5、用戶端模拟通路辦公電腦

CentOS 7安裝OpenVPN服務

轉載于:http://www.zhangblog.com/2020/05/09/openvpn01/

繼續閱讀