CentOS 7 搭建openvpn

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/D_Guco/article/details/81606110

一 安装相关文件

yum upgrade
yum install epel-release -y 
yum install easy-rsa openssh-server lzo openssl openssl-devel openvpn NetworkManager-openvpn openvpn-auth-ldap -y 
cp -a  /usr/share/easy-rsa/*  /etc/openvpn/easy-rsa/

 二  生成服务端证书

    注意过程中输入的相关信息要记住,后面会用到。

cd /etc/openvpn/easy-rsa/3.0.3
cp /usr/share/doc/easy-rsa-3.0.3/vars.example ./vars  #一般情况下,默认的配置可以满足需求,也可以根据需要修改
./easyrsa init-pki   #建立一个空的pki结构,生成一系列的文件和目录
./easyrsa build-ca   #创建ca  密码 和 cn需要记住,后面需要用
./easyrsa gen-req server nopass  #创建服务端证书  common name 最好不要跟前面的cn那么一样
./easyrsa sign server server   #签约服务端证书
./easyrsa gen-dh  #创建Diffie-Hellman

三 生成防攻击的key文件

cd /etc/openvpn/
openvpn --genkey --secret ./keys/ta.key    # 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击)

四 生成客户端证书

#下面是客户端的证书
#首先创建一个工作的目录
cd /home/
mkdir client && cd client
cp -rf /usr/share/easy-rsa/* ./   #这是解压过的easy-rsa 而不是生成了服务端证书的easy-rsa
cd easy-rsa/3.0.3/
cp /usr/share/doc/easy-rsa-3.0.3/vars.example ./vars  #一般情况下,默认的配置可以满足需求,也可以根据需要修改
#开始生成
./easyrsa init-pki
./easyrsa gen-req client #用自己的名字,需要创建一个密码  和 cn name,自己用的 需要记住

五 签约客户端

#现在客户端的证书要跟服务端的交互,也就是签约,这样这个用户才能使用此vpn
#切换到server证书目录下
cd /etc/openvpn/easy-rsa/3.0.3/ 
./easyrsa import-req /home/client/easy-rsa/easyrsa3/pki/reqs/client.req client  #导入req
./easyrsa sign client client #用户签约,根据提示输入服务端的ca密码,这里的密码是你客户端连接openvpn需要的密码,得记住

六 整理相关文件

cp /etc/openvpn/easy-rsa/3.0.3/pki/ca.crt /etc/openvpn/keys
cp /etc/openvpn/easy-rsa/3.0.3/pki/private/server.key /etc/openvpn/keys
cp /etc/openvpn/easy-rsa/3.0.3/pki/issued/server.crt /etc/openvpn/keys
cp /etc/openvpn/easy-rsa/3.0.3/pki/dh.pem /etc/openvpn/keys

cp /etc/openvpn/keys/ta.key /home/client/
cp /etc/openvpn/easy-rsa/3.0.3/pki/ca.crt /home/client/
cp /etc/openvpn/easy-rsa/3.0.3/pki/private/ca.key /home/client/
cp /etc/openvpn/easy-rsa/3.0.3/pki/issued/client.crt  /home/client/
cp /home/client/3.0.3/pki/private/client.key /home/client/

七 创建openvpn server 配置文件

 在 /etc/openvpn目录下创建server.conf 配置文件如下

port 1194
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 0.0.0.0 0.0.0.0"
push "route 192.168.0.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 223.5.5.5"
push "dhcp-option DNS 114.114.114.114"
;client-to-client
;duplicate-cn
keepalive 10 120
tls-auth /etc/openvpn/keys/ta.key 0
cipher AES-256-CBC
comp-lzo
max-clients 5
persist-key
persist-tun
#verify-client-cert none
#username-as-common-name
#script-security 3
status openvpn-status.log
log-append openvpn.log
verb 3
mute 20

  八 防火墙开启端口

   centos 7 之后防火墙采用firewalld,刚开始用它试了几次都失败了,不是连不上就是连上了但是访问不了网站,估计是路由转发那步出了问题,不晓得firewalld怎么设置,一怒之下把防火墙换回了iptables。

service firewalld stop
systemctl disable firewalld.service #禁止firewall开机启动
yum install iptables-services #安装

iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -L -n #查看端口是否开发,确认开放后可以在本地telnet 端口确认是否成功 

 九 设置路由转发 

echo 1 > /proc/sys/net/ipv4/ip_forward     #临时开启路由转发
vi  /etc/sysctl.conf   #编辑配置文件,修改以下配置,设置永久路由转发
net.ipv4.ip_forward = 1
service iptables save
service iptables restart

十 启动openvpn

systemctl -f enable [email protected]      #设置启动文件
systemctl start [email protected]          #启动openvpn的命令

 如果启动出错,可以查看tail -f /var/log/messages  /etc/openvpn/openvpn.log 查看出错信息。有可能会报这个错:Starting OpenVPN Robust And Highly Flexible Tunneling Application On server.解决办法:https://blog.csdn.net/w470543882/article/details/51502877

十一 客户端连接

  首先下载客户端,创建客户端配置文件

client
remote 45.76.177.41 1194
dev tun
proto udp
comp-lzo
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
route-delay 2
route-method exe
redirect-gateway def1
script-security 2
verb 3

 然后把 第六步整理的客户端相关签名文件放到客户端的相应的配置文件目录下,然后右键连接,变为绿色时连接成功

And the end  you can do anything with google .

十二  注意事项

  最后提醒一下,不要利用这个做一些违反国家规定和损坏国家名誉的事,小心被 GFW(防火长城)给墙了,那你就悲剧了,花钱买的vps就废了,现在很多后是年付的,国外的还好,相对便宜一点,国内的说实话有点贵,如果被封了,钱就浪费了。

猜你喜欢

转载自blog.csdn.net/D_Guco/article/details/81606110