1. 安装vpn服务端(openvpn)
1) 安装epel 仓库源
wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
2) 安装openvpn
yum install -y openvpn
3) 安装easy-rsa(该包用来制作ca证书)
https://github.com/OpenVPN/easy-rsa 下载包
git clone https://github.com/OpenVPN/easy-rsa.git
ps:如果没有git就安装yum -y install git
将easy-rsa文件拷贝到/etc/openvpn/下面
cp -a /usr/local/hebei/easy-rsa/ /etc/openvpn/
将vars.example 文拷贝
cp vars.example vars
编辑文件vars
修改内容如下
4) 创建服务端证书及key
初始化
cd /etc/openvpn/easy-rsa/easyrsa3/
./easyrsa init-pki
初始化目录为
/etc/openvpn/easy-rsa/easyrsa3/pki
创建根证书
./easyrsa build-ca
文件存放在
/etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt
创建服务器端证书
./easyrsa gen-req server nopass
文件存放在
req: /etc/openvpn/easy-rsa/easyrsa3/pki/reqs/server.req
key: /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key
签约服务端证书
./easyrsa sign server server
文件存放在
/etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt
创建Diffie-Hellman,确保key穿越不安全网络的命令
./easyrsa gen-dh
5) 创建客户端证书
拷贝文件
cp -a /usr/local/hebei/easy-rsa/ /usr/local/hebei/client/
初始化
./easyrsa init-pki
创建客户端key及生成证书
./easyrsa gen-req coccnet
文件
req: /usr/local/hebei/client/easy-rsa/easyrsa3/pki/reqs/coccnet.req
key: /usr/local/hebei/client/easy-rsa/easyrsa3/pki/private/coccnet.key
将得到的coccnet.req导入然后签约证书
a. 进入到/etc/openvpn/easy-rsa/easyrsa3/
cd /etc/openvpn/easy-rsa/easyrsa3/
b. 导入req
./easyrsa import-req /usr/local/hebei/client/easy-rsa/easyrsa3/pki/reqs/coccnet.req coccnet
签约证书
./easyrsa sign client coccnet
置服务端证书
拷贝服务器端文件到openvpn
cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /etc/openvpn/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key /etc/openvpn/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt /etc/openvpn/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem /etc/openvpn/
拷贝客户端端文件到client
cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /usr/local/hebei/client/
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/coccnet.crt /usr/local/hebei/client/
cp /usr/local/hebei/client/easy-rsa/easyrsa3/pki/private/coccnet.key /usr/local/hebei/client/
http://file.upyun.heanny.cn/openvpn_证书.zip 7) 配置服务端文件 拷贝配置文件
cp /usr/share/doc/openvpn-2.4.8/sample/sample-config-files/server.conf /etc/openvpn/
修改配置文件
vim /etc/openvpn/server.conf
配置文件参考:
local 0.0.0.0 #监听地址
port 1194 #监听端口
proto udp #监听协议
dev tun #采用路由隧道模式
ca /etc/openvpn/ca.crt #ca证书路径
cert /etc/openvpn/server.crt #服务器证书
key /etc/openvpn/server.key # This file should be kept secret 服务器秘钥
dh /etc/openvpn/dh.pem #密钥交换协议文件
server 10.8.0.0 255.255.255.0 #给客户端分配地址池,注意:不能和VPN服务器内网网段有相同
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp" #给网关
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 openvpn #用户
group openvpn #用户组
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3
配置log目录
mkdir /var/log/openvpn
chown -R openvpn.openvpn /var/log/openvpn/
chown -R openvpn.openvpn /etc/openvpn/*
生成ta.key
openvpn --genkey --secret /etc/openvpn/ta.key
8) 设置iptables配置nat规则和打开路由转发
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
iptables -vnL -t nat
vim /etc/sysctl.conf
//打开路由转发
net.ipv4.ip_forward = 1
sysctl -p
9) 启动openvpn服务端
openvpn --config /etc/openvpn/server.conf &
ss -nutl |grep 1194
10) 服务器iptables开启nat转发
若服务器防火墙为firewall,则需要关闭firewall,安装并开启iptables
service firewalld stop
systemctl disable firewalld
yum -y install iptables-services
systemctl enable iptables
修改配置文件
vim /etc/sysconfig/iptables
注释掉:
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
#-A FORWARD -j REJECT --reject-with icmp-host-prohibited
添加:
代码语言:javascript复制-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
及
-A INPUT -i tun0 -j ACCEPT
或
-A FORWARD -d 10.8.0.0/24 -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
重启iptables