Eu gostaria de encapsular o tráfego no meu servidor por meio de uma VPN.
O problema é que quando eu ativo a VPN através do openVpn perco a conexão ao servidor através do SSH e tenho que reiniciar o servidor através de um hard reboot.
Existe uma maneira de rotear todo o tráfego através da VPN, exceto o SSH?
Id também gostaria que isso fosse temporário, o que significa que eu gostaria de desativá-lo e deixar o tráfego passar pelos canais normais.
Eu já tentei a solução publicada aqui link mas não funcionou.
Informações adicionais:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 XXX.XXX.XXX.XXX 0.0.0.0 UG 100 0 0 eth0
XXX.XXX.XXX.XXX 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Eu fico bloqueado diretamente ao iniciar o OpenVPN. Além disso, meu servidor deve ser executado como um cliente, roteando todo o tráfego através de outro servidor.
EDITAR:
Eu segui a explicação aqui Anonimizando o OpenVPN Permitir Acesso SSH ao servidor interno .
Agora estou correndo
openvpn --config USVPN.ovpn --script-security 3 system --up /home/user/startVPNScript.sh
com o startVPNScript.sh contendo
ip rule add fwmark 65 table novpn
sudo ip route add default via XXX.XXX.XXX.XXX dev eth0 table novpn
ip route flush cache
iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 65
Eu também executei isto:
echo "201 novpn" >> /etc/iproute2/rt_tables
e é permanente.
Mas depois de executar o comando openVPN, continuo bloqueado e tenho que fazer uma reinicialização Hard através do ControlPanel do ServerProvider.
EDIT2
Aqui estão minhas regras de roteamento e firewall antes de iniciar a VPN (tudo está vazio para testá-la)
#novpn route table
default via DEFAULT.GATEWAY dev eth0
#normal route table
default DEFAULT.GATEWAY dev eth0 metric 100
XXX.XXX.XXX.XXX/24 dev eth0 proto kernel scope link src XXX.XXX.XXX.YYY
#iptable mangle
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
MARK tcp -- anywhere anywhere tcp spt:ssh MARK set 0x41
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
#iptable main
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Aqui estão as regras após a conexão do OpenVPN ter sido estabelecida:
#novpn route table
default via DEFAULT.GATEWAY dev eth0
#normal route table
0.0.0.0/1 via 10.165.1.5 dev tun0
default via DEFAULT.GATEWAY dev eth0 metric 100
10.165.1.1 via 10.165.1.5 dev tun0
10.165.1.5 dev tun0 proto kernel scope link src 10.165.1.6
108.61.13.43 via DEFAULT.GATEWAY dev eth0
128.0.0.0/1 via 10.165.1.5 dev tun0
XXX.XXX.XXX.XXX/24 dev eth0 proto kernel scope link src XXX.XXX.XXX.YYY
#iptable mangle
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
MARK tcp -- anywhere anywhere tcp spt:ssh MARK set 0x41
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
#iptable main
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination