一
环境centos7和mac
1 实现登陆openvpn才能连接到jumpserver)
安装openvpn
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
添加权限
chmod +x openvpn-install.sh
执行
./openvpn-install.sh
2
启动后一直回车 > 选择到dns时使用 https://ip.cn/dns.html
选择阿里dns 阿里AliDNS 223.5.5.5 223.6.6.6
创建用户 > 登陆钥匙在/root 目录下
3
openvpn的端口是1194需要与本地电脑的ip进行交互 安全组打开端口 1194
3
安装 mac客户端 https://tunnelblick.en.softonic.com/mac/download
4
安装完毕后直接把登陆钥匙拖框里进去即可 连接>看到success字样连接成功
5
访问jumpserver直接使用openvpn虚拟ip访问即可 例如 http://10.8.0.1:80
6
如果tunnelblick有中途经常断开openvpn 点击>选项>高级>已连接时>看到当改变其他时中的搜索域>设置成忽略
二
jumpserver资产创建的时候可以使用内网连接,不同vpc网络的下如何实现用内网ip连接服务器呢?很简单!
1 在另一个vpc的网段的某一台服务器下安装一个openvpn的客户端 linux版本
yum install epel-release -y
yum -y install openvpn
备注 :需要在服务端生成一个密钥给服务器使用 .ovpn文件在服务端里生成
cd /etc/openvpn/client
nohup openvpn --config jx-client-xxx.ovpn > nohup.out 2>&1 &
安装成功后查看ip a 看到一个虚拟网卡 为tun0的即可 ping一下是否能通服务器的openvpn虚拟网卡
网卡信息---- ip a | grep tun0
tun0:
link/none
inet 10.8.0.7/24 brd 10.8.0.255 scope global tun0
2 ping一下gatway的网卡发现ping成功了 那么我们就已经在同一个openvpn网络上了 但是这样只能使用内网连接一部服务器,而我们需要的是把这个vpc下的服务器所有都使用内网,一个一个的去安装客户端不实用,这时需要使用到firewall-cmd 端口转发到其他内网的机器为22 ssh端口即可
3 启动
systemctl start firewall
4
开启伪装IP
firewall-cmd --permanent --add-masquerade
5
默认情况下 firewalld 会禁止转发流量,可以执行 firewall-cmd --query-masquerade 查看状态,如果是 no,可执行下面的命令开启转发
firewall-cmd --add-masquerade --permanent
6
开启端口转发
firewall-cmd --permanent --add-forward-port=port=7001:proto=tcp:toaddr=其他机器的内网ip:toport=22
7
刷新
firewall-cmd --reload
8
查看端口转发的列表
firewall-cmd --list-forward-ports
10
配置成功后使用jumpserver根据openvpn虚拟网卡的ip和设置的端口转发的端口配置
在jumpserver服务器测试 ssh root@10.8.0.7 -p 7001 没问题可以在jumpserver添加资产啦~
端口未成功转发有可能是
cat /proc/sys/net/ipv4/ip_forward 需要为1
返回为 1 已开启,返回 0 则需要手动开一下
重要!
Openvpn 客户端 路由配置
openvpn的线路,这就需要自定义路由了
开启openvpn后不想所有流量都走openvpn的话可以在客户端配置
编辑 vi 密钥.ovpn
添加 route-nopull 参数即可 建议添加
Openvpn 路由 配置
主要由 route-nopull、vpn_gateway、net_gateway 三个参数决定
route-nopull
当客户端加入这个参数后,openvpn 连接后不会添加路由,也就是不会有任何网络请求走 openvpn.
vpn_gateway
当客户端加入 route-nopull 后,所有出去的访问都不从 Openvpn 出去,但可通过添加 vpn_gateway 参数使部分IP访问走 Openvpn 出去
route 192.168.1.0 255.255.0.0 vpn_gateway
route 172.121.0.0 255.255.0.0 vpn_gateway
net_gateway
这个参数和 vpn_gateway 相反,表示在默认出去的访问全部走 Openvpn 时,强行指定部分IP访问不通过 Openvpn 出去. max-routes 参数表示可以添加路由的条数,默认只允许添加100条路由,如果少于100条路由可不加这个参数.
max-routes 1000
route 172.121.0.0 255.255.0.0 net_gateway
比较常用做法是在客户端配置文件中加上 route-nopull 再使用 vpn-gateway 逐条添加需要走 Openvpn 的 ip
设置如下:
route-nopull
route 172.16.0.0 255.255.0.0 vpn_gateway
route 172.17.0.0 255.255.0.0 vpn_gateway
三
我们在openvpn的当中,客户端和客户端之间无法ping通,其实这是openvpn的机制默认是不允许客户端之间互通的,这也是为了安全 如果需要openvpn客户端和客户端之间互联可以这样
1
在openvpn服务器端server.conf配置中添加
client-to-client
openvpn 运维命令
systemctl restart/start openvpn-server@server.service