前言:

    之前搭建过程中找了5-6个教程一起看,真是累,难道就没有写的详细一点,一次成功的吗,基于此花了一下午制作了本教程,实际测试2遍均成功,懒人福音。


基础环境:

系统:Centos6.5 64X

Openvpn2.3.14

安装:

Windows

Linux

问题:

Windows版有路由推送、用户名密码验证方面的问题,不推荐使用。建议安装Linux


附件中有密码检查脚本,配置文件等。

 

0基础环境

#关闭selinux

setenforce 0

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

#清空防火墙

iptables -F

iptables -X

#启动smb共享,可以看到还没有安装。

CentOS6.5 搭建OpenVPN服务器_CentOS

#安装Samba共享,后面有需要。

yum -y install samba

mkdir /home/samba

调整权限:chown nobody:nobody /home/samba/

创建测试文件:touch /home/samba/1.txt

#修改配置文件

vim /etc/samba/smb.conf

修改

security = share//表示允许匿名访问

workgroup = WORKGROUP//windows主机相同

末尾追加

CentOS6.5 搭建OpenVPN服务器_linux _02 

#启动Samba

service smb restart

#添加开机启动

chkconfig smb on

#windows主机输入\\服务器IP访问可以看到1.txt

#安装openssllzolzo用于压缩通讯数据加快传输速度.

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


1安装openvpn

#安装主程序

yum -y install openvpn easy-rsa

#修改基本信息

cd  /usr/share/easy-rsa/2.0/

chmod +x *

vim vars

        CentOS6.5 搭建OpenVPN服务器_CentOS_03


 

#清除keys目录下所有与证书相关的文件

#下面步骤生成的证书和密钥都在/usr/share/easy-rsa/2.0/keys目录里

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

./clean-all

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

./build-ca

CentOS6.5 搭建OpenVPN服务器_CentOS_04 

 

#生成服务端证书和密钥

./build-key-server server

CentOS6.5 搭建OpenVPN服务器_openvpn_05

 

#为客户端生成证书 (后面要换成账号名+密码认证这一步可以省略。)

#创建dh密钥

./build-dh//按电脑性能决定,等一会,不要乱动。

 

#查看文件是否都有

CentOS6.5 搭建OpenVPN服务器_linux _06 

#将刚才创建的密钥文件拷贝出来

cd 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/

#拷贝主配置文件(可选,方式二,建议使用,两者区别是方式一是默认文件,方式二是我修改过)

将文件内的server.conf通过smb共享拷贝到服务器上

#在服务器上转移拷贝过来的文件

cp /home/samba/server.conf  /etc/openvpn/

CentOS6.5 搭建OpenVPN服务器_CentOS_07 

#修改配置文件

cd /etc/openvpn/

vim server.conf

CentOS6.5 搭建OpenVPN服务器_CentOS_08 

#下载用户名密码检查脚本

       wget http://openvpn.se/files/other/checkpsw.sh

修改vim checkpsw.sh

CentOS6.5 搭建OpenVPN服务器_openvpn_09 

添加执行权限

chmod +x checkpsw.sh

创建用户名密码文件

vim userfile.sh

CentOS6.5 搭建OpenVPN服务器_openvpn_10 

 

#文件属性调整

chown nobody:nobody userfile.sh

#确认权限

ls -l

CentOS6.5 搭建OpenVPN服务器_linux _11 

#拷贝客户端证书文件

cp ca.crt /home/samba


2添加防火墙规则

#允许ssh端口通过

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -P OUTPUT ACCEPT

#允许openvpn的端口连接

iptables -A INPUT -p tcp --dport 1194 -j ACCEPT

#配置openvpnnat功能

ifconfig查看接口是否为etho,有些服务器是em1.

CentOS6.5 搭建OpenVPN服务器_openvpn_12 

CentOS6.5 搭建OpenVPN服务器_openvpn_13 

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE

#开启系统的路由功能

echo "1" > /proc/sys/net/ipv4/ip_forward

#添加FORWARD白名单

iptables -A FORWARD -i tun+ -j ACCEPT

#允许虚拟网段的所有连接

 iptables -A INPUT -s 10.10.10.0/24 -j ACCEPT

#保持已经建立的连接

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

service iptables save

service iptables start

3启动服务

/etc/init.d/openvpn start

#添加自动启动

chkconfig openvpn on

 

4到此服务端所有配置已完成,确认所有文件存在,权限正确。

CentOS6.5 搭建OpenVPN服务器_openvpn_14 

 

5客户端配置

#客户端安装,去官网下载,一路默认下一步。

访问服务器共享目录\\xxxx 拷贝ca.crt,放到安装目录的config目录中。

拷贝文件内的client.ovpn,放到安装目录的config目录中。

修改client.ovpn内容如下,这个文件需要用高级文件编辑工具打开。

CentOS6.5 搭建OpenVPN服务器_openvpn_15 

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

CentOS6.5 搭建OpenVPN服务器_openvpn_16 

#实现客户端自动登录

修改client.ovpn配置文件,将auth-user-pass改为auth-user-pass pass.txt

config目录中新建pass.txt

内容为两行,第一行为vpn用户名,第二行为密码.

重新运行Open×××,即可不输密码登录vpn!

CentOS6.5 搭建OpenVPN服务器_CentOS_17