CentOS 7 安装配置 OpenVPN Server
时间:2016-05-26 01:54 来源:linux.it.net.cn 作者:IT
这篇文章描述了如何在CentOS 7 服务器上安装与配置OpenVPN服务器,以及如何编写客户端连接到新建立的OpenVPN服务器上所需的配置文件。
由于OpenVPN Server不在默认源中,所以需要安装Extra Packages for Enterprise Linux (EPEL) 仓库,其中包含有OpenVPN的包。
1 添加EPEL源
wget http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
rpm -Uvh epel-release-7-0.2.noarch.rpm
2 安装OpenVPN
首先从EPEL安装OpenVPN:
yum install openvpn -y
从示例配置文件复制一份配置文件到/etc/openvpn
cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn
打开 /etc/openvpn/server.conf 编辑:
vim /etc/openvpn/server.conf
取消以下5个语句的注释:
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
user nobody
group nobody
3 使用easy-rsa生成证书及密钥
完成了对于配置文件的修改之后,我们接下来生成keys和certificates.
由于OpenVPN-2.3.2中没有了示例的easy-rsa相关文件,我们首先需要安装它:
yum install easy-rsa
将相关文件复制到OpenVPN的配置目录:
cp -R /usr/share/easy-rsa/ /etc/openvpn
现在有关的文件都在 /etc/openvpn/easy-rsa/2.0/ 这个目录中。
3.1 调整easy-rsa密钥生成配置
首先需要修改的是vars文件
vim /etc/openvpn/easy-rsa/2.0/vars
将以下这些值修改成你自己的值:
export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York"
export KEY_ORG="Organization Name"
export KEY_EMAIL="administrator@example.com"
export KEY_CN=droplet.example.com
export KEY_NAME=server
export KEY_OU=server
另外这中间还有KEY_SIZE,可以自己修改,不过需要与之后的配置文件对应,默认为1024
export KEY_SIZE=1024
修改完成之后,执行 source ./vars, 清空目录并生成 Certificate Authority(CA):
cd /etc/openvpn/easy-rsa/2.0
source ./vars
3.2 生成密钥
3.2.1 生成CA, 服务器证书及密钥
在/etc/openvpn/easy-rsa/2.0目录中执行:
./clean-all
./build-ca
执行完成之后在/etc/openvpn/easy-rsa/2.0/keys目录中产生了CA,接下来为服务器生成密钥:
./build-key-server server
有了服务器密钥,再生成Diffie Hellman key exchange文件,这里生成的长度由之前的KEY_SIZE决定:
./build-dh
执行完成会产生dh1024.pem (如果你的KEY_SIZE = 2048,这里产生的文件是dh2048.pem)
将四个所需文件复制到OpenVPN配置目录中去:
cd /etc/openvpn/easy-rsa/2.0/keys
cp dh1024.pem ca.crt server.crt server.key /etc/openvpn
3.2.2 生成客户端证书和密钥
在/etc/openvpn/easy-rsa/2.0/目录中执行:
./build-key client
会在目录中产生客户端所需的证书和密钥
4 配置路由并启动OpenVPN Server
4.1 防火墙配置
在CentOS 7中,iptables防火墙已经被firewalld所取代,需要使用如下方法:
首先启动firewalld
systemctl status firewalld.service
查看有哪些服务已经在列表中允许通过:
# firewall-cmd --list-services
dhcpv6-client http https ssh
可以看到已经有了dhcpv6-client, http, https, ssh四项,接下来添加openvpn:
# firewall-cmd --add-service openvpn
success
# firewall-cmd --permanent --add-service openvpn
success
检查一下:
# firewall-cmd --list-services
dhcpv6-client http https openvpn ssh
最后添加masquerade:
# firewall-cmd --add-masquerade
success
# firewall-cmd --permanent --add-masquerade
success
以下命令用于确认masquerade是否添加成功:
# firewall-cmd --query-masquerade
yes
4.2 允许IP转发
在sysctl中开启IP转发
vim /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
4.3 启动OpenVPN服务
启动OpenVPN服务器并添加自动启动项:
sysctl -p
systemctl start openvpn@server
systemctl enable openvpn@server
至此服务端搭建完成。
5 客户端配置文件
取回之前生成的位于/etc/openvpn/easy-rsa/2.0/keys中的三个文件:
ca.crt
client.crt
client.key
在你的客户端创建一个文件client.ovpn, 将这三个文件与其放在同一目录中,编辑client.ovpn内容如下:
client
dev tun
proto udp
remote xxx.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca ca.crt
cert client.crt
key client.key
将其中的xxx.xxx.xxx.xxx替换为你的服务器地址,如果端口、证书、密钥不同的话修改相应的项即可
5.1 Android
直接使用OpenVPN官方的OpenVPN Connect即可,选择import导入配置文件。
5.2 Mac OS X
使用第三方的Tunnelblick连接,注意根据你的操作系统版本选择合适的版本。
(责任编辑:IT)
这篇文章描述了如何在CentOS 7 服务器上安装与配置OpenVPN服务器,以及如何编写客户端连接到新建立的OpenVPN服务器上所需的配置文件。
由于OpenVPN Server不在默认源中,所以需要安装Extra Packages for Enterprise Linux (EPEL) 仓库,其中包含有OpenVPN的包。 1 添加EPEL源wget http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm rpm -Uvh epel-release-7-0.2.noarch.rpm 2 安装OpenVPN首先从EPEL安装OpenVPN: yum install openvpn -y 从示例配置文件复制一份配置文件到/etc/openvpn cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn 打开 /etc/openvpn/server.conf 编辑: vim /etc/openvpn/server.conf 取消以下5个语句的注释: push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" user nobody group nobody 3 使用easy-rsa生成证书及密钥完成了对于配置文件的修改之后,我们接下来生成keys和certificates. 由于OpenVPN-2.3.2中没有了示例的easy-rsa相关文件,我们首先需要安装它: yum install easy-rsa 将相关文件复制到OpenVPN的配置目录: cp -R /usr/share/easy-rsa/ /etc/openvpn 现在有关的文件都在 /etc/openvpn/easy-rsa/2.0/ 这个目录中。 3.1 调整easy-rsa密钥生成配置首先需要修改的是vars文件 vim /etc/openvpn/easy-rsa/2.0/vars 将以下这些值修改成你自己的值: export KEY_COUNTRY="US" export KEY_PROVINCE="NY" export KEY_CITY="New York" export KEY_ORG="Organization Name" export KEY_EMAIL="administrator@example.com" export KEY_CN=droplet.example.com export KEY_NAME=server export KEY_OU=server 另外这中间还有KEY_SIZE,可以自己修改,不过需要与之后的配置文件对应,默认为1024 export KEY_SIZE=1024 修改完成之后,执行 source ./vars, 清空目录并生成 Certificate Authority(CA): cd /etc/openvpn/easy-rsa/2.0 source ./vars 3.2 生成密钥3.2.1 生成CA, 服务器证书及密钥在/etc/openvpn/easy-rsa/2.0目录中执行: ./clean-all ./build-ca 执行完成之后在/etc/openvpn/easy-rsa/2.0/keys目录中产生了CA,接下来为服务器生成密钥: ./build-key-server server 有了服务器密钥,再生成Diffie Hellman key exchange文件,这里生成的长度由之前的KEY_SIZE决定: ./build-dh 执行完成会产生dh1024.pem (如果你的KEY_SIZE = 2048,这里产生的文件是dh2048.pem) 将四个所需文件复制到OpenVPN配置目录中去: cd /etc/openvpn/easy-rsa/2.0/keys cp dh1024.pem ca.crt server.crt server.key /etc/openvpn 3.2.2 生成客户端证书和密钥在/etc/openvpn/easy-rsa/2.0/目录中执行: ./build-key client 会在目录中产生客户端所需的证书和密钥 4 配置路由并启动OpenVPN Server4.1 防火墙配置在CentOS 7中,iptables防火墙已经被firewalld所取代,需要使用如下方法: 首先启动firewalld systemctl status firewalld.service 查看有哪些服务已经在列表中允许通过: # firewall-cmd --list-services dhcpv6-client http https ssh 可以看到已经有了dhcpv6-client, http, https, ssh四项,接下来添加openvpn: # firewall-cmd --add-service openvpn success # firewall-cmd --permanent --add-service openvpn success 检查一下: # firewall-cmd --list-services dhcpv6-client http https openvpn ssh 最后添加masquerade: # firewall-cmd --add-masquerade success # firewall-cmd --permanent --add-masquerade success 以下命令用于确认masquerade是否添加成功: # firewall-cmd --query-masquerade yes 4.2 允许IP转发在sysctl中开启IP转发 vim /etc/sysctl.conf # Controls IP packet forwarding net.ipv4.ip_forward = 1 4.3 启动OpenVPN服务启动OpenVPN服务器并添加自动启动项: sysctl -p systemctl start openvpn@server systemctl enable openvpn@server 至此服务端搭建完成。 5 客户端配置文件取回之前生成的位于/etc/openvpn/easy-rsa/2.0/keys中的三个文件: ca.crt client.crt client.key 在你的客户端创建一个文件client.ovpn, 将这三个文件与其放在同一目录中,编辑client.ovpn内容如下: client dev tun proto udp remote xxx.xxx.xxx.xxx 1194 resolv-retry infinite nobind persist-key persist-tun comp-lzo verb 3 ca ca.crt cert client.crt key client.key 将其中的xxx.xxx.xxx.xxx替换为你的服务器地址,如果端口、证书、密钥不同的话修改相应的项即可 5.1 Android直接使用OpenVPN官方的OpenVPN Connect即可,选择import导入配置文件。 5.2 Mac OS X
使用第三方的Tunnelblick连接,注意根据你的操作系统版本选择合适的版本。 |