赞
踩
vpn咋就不能成为标题了,现在企业必备的技能不能用了?
1.1 登录root账户
su root
1.2 下载一键部署脚本
git clone https://github.com/guoew/openvpn-install.git
1.3 运行脚本
cd openvpn-install && bash openvpn-install.sh
IP address: 106.75.XX.XXX #公网IP地址
Protocol [1-2]: 1 #采用UDP协议
Port: 1194 #默认1194端口,我自己修改成了6666端口
DNS [1-5]: 1 #默认就可以
Client name: client #客户端配置文件名称默认就可以
在openvpn目录下的userfile.sh中添加用户名和口令,以空格隔开
cat /etc/openvpn/userfile.sh
username password
3.1 将客户端配置文件 /root/client.ovpn,下载到本地以备客户端使用
3.2 安装openvpn客户端
客户端下载地址:https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.0-I602.exe
3.3 配置客户端
将安装好的客户端打开,点击Import file 把准备好的客户端配置文件(client.ovpn)导入进去。
3.4 连接openvpn服务器
打开客户端,点击Connect,使用服务器端已添加的账号登录
在本地client.ovpn文件中添加如下4行配置
# setenv opt block-outside-dns #注释该行
# ignore-unknown-option block-outside-dns #注释该行
# block-outside-dns #注释该行,本条意思是阻止使用外部DNS
route-nopull #关闭server自动推送路由
5.1 cat /etc/openvpn/server/server.conf
local x.x.x.x #监听本机ip地址 port 1194 #监控本机端口号 proto udp #指定采用的传输协议 dev tun #指定创建的通信隧道类型,可选tun或tap,window服务器必须是tap ;server-bridge XXXXXX #使用tap模式的时候考虑此选项。 ca /etc/openvpn/certs/ca.crt #指定CA证书的文件路径 cert /etc/openvpn/certs/server.crt #指定服务器端的证书文件路径 key /etc/openvpn/certs/server.key #指定服务器端的私钥文件路径 dh /etc/openvpn/certs/dh.pem #指定迪菲赫尔曼参数的文件路径 server 10.8.0.0 255.255.255.0 #指定虚拟局域网占用的IP地址段和子网掩码,不能和服务器eth0同网段 ifconfig-pool-persist ipp.txt #服务器自动给客户端分配IP后,客户端下次连接时,仍然采用上次的IP地址(第一次 分配的IP保存在ipp.txt中)。 ;push "redirect-gateway def1 bypass-dhcp" #自动推送客户端上的网关及DHCP,此项开启了流量转发,有这项才能使用服务器代理 ;push "dhcp-option DNS 114.114.114.114" #OpenVPN的DHCP功能为客户端提供指定的 DNS、WINS 等 ;push "route 10.0.10.0 255.255.255.0" #vpn服务端向客户端推送vpn服务端内网网段的路由配置,以便让客户端能够找到服务端内网。多条路由就写多个Push指令 ;push "route 192.168.10.0 255.255.255.0" #vpn服务端向客户端推送vpn服务端内网网段的路由配置,以便让客户端能够找到服务端内网。多条路由就写多个Push指令 ;client-to-client #允许客户端与客户端相连接,默认情况下客户端只能与服务器相连接 ;duplicate-cn #允许同一个客户端证书多次登录,默认是注释的,不支持多个客户登录一个账号 keepalive 10 120 #每10秒ping一次,120秒后没收到ping就说明对方挂了 tls-auth /etc/openvpn/certs/ta.key 0 #开启TLS-auth,使用ta.key防御攻击。服务器端的第二个参数值为0,客户端的为1。 cipher AES-256-GCM #加密认证算法,2.4之前是AES-256-CBC,v2.4客户端/服务器将在TLS模式下自动协商AES-256-GCM。 push "compress lz4-v2" #openvpn 2.4版本的vpn才能设置此选项。表示服务端启用lz4的压缩功能,传输数据给客户端时会压缩数据包。 ;comp-lzo #如果是2.4版本以下的老版本,则使用用comp-lzo指令,如果服务端配置了该指令,客户端也必须要配置 max-clients 100 #并发客户端的连接数 user openvpn #定义运行的用户和组,openvpn用户是安装的时候系统自动创建的 group openvpn #定义运行的用户和组,openvpn用户是安装的时候系统自动创建的 persist-key #通过ping得知超时时,当重启vpn后将使用同一个密钥文件以及保持tun连接状态 persist-tun #通过ping得知超时时,当重启vpn后将使用同一个密钥文件以及保持tun连接状态 status /var/log/openvpn-status.log #输出短日志,每分钟刷新一次,以显示当前的客户端,在文件中输出当前的连接信息,每分钟截断并重写一次该文件 ;log /etc/openvpn/log/openvpn.log #默认vpn的日志会记录到rsyslog中,log指令表示每次启动vpn时覆盖式记录到指定日志文件中 ;log-append /etc/openvpn/log/openvpn.log #默认vpn的日志会记录到rsyslog中,og-append则表示每次启动vpn时追加式的记录到指定日志中,但两者只能选其一。 verb 3 #指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细 mute 20 #相同信息的数量,如果连续出现 20 条相同的信息,将不记录到日志中 ;explicit-exit-notify 1 #这项仅udp连接可用,当服务器重新启动时,通知客户端,以便它可以自动重新连接。 tls-version-min 1.3 #设置tls最低版本为1.3,连接的客户端如果是2.4以下则配置为1.0 resolv-retry infinite #自动重连
5.2 服务器配置
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf #配置系统转发,需要代理shangwang的必须配置 sysctl -p #配置立即生效 systemctl stop firewalld #关闭firewall systemctl disable firewalld #关闭firewall systemctl enable iptables #启动iptables systemctl start iptables #启动iptables iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE #配置iptables转发流量,代理主要以iptables转发实现 iptables -I INPUT -p tcp --dport 1194 -j ACCEPT #允许tcp/udp 1194通过防火墙 iptables -I INPUT -p udp --dport 1194 -j ACCEPT #允许tcp/udp 1194通过防火墙 service iptables save #保存规则并重启 systemctl restart iptables #重启iptables systemctl enable openvpn@server #设置openvpn开机启动 systemctl start openvpn@server #启动openvpn netstat -lntp|grep openvpn #查看端口和进程是否启动成功, ps -aux|grep openvpn #显示所有用户的进程和用户
5.3 OpenvVPN路由控制
1、route-nopull
如果在客户端配置文件中配route-nopull,openvpn连接后将不会在电脑上添加任何路由,所有流量都将本地转发。
route-nopull
2、vpn_gateway
如果在客户端配置文件中配vpn_getaway,默认访问网络不走vpn隧道,如果可以通过添加该参数,下发路由,访问目的网络匹配到会自动进入VPN隧道。
route 10.0.0.0 255.255.255.0 vpn_gateway
route 172.16.0.0 255.255.255.0 vpn_gateway
3、net_gateway
这个参数和 vpn_gateway 相反,表示在默认出去的访问全部走 openvpn 时,强行指定部分IP地址段访问不通过 Openvpn 出去。
max-routes 参数表示可以添加路由的条数,默认只允许添加100条路由,如果少于100条路由可不加这个参数。
max-routes 1000
route 10.100.0.0 255.255.255.0 net_gateway
5.4 Openvpn开机自动启动-自动连接
1、打开 client.ovpn文件在最后加入
auth-user-pass pass.txt
在同级文件夹下新建pass.txt文件,第一行写用户名,第二行写密码。
例如:
zhangxueyou
123456
2、在注册表(在windows运行输入regedit)中加入下面的项用来自动启动和自动连接
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
新建“字符串值”数值如下:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect client.ovpn
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。