ToB企服应用市场:ToB评测及商务社交产业平台

标题: openvpn设置实现服务器代理上网 [打印本页]

作者: 乌市泽哥    时间: 2024-6-28 21:17
标题: openvpn设置实现服务器代理上网

1.概述
OpenVPN是一个开源的虚拟专用网络(VPN)软件,可以用于在不安全的网络(如互联网)上为用户提供安全的网络连接。它利用加密的数据通道来确保数据的安全性,并可以通过多种方式来构建虚拟网络,包罗利用TCP或UDP协议,利用安全套接字层(SSL)或传输层安全(TLS)加密数据通道,大概利用混合模式,即同时利用多种方式。
OpenVPN可以在多种平台上运行,包罗Windows、MacOS、Linux、Android和iOS等。它可以与多种路由器和网络装备集成,并提供了丰富的设置选项,利用者可以根据自己的必要来自界说设置。
支持多种加密算法:OpenVPN支持利用多种加密算法来保护数据的安全性,包罗AES、Blowfish、CAST-128、DES、3DES、RC5和IDEA等。
支持多种协议:OpenVPN可以利用TCP或UDP协议来建立虚拟网络,而且支持利用SSL或TLS来加密数据通道。
2.应用场景
2.1总部与分支机构之间联通,打通分支与总部的连接
2.2 通过VPN远程连接到公司的服务器,企业员工远程办公,访问公司内网的ERP、OA等系统。
3. 环境搭建
本篇文章以centos为例演示怎样搭建并利用openvpn。
3.1环境准备
3.1.1安装 easy-rsa、iptables-service
  1. yum -y install easy-rsa iptables-service
复制代码
3.1.2 设置系统转发,并使设置立刻生效
  1. echo net.ipv4.ip_forward=1 >> /etc/sysctl.confsysctl -p
复制代码
3.1.2 关闭firewall​​​​​​​
  1. systemctl stop firewalldsystemctl disable firewalld
复制代码
3.1.3启动iptables​​​​​​​
  1. systemctl enable iptablessystemctl start iptables
复制代码
3.1.4 设置iptables转发流量,代理主要以iptables转发实现
  1. iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
复制代码
3.1.5 允许tcp/udp 1194通过防火墙​​​​​​​
  1. iptables -I INPUT -p tcp –dport 1194 -j ACCEPTiptables -I INPUT -p udp –dport 1194 -j ACCEPT
复制代码
3.1.6 保存规则并重启​​​​​​​
  1. service iptables savesystemctl restart iptables
复制代码
3.2 服务端环境搭建
3.2.1 安装openvpn
  1. yum -y install openvpn
复制代码
3.2.2 天生服务器端证书
查看easy-rs安装路径
  1. rpm -ql easy-rsa
复制代码
复制easy-rsa到/etc/openvpn目录
  1. cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa
复制代码
复制easy-rsa设置文件到/etc/openvpn/easy-rsa/3.0.8目录,并重定名为vars
  1. cp -r /usr/share/doc/easy-rsa/vars.example /etc/openvpn/easy-rsa/3.0.8/vars
复制代码
查看/etc/openvpn目录布局
  1. tree /etc/openvpn
复制代码
修改证书设置文件vars,其他的默认即可,主要是修改个人信息,也可以不改
  1. vim /etc/openvpn/easy-rsa/3.0.8/vars
复制代码
修改内容如下​​​​​​​
  1. set_var EASYRSA_REQ_COUNTRY "CN"set_var EASYRSA_REQ_PROVINCE "SD"set_var EASYRSA_REQ_CITY "JN"set_var EASYRSA_REQ_ORG "SY"set_var EASYRSA_REQ_EMAIL "sywl@sywl123.com"set_var EASYRSA_REQ_OU "tpc"
复制代码
初始化​​​​​​​
  1. cd /etc/openvpn/easy-rsa/3.0.8./easyrsa init-pki
复制代码
为方便安装测试,这里利用onpass参数选择不要密码创建根证书
  1. ./easyrsa build-ca nopass
复制代码
创建server端证书、私钥文件
  1. ./easyrsa gen-req server nopass
复制代码
给server端证书签名,提示confirm request details:时,输入yes
  1. ./easyrsa sign server server
复制代码
创建dh文件(秘钥交换算法)
  1. ./easyrsa gen-dh
复制代码
创建tls认证秘钥
  1. openvpn –genkey –secret ta.key
复制代码
查看当前天生的文件目录布局
  1. tree pki
复制代码
拷贝证书文件到openvpn目录下
  1. mkdir /etc/openvpn/certscp ./pki/ca.crt /etc/openvpn/certs/cp ./pki/dh.pem /etc/openvpn/certs/cp ./pki/issued/server.crt /etc/openvpn/certscp ./pki/private/server.key /etc/openvpn/certscp ta.key /etc/openvpn/certs
复制代码
3.2.3 创建server设置文件
复制设置模板文件server.conf到/etc/openvpn/
  1. cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/
复制代码
修改server.conf设置文件​​​​​​​
  1. cd /etc/openvpnvim server.conf
复制代码
内容如下:​​​​​​​
  1. #监听本机ip地址local 0.0.0.0(这里填本机地址)#监控本机端口号port 1194#指定采用的传输协议,可以选择tcp或udpproto tcp#指定创建的通信隧道类型,可选tun或tap,window服务器必须是tapdev tun#指CA证书的文件路径ca /etc/openvpn/certs/ca.crt#指定服务器端的证书文件路径cert /etc/openvpn/certs/server.crt#指定服务器端的私钥文件路径key /etc/openvpn/certs/server.keydh /etc/openvpn/certs/dh.pem#指定虚拟局域网占用的IP地址段和子网掩码,不能和服务器eth0同网段server 10.8.0.0 255.255.255.0#服务器自动给客户端分配IP后,客户端下次连接时,仍然采用上次的IP地址(第一次 分配的IP保存在ipp.txt中,下一次分配其中保存的IP)。ifconfig-pool-persist ipp.txt#自动推送客户端上的网关及DHCP,此项开启了流量转发,有这项才能使用服务器代理上 网push "redirect-gateway def1 bypass-dhcp"#OpenVPN的DHCP功能为客户端提供指定的 DNS、WINS 等push "dhcp-option DNS 114.114.114.114"#允许客户端与客户端相连接,默认情况下客户端只能与服务器相连接client-to-client#允许同一个客户端证书多次登录,看需配置#duplicate-cn#每10秒ping一次,连接超时时间设为120秒keepalive 10 120#开启TLS-auth,使用ta.key防御攻击。服务器端的第二个参数值为0,客户端的为1。tls-auth /etc/openvpn/certs/ta.key 0#加密认证算法,2.4之前是AES-256-CBCcipher AES-256-GCM#使用lzo压缩的通讯,服务端和客户端都必须配置comp-lzo#最大连接用户max-clients 100#定义运行的用户和组,openvpn用户是安装的时候系统自动创建的user openvpngroup openvpn#重启时仍保留一些状态persist-keypersist-tun#输出短日志,每分钟刷新一次,以显示当前的客户端status /var/log/openvpn-status.log#日志保存路径log /etc/openvpn/log/openvpn.loglog-append /etc/openvpn/log/openvpn.log#指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细verb 3#相同信息的数量,如果连续出现 20 条相同的信息,将不记录到日志中mute 20#下面这项只能udp连接开启#explicit-exit-notify 1#设置tls最低版本为1.3,连接的客户端如果是2.4以下则配置为1.0tls-version-min 1.3
复制代码

3.2.4 创建启动的服务脚本
创建unit文件
  1. vim /lib/systemd/system/openvpn@.service
复制代码
内容如下:​​​​​​​
  1. [Unit]Description=OpenVPN Robust And Highly Flexible Tunneling Application On %IAfter=network.target[Service]Type=notifyPrivateTmp=trueExecStart=/usr/sbin/openvpn –cd /etc/openvpn/ –config %i.conf[Install]WantedBy=multi-user.target
复制代码
设置openvpn开机启动
  1. systemctl enable openvpn@server
复制代码
启动openvpn
  1. systemctl start openvpn@server
复制代码
查看端口和进程是否启动乐成,
  1. netstat -lntp|grep openvpn
  2. ps -aux|grep openvpn
复制代码
3.3 客户端设置

3.3.1 下载windows客户端
https://openvpn.net/index.php/download/community-downloads.html
3.3.2 服务端天生并设置客户端证书信息
进入证书管理目录
  1. cd /etc/openvpn/easy-rsa/3.0.8
复制代码
天生客户端证书
  1. ./easyrsa gen-req client1 nopass
复制代码
注册客户端1的证书,输入yes
  1. ./easyrsa sign client client1
复制代码
将证书拷贝到一个目录存着​​​​​​​
  1. cp ./pki/issued/client1.crt /etc/openvpn/clientcp ./pki/private/client1.key /etc/openvpn/client
复制代码
3.3.3 本地电脑客户端设置
将client1.crt client1.key ta.key ca.crt四个文件下载到本地客户端目录的config目录下。
设置客户端设置文件,复制客户端sample-config目录下的client.ovpn文件到config目录下修改内容如下:
  1. #客户端client#隧道类型,与服务器一致dev tun#tcp还是udp,与服务器一致proto tcp#服务器ip和端口remote xxx.xxx.xxx.xxx 1194#自动重连resolv-retry infinite#不绑定本地特定的端口nobind#服务器重启后保持一些状态persist-keypersist-tun#客户端证书目录ca ca.crtcert client.crtkey client.key#远程证书验证remote-cert-tls server#tls握手秘钥,与服务器保持一致,服务器0,客户端1tls-auth ta.key 1#加密方式cipher AES-256-GCM开启数据压缩comp-lzo#日志级别verb 3#同信息的数量,如果连续出现 20 条相同的信息,将不记录到日志中mute 20#tls最低版本,与服务器保持一致tls-version-min 1.3#不保存密码auth-nocache#使客户端中所有流量经过VPN,所有网络连接都使用vpnredirect-gateway def1
复制代码
打开客户端,右键选项修改设置文件目录,双击连接服务器

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4