licoded / self-study-drafts

buffer for records
0 stars 0 forks source link

Ubuntu命令行下连接Pulse Secure VPN(使用代理proxy管理) #17

Open licoded opened 2 years ago

licoded commented 2 years ago

最终效果

Ubuntu 命令行下,先挂上VPN,再通过 ssh 登录内网服务器

另外,在 ~/.ssh/vpn.sh 中实现了 VPN 即用即启,用完自动关闭

问题: 挂上 VPN 后 ssh 无法使用 原因: VPN "劫持" 了主机上的所有网络流量/请求 方案: 使用 ocproxy 使 OpenConnect 仅处理用户专门从代理请求的网络活动

创建配置文件

/etc/systemd/system/myVpn.service

[Unit]
Description=My Vpn Connection
After=network.target

[Service]
Type=simple
Environment=password=correcthorsebatterystaple
ExecStart=/bin/sh -c "echo <vpn-password> | sudo openconnect --protocol=pulse <vpn-host-url> --user=<vpn-username> --passwd-on-stdin --script-tun --script 'ocproxy -D 9052 -v'"

~/.ssh/vpn.sh

#!/bin/bash
sudo systemctl start myVpn
sleep 2

# kill connection on exit
function cleanup {
  sudo systemctl stop myVpn
}
trap cleanup EXIT

nc -X 5 -x 127.0.0.1:9052 $1 $2

~/.ssh/config

Host myserver
  User <server-user>
  ProxyCommand $HOME/.ssh/vpn.sh <server-url> 22

其他

赋予 ~/.ssh/vpn.sh 可执行权限

sudo chmod 777 ~/.ssh/vpn.sh
sudo chmod +x ~/.ssh/vpn.sh

openconnect 高版本安装

低版本 (<8.04) 默认不支持 pulse 协议

sudo add-apt-repository ppa:dwmw2/openconnect
sudo apt-get update
sudo apt install openconnect

ocproxy 安装

sudo apt install ocproxy

使用

ssh myserver

注意事项

敏感信息配置项(必需)

其他可配置项

参考链接

licoded commented 2 years ago

~/.ssh/vpn.sh 首行误写成 #!/bin/sh 导致出错

`~/.ssh/vpn.sh`** 首行误写成 `#!/bin/sh` 导致出错

原因:What is the difference between #!/bin/sh and #!/bin/bash?

What is the difference between #!/bin/sh and #!/bin/bash?