1. 程式人生 > >CentOS7.3 搭建Openvpn

CentOS7.3 搭建Openvpn

direct top csharp mon mkdir -p iptable erb amp country

環境:CentOS Linux release 7.3.1611 (Core)

查看os版本命令:[[email protected] ~]# cat /etc/redhat-release

命令記錄如下:

yum upgrade  #更新源
yum install epel-release -y   #安裝epel庫
yum install easy-rsa openssh-server lzo openssl openssl-devel openvpn NetworkManager-openvpn openvpn-auth-ldap -y    #安裝一系列相關軟件、

拷貝配置文件:

cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn    #拷貝server.conf到/etc/openvpn目錄下

編輯openvpn配置文件

vim /etc/openvpn/server.conf

我的配置如下(有些註釋掉了,但留著備用):

port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh2048.pem
topology subnet
server 
10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 0.0.0.0 0.0.0.0" #定義網關 push "route 192.168.0.0 255.255.255.0" #推送vpn服務器內網網段給客戶端 ;push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 223.5.5.5" push "dhcp-option DNS 114.114.114.114" client-to-client duplicate-cn keepalive
10 120 ;tls-auth ta.key 0 # This file is secret ;cipher AES-256-CBC comp-lzo ;max-clients 100 persist-key persist-tun status openvpn-status.log ;log openvpn.log log-append openvpn.log verb 3 ;mute 20 ;explicit-exit-notify 1

準備配置證書文件

mkdir -p  /etc/openvpn/easy-rsa/keys
cp  -a  /usr/share/easy-rsa/2.0/*  /etc/openvpn/easy-rsa/
vi   /etc/openvpn/easy-rsa/vars

修改vars配置的內容, 自定義設置各項值就可以。

export KEY_COUNTRY="CN"
export KEY_PROVINCE="ZJ"
export KEY_CITY="HZ"
export KEY_ORG="xihu"    #定義所在的組織
export KEY_EMAIL="[email protected]"
export KEY_OU="westlake"    #定義所在的單位
export KEY_NAME="openvpn"    #定義openvpn服務器的名稱
export KEY_CN="APEC"    #這行配置,需要將前邊的“#”號註釋去掉。

開始制作證書

cp  /etc/openvpn/easy-rsa/openssl-1.0.0.cnf  /etc/openvpn/easy-rsa/openssl.cnf
cd /etc/openvpn/easy-rsa    #切換工作目錄
source ./vars    #讓配置文件生效
./clean-all 
./build-ca    #之前已配置好相關參數,故執行命令後,按回車鍵,一直到結束即可。

創建服務端證書

./build-key-server server  #創建通用名(common name)為"server"的證書文件

#按回車鍵進行,在提示輸入密碼的地方,設置一個密碼如qaz123,在An optional company name處輸入CNABB,最後輸入兩次“y”確認

創建客戶端證書

./build-dh     #創建秘鑰文件,耗時1分鐘左右
ls   /etc/openvpn/easy-rsa/keys/       #可以看到,有一個db2048.pem的文件產生。
cd  /etc/openvpn/easy-rsa/keys
cp  dh2048.pem  ca.crt  server.crt  server.key   /etc/openvpn
cd  /etc/openvpn/easy-rsa

./build-key client  #創建一個通用名(common name)為 client的客戶端

#創建客戶端證書文件,按回車進行,提示輸入密碼的地方,輸入之前設置的證書密碼 "qaz123",An optional company name處輸入先前設置的公司名字(CNABB)。【一定要和先前輸入的一樣】

#另外註意:有多少個客戶端就需要./build-key client 多少次,當然這裏的client名字需不同。

ls /etc/openvpn/easy-rsa/keys/    #可以看到,生成了客戶端的證書文件

設置iptables、路由轉發

yum install -y iptables-services
systemctl enable iptables
systemctl stop firewalld   #關閉firewall防火墻,我的OS沒有預裝防火墻,因此這條命令不用輸,
systemctl start iptables   #啟動iptables
iptables  -F     #清空默認的iptables規則
設置iptables NAT轉發規則
iptables -t nat -A POSTROUTING -s 192.168.1.0/24  -j MASQUERADE 
service iptables save   #保存防火墻規則
echo 1 > /proc/sys/net/ipv4/ip_forward     #臨時開啟路由轉發
vi  /etc/sysctl.conf   #編輯配置文件,修改以下配置,設置永久路由轉發
net.ipv4.ip_forward = 1

啟動openvpn

systemctl -f enable [email protected]      #設置啟動文件
systemctl start [email protected]          #啟動openvpn的命令

#註意,這裏如果啟動報錯,說明你前面的server.conf配置文件有誤,需要調試配置文件

CentOS7.3 搭建Openvpn