前言
之前为了方便远程办公时访问公司的内部系统,如:svn、OA、wiki、禅道等等;通通在防火墙上做了端口映射。然后有个内部系统被黑了,各种弱口令没办法。果断关闭端口映射,看来还是得搭建个VPN服务器,vpn设备感觉大材小用。马上就想到了开源的openvpn,下面就来介绍openvpn的安装配置过程。
openvpn简介
官方网站:https://openvpn.net 打不开请爬墙
openssl原理:http://www.178linux.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.178linux.com/4114
评论列表(3条)
不错,可以尝试下标题段落功能,样式会更好
可以尝试user/password验证。
@风追海浪:嗯,已经实现了呢,server.conf加俩字段,取消私钥认证,可以使用系统帐号登录
auth-user-pass-verify auth-pam.pl via-file
client-cert-not-required