前言
之前為了方便遠程辦公時訪問公司的內部系統,如:svn、OA、wiki、禪道等等;通通在防火墻上做了端口映射。然后有個內部系統被黑了,各種弱口令沒辦法。果斷關閉端口映射,看來還是得搭建個VPN服務器,vpn設備感覺大材小用。馬上就想到了開源的openvpn,下面就來介紹openvpn的安裝配置過程。
openvpn簡介
官方網站:https://openvpn.net 打不開請爬墻
openssl原理:http://www.www58058.com/archives/2704 參考書生的博客,哈哈
openvpn原理:http://freeloda.blog.51cto.com/2033581/1354768 參考往期學員的博客,此處就不贅述了。
安裝配置步驟
1、安裝openvpn軟件
2、生成服務器證書
3、修改主配置文件
4、生成并簽署客戶端證書
4、客戶端配置并連接
一、安裝openvpn軟件
安裝epel源
[root@qin ~]# rpm -ivh http://mirrors.zju.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm Retrieving http://mirrors.zju.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm Preparing... ########################################### [100%] 1:epel-release ########################################### [100%]
安裝openvpn
[root@qin ~]# yum -y install openvpn
下載easyesa,創建CA、生成證書都需要它
[root@qin ~]# wget https://github.com/OpenVPN/easy-rsa/archive/master.zip [root@qin ~]# unzip master.zip [root@qin ~]# mv easy-rsa-master/ /etc/openvpn
二、生成服務器證書
先切換目錄到/etc/openvpn/easy-rsa-master/easyrsa3以便生成證書
pki目錄初始化,此動作會刪除pki目錄下所有證書及密鑰文件
創建根證書,密鑰文件需要設置密碼保護,并指定一個名稱
生成一個服務器端的證書請求文件,不需要密碼保護
簽署服務器端的請求證書,需要輸入根證書的密碼授權
生成 Diffie Hellman 參數
查看服務器端生成的所有證書及密鑰文件
為方便查看及配置,把服務器端需要用到的證書及密鑰文件放到/etc/openvpn目錄下
三、修改主配置文件,
默認沒有主配置文件,需要從/usr/share/doc下復制一個模版文件過來
[root@qin ~]# cp /usr/share/doc/openvpn-2.3.6/sample/sample-config-files/server.conf /etc/openvpn [root@qin ~]# vim /etc/openvpn/server.conf local 192.168.18.42 port 2285 proto udp dev tun ca /etc/openvpn/ca.crt cert /etc/openvpn/server.crt key /etc/openvpn/server.key # This file should be kept secret dh /etc/openvpn/dh.pem server 10.38.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt ;push "redirect-gateway def1 bypass-dhcp" #啟用后,客戶端連接后所有上網請求都走VPN網關 push "route 192.168.0.0 255.255.0.0" push "dhcp-option DNS 114.114.114.114" keepalive 10 120 comp-lzo max-clients 100 persist-key persist-tun status /var/log/openvpn-status.log log /var/log/openvpn.log log-append /var/log/openvpn.log verb 3 [root@qin ~]# service openvpn start
需要啟用路由轉發
[root@qin ~]# sysctl -w net.ipv4.ip_forward=1
服務啟動后會生成一個VPN網關
在硬件防火墻上做端口映射后,openvpn就可以提供連接服務了
服務器iptables沒啟動,此處略過,可以參考示例文件 /usr/share/doc/openvpn-2.3.6/sample/sample-config-files/firewall.sh
四、生成并簽署客戶端證書
生成一個證書請求文件,在服務器端或客戶端都可以生成;設置密碼保護并指定一個名稱
[root@qin ~]# cp -r /etc/openvpn/easy-rsa-master/ /tmp [root@qin ~]# cd /tmp/easy-rsa-master/easyrsa3/ [root@qin easyrsa3]# ./easyrsa init-pki
導入客戶端證書請求文件
[root@qin ~]# cd /etc/openvpn/easy-rsa-master/easyrsa3/ [root@qin easyrsa3]# ./easyrsa import-req /tmp/easy-rsa-master/easyrsa3/pki/reqs/client1.req client1
簽署客戶端證書,同樣,需要需要輸入根證書密碼授權
五、客戶端配置并連接
到官網下載相應的軟件 https://openvpn.net/index.php/open-source/downloads.html
默認會安裝到 C:\Program Files\OpenVPN 下
下載根證書、客戶端證書、客戶端密鑰這三個文件,放到 C:\Program Files\OpenVPN\config下
/etc/openvpn/easy-rsa-master/easyrsa3/pki/ca.crt /etc/openvpn/easy-rsa-master/easyrsa3/pki/issued/client1.crt /tmp/easy-rsa-master/easyrsa3/pki/private/client1.key
修改客戶端配置文件,默認沒有此文件,需要從 C:\Program Files\OpenVPN\sample-config\client.ovpn 復制一份到config目錄下
client dev tun proto udp remote 192.168.18.42 2285 #指向openvpn服務器ip及端口 resolv-retry infinite nobind persist-key persist-tun ca ca.crt #指向證書,默認路徑無需指定 cert client1.crt key client1.key comp-lzo verb 3
注意:config目錄下沒有證書和配置文件時,軟件是不能使用的,如圖
有配置文件和證書后,點擊connect并輸入client1.key的密鑰密碼后即可連接,如圖
寫的比較簡單,不要見怪哈~
原創文章,作者:秦,如若轉載,請注明出處:http://www.www58058.com/4114
不錯,可以嘗試下標題段落功能,樣式會更好
可以嘗試user/password驗證。
@風追海浪:嗯,已經實現了呢,server.conf加倆字段,取消私鑰認證,可以使用系統帳號登錄
auth-user-pass-verify auth-pam.pl via-file
client-cert-not-required