CentOS搭建openVPN

server端(路由模式):
一.网络设置
1.开启服务器端路由转发功能
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p
2.设置nat转发:
注:保证VPN地址池可路由出外网
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
3.设置openvpn端口通过:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24  -j MASQUERADE
重启iptables:
注:这里提一下,INPUT策略是执行后即时生效的,POSTROUTING需要保存并重启服务才能生效
# service iptables save
# service iptables restart


3.时间同步(重要):
# ntpdate asia.pool.ntp.org


二.安装依赖库
# yum install -y openssl openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig


三.安装openvpn:
# wget -c http://swupdate.openvpn.org/community/releases/openvpn-2.3.0.tar.gz
# tar zxvf openvpn-2.3.0.tar.gz
# cd openvpn-2.3.0
# ./configure --prefix=/usr/local/openvpn
# make && make install
# mkdir -p /etc/openvpn
复制模板到openvpn配置目录:
# cp -rf sample /etc/openvpn/
复制openvpn配置文件到主目录:
# cp /etc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/
# cd ..


四.下载easy-rsa:
easy-rsa-release-2.x.zip  网上找到资源,其他的有时候我没有试验成功。
unzip easy-rsa-release-2.x.zip -d /user/local/openvpn
cd /user/local/openvpn/easy-rsa-release-2.x
cp easy-rsa ../
cd 2.0/
编辑 vars
vi vars
export KEY_SIZE=1024
# 定义你所在的国家,2个字符
export KEY_COUNTRY="CN"
# 你所在的省份
export KEY_PROVINCE="BJ"
# 你所在的城市
export KEY_CITY="BeiJing"
# 你所在的组织
export KEY_ORG="DimLD"
# 你的邮件地址
export KEY_EMAIL="[email protected]"
# 你的单位
export KEY_OU="DimLD"
保存推迟后给予x权限
chmod +x vars
#. ./vars  #(注意有两个点,两个点之间有空格)
#./clean-all #清除文件 注:删除/etc/openvpn/easy-rsa/2.0/keys下的文件
#./build-ca #[注:生成一个a 1024 bit RSA的密钥,writing new private key to 'ca.key']
# ls keys
ca.crt ca.key index.txt serial
可以看到生成的ca.crt ca.key文件
生成Diffie-Hellman文件
# ./build-dh #[注:Generating DH parameters, 1024 bit long safe prime]
# ls keys
ca.crt ca.key dh1024.pem index.txt serial
#./build-key-server server-dimld #[注:其中server-dimld是CA证书的一个名字]
#./build-key client-dimld  ##此处定义为客户端名字 任意
以上生成文件时都可以一路回车过去,Sign the certificate? [y/n]:y 选择y
生成的文件在keys文件夹中:
mkdir -p /usr/local/openvpn/config
cd keys/
cp * /usr/local/openvpn/config
cd /usr/local/openvpn/config


cp /usr/local/src/openvpn-2.3.0/sample/sample-config-files/server.conf  /usr/local/openvpn/config   ##copy配置文件
vi  server.conf
port 1194
dev tun
ca ca.crt
cert server-dimld.crt
key server-dimld.key
dh dh1024.pem
server 10.0.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 127.0.0.1 255.255.255.0"


push "redirect-gateway def1 bypass-dhcp"


push "dhcp-option DNS 172.31.47.255" #本机的网关
push "dhcp-option DNS 114.114.114.114" #可用的DNS
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /usr/local/logs/openvpn-status.log
log         /usr/local/logs/openvpn.log
log-append  /usr/local/logs/openvpn.log
verb 3 
如果证书文件没有放在config目录,那么配置文件中要写绝对路径
mkdir /usr/local/


两种启动方式
1. --daemon为后台守护进程模型启动,日志输出到文件
/usr/local/openvpn/sbin/openvpn --daemon --config /etc/openvpn/openvpn.conf
2. 后台进程方式启动,日志输出到本页面
/usr/local/openvpn/sbin/openvpn /usr/local/openvpn/config/server.conf & 
看到Initialization Sequence Completed  即启动成功。


客户端:
将sample-config-files/client.conf 也下载到 C:\Program Files\OpenVPN\config 目录下
主要修改有以下几个地方


dev tun
proto udp
remote 你的vpnIP地址 1194
user nobody
group nogroup
ca ca.crt
cert client-dimld.crt
key client-dimld.key ##注:文件名和路径必须对应
comp-lzo
redirect-gateway def1


启动客户端连接即可

猜你喜欢

转载自blog.csdn.net/suleil1/article/details/78794680