Linux云主机安装配置OpenVPN

原创 陈宝佳  2017-02-15 14:54  阅读 1,298 次 评论 0 条
行云管家,新手有礼

OpenVPN是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN无疑是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库,目前OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Microsoft Windows以及Android和iOS上运行,并包含了许多安全性的功能。

一、准备篇

1.关闭selinux

setenforce 0
sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config


2.清空防火墙

iptables -F 清除预设表filter中的所有规则链的规则
iptables -X 清除预设表filter中使用者自定链中的规则
iptables -L

二、安装篇

1.安装openvpn程序

安装openssl和lzo,lzo用于压缩通讯数据加快传输速度.

yum -y install openssl openssl-devel lzo

安装EPEL源

rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo

安装OpenVPN主程序

yum -y install openvpn easy-rsa

修改基本信息

cd /usr/share/easy-rsa/2.0/
chmod +x *
vim vars

清除keys目录下所有与证书相关的文件,下面步骤生成的证书和密钥都在/usr/share/easy-rsa/2.0/keys目录里

source vars         //这里会提示一个东西,不用管它。
./clean-all

生成根证书ca.crt和根密钥ca.key(一路按回车即可)

./build-ca

生成服务端证书和密钥(Common Name必须填写server,其余默认即可)

./build-key-server server

为客户端生成证书(假设创建两个客户端,Common Name对应填写client1和client2,其作为今后识别客户端的标识)

创建dh(Diffie Hellman)密钥。Diffie Hellman 用于增强安全性,在OpenVPN是必须的

./build-dh     //按电脑性能决定,等一会,别心急。

2.OpenVPN配置文件

拷贝主配置文件

cd /usr/share/easy-rsa/2.0/keys
cp ca.crt dh2048.pem server.crt server.key /etc/openvpn/
cd /usr/share/doc/openvpn-2.3.14/sample/sample-config-files/
cp server.conf /etc/openvpn/

修改配置文件

cd /etc/openvpn/
vim server.conf
port 1194 #监听端口
proto tcp #监听协议
dev tun #采用路由隧道模式
ca ca.crt #ca证书路径
cert server.crt #服务器证书
key server.key # This file should be kept secret 服务器密钥
dh dh2048.pem #密钥交换协议文件
server 10.8.0.0 255.255.255.0 #给客户端分配地址池,注意:不能和VPN服务器内网网段有相同
ifconfig-pool-persist ipp.txt
push "route 192.168.20.0 255.255.255.0" #允许客户端访问内网 20.0 的网段。
push"dhcp-option DNS 8.8.8.8" #dhcp分配dns
client-to-client #客户端之间互相通信
keepalive 10 120 #存活时间,10秒ping一次,120 如未收到响应则视为断线
comp-lzo #传输数据压缩
max-clients 100 #最多允许 100 客户端连接
user nobody #用户
group nobody #用户组
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3

3.添加防火墙规则

iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允许ssh端口通过
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p tcp --dport 1194 -j ACCEPT #允许openvpn的端口连接
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE #配置openvpn的nat功能
iptables -A FORWARD -i tun+ -j ACCEPT #添加FORWARD白名单
iptables -A INPUT -s 10.10.10.0/24 -j ACCEPT #允许虚拟网段的所有连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #保持已经建立的连接
echo "1" > /proc/sys/net/ipv4/ip_forward #开启系统的路由功能
service iptables save
iptables -L

4.启动服务

/etc/init.d/openvpn start #启动openvpn
chkconfig openvpn on #添加自动启动

三、测试篇

1.客户端配置

客户端安装,去官网下载,一路默认下一步。访问服务器共享目录\\xxxx 拷贝ca.crt,放到安装目录的config目录中。拷贝文件内的client.ovpn,放到安装目录的config目录中。修改client.ovpn内容如下,这个文件需要用高级文件编辑工具打开。

2.客户端测试

双击桌面openvpn图标运行,右击桌面右下角图标,Connect连接,输入用户名密码。连接成功

本文地址:https://www.cloudbility.com/club/1496.html
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:cloudbility
版权声明:本文为原创文章,版权归 陈宝佳 所有,欢迎分享本文,转载请保留出处!

发表评论


表情