Eu não consegui esse script funcionar corretamente, então mudei para um namespacess de rede separado, que funcionava exatamente do jeito que eu queria. OpenVPN para um único aplicativo no Linux
Oi todos im seguindo este scripts aqui dilúvio-vpn o script falha na mensagem de roteamento abaixo, quando é chamado por openvpn. Se eu começar o openvpn sem o script up e executar o script separadamente ele rodará bem. Desculpe se eu não o defini corretamente, mas qualquer ajuda seria de grande ajuda.
heres o erro
/etc/openvpn/link_up_user_filter.sh
Device "tun0" does not exist.
Error: an inet address is expected rather than "table".
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
sysctl: cannot stat /proc/sys/net/ipv4/conf/tun0/rp_filter: No such file or directory
aqui estão os resultados da execução correta
Nov 17 16:16:46 hp-server openvpn[48795]: /usr/sbin/ip link set dev tun0 up mtu 1500
Nov 17 16:16:46 hp-server openvpn[48795]: /usr/sbin/ip addr add dev tun0 10.4.1.252/16 broadcast 10.4.255.255
Nov 17 16:16:51 hp-server openvpn[48795]: /usr/sbin/ip route add 213.152.161.116/32 via 192.168.1.254
Nov 17 16:16:51 hp-server openvpn[48795]: /usr/sbin/ip route add 0.0.0.0/1 via 10.4.0.1
Nov 17 16:16:51 hp-server openvpn[48795]: /usr/sbin/ip route add 128.0.0.0/1 via 10.4.0.1
Nov 17 16:16:51 hp-server openvpn[48795]: Initialization Sequence Completed
Aqui está o script:
#!/usr/bin/env bash
SRC_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "$SRC_DIR" ]]; then SRC_DIR="$PWD"; fi
source "$SRC_DIR/vpn_base.sh"
VPN_IP='get_nic_ip $VPNIF'
# Remove old table
ip route flush table $TABLE_ID
# Add rule to use TABLE_ID for marked packets
if [[ 'ip rule list | grep -c $MARK_ID' == 0 ]]; then
ip rule add from all fwmark $MARK_ID lookup $TABLE_ID
fi
ip route replace default via $VPN_IP table $TABLE_ID
ip route append default via 127.0.0.1 dev lo table $TABLE_ID
ip route flush cache
# Set reverse path source validation to lose mode
sysctl -w net.ipv4.conf.all.rp_filter=2
sysctl -w net.ipv4.conf.default.rp_filter=2
sysctl -w net.ipv4.conf.$VPNIF.rp_filter=2
openvpn.conf conforme solicitado
client
dev tun
proto udp
remote *.*.*.* *
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
comp-lzo no
route-delay 5
verb 3
explicit-exit-notify 5
script-security 2
#up and down scripts to be executed when VPN starts or stops
up /etc/openvpn/link_up_user_filter.sh
Eu não consegui esse script funcionar corretamente, então mudei para um namespacess de rede separado, que funcionava exatamente do jeito que eu queria. OpenVPN para um único aplicativo no Linux
Tags networking vpn openvpn routing linux