Provavelmente /etc/ppp/ip-up.d
é o local que você está procurando.
Meu exemplo é válido no Gentoo Linux, mas a mesma estrutura de diretórios parece existir no Arch.
Toda vez que uma conexão VPN é feita /etc/ppp/ip-up
é executado, o que normalmente executa /etc/ppp/ip-up.d/*
por vez. Seu primeiro argumento é o dispositivo pppn
anexado.
Coloque este script em /etc/ppp/ip-up.d/90-local
, por exemplo:
#!/bin/sh
# Optional trace:
# logger -t "ppp" "$6: $1 (${2:--}, $3) $4 --> $5"
iptables -A FORWARD -i $1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o $1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Você também pode usar as variáveis de ambiente pppd
conjuntos antes de executar scripts. Aquele que você está procurando é $DEVICE
. Simplesmente substitua $1
por $DEVICE
no script acima:
iptables -A FORWARD -i $DEVICE -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o $DEVICE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Veja man pppd
para mais informações sobre o que o pppd
faz ao estabelecer uma conexão.