Execute o comando sudo ifconfig
. Ele deve retornar uma lista de conexões, uma delas será algo como tun0
, que é o seu túnel VPN.
No bloco tun0
, haverá um inet addr xxx.xxx.xxx.xxx
.
Pegue esse inet addr
e adicione-o ou edite o arquivo .rtorrent.rc
(que provavelmente está no diretório /home
) de forma que ele leia:
bind = xxx.xxx.xxx.xxx
(Obviamente você irá preencher números, não xxx.xxx.xxx.xxx
).
É tedioso fazer isso toda vez que você se conecta, mas desmascarar o seu IP real é um problema real se a sua VPN expirar e você for chutado para o seu IP real enquanto o seu rtorrent ainda estiver rodando.
Estou escrevendo um script para fazer isso de forma automagicamente toda vez que eu inicializo. Se funcionar, vou tentar voltar e postar.
como prometido aqui é um script para fazer isso por você. não é prático executá-lo na inicialização, a menos que você esteja iniciando o vpn na inicialização, portanto, você deve executá-lo manualmente como root ou com sudo no diretório onde o .rtorrent.rc está após iniciar a vpn e antes de iniciar o rtorrent.
desculpe postar algo que precise de privilégios de root, nunca execute nada de um fórum pedindo root, a menos que você o revise por segurança.
O script
analisará a saída do ifconfig procurando pelo endereço IP associado à string 'tun' e a escreverá como uma instrução de ligação na última linha do seu arquivo .rtorrent.rc.
enquanto isso, primeiro cria um diretório chamado .svrtvpn, onde armazena até dez backups do arquivo .rtorrent.rc existente, depois apaga todas as outras instruções de ligação do seu arquivo .rtorrent.rc e grava o endereço IP da VPN detectado para ligar como a última linha no seu arquivo .rtorrent.rc
im super preguiçoso, então foi mais fácil reservar um tempo para escrever o script e apenas chamar mais rápido do que levar dez segundos extras para detectar e gravar manualmente o bind toda vez que eu executo uma vpn.
#! / bin / bash
#svrtvpn.sh ver 0.3 "shadowvision rtorrent vpn" 01-05-2016 @ shadowvision.com/org
#a simple script to set your .rtorrent.rc bind to the ip address your vpn is using so that if your vpn gets disconnected, rtorrent will stop and you wont be unmasked
#WARNING WARNING WARNING WARNING under some circumstances it erases parts or even the entire .rtorrent file, but it makes a backup first so namaste :)
#this seems to happen if there arent any bind addresses to start with so the script will append a bogus one before it does anything else.
#syntax before starting rtorrent, run as root from the directory where your .rtorrent.rc is, follow the prompt and enter your linux user name that you will be running rtorrent as.
#provide help
if [ "$1" = "help" ]; then
echo " use: before starting rtorrent, run as root from the directory where your .rtorrent.rc is."
echo " script is dependent on ifconfig returning the vpn connection as 'tun'. if that isnt what your connection is called you will have to manually change it inside the script"
echo " svrtvpn.sh saves your existing .rtorrent.rc file in a directory called .svrtvpn with the extension of the epoch time in seconds. the last ten backups are saved."
echo " if you use this script, the bind = address will always be the last line of your .rtorrent.rc file"
echo " svrtvpn.sh ver 0.3 "shadowvision rtorrent vpn" 01-05-2016 @ shadowvision.com/org"
echo " a simple script to set your .rtorrent.rc bind to the ip address your vpn is using so that if your vpn gets disconnected, rtorrent will stop and you wont be unmasked"
echo " shadowvision makes no claims as to the usability of this script on your system, it was tested on kali linux with network manager and PIA 'private internet access'"
exit
fi
#first check to see if you have a .rtorrent.rc file. if you dont it tells you so and exits.
RTORRENTFILE=./.rtorrent.rc
if [ ! -f "$RTORRENTFILE" ]; then
echo "You dont have .rtorrent.rc in this directory, script will now exit!"
exit
fi
# set your backup directory variable
SVDIR=.svrtvpn
#tell the user its using a backup directory
if [ -d "$SVDIR" ]; then
echo "using existing $SVDIR directory for backups. your your last ten backups will be saved here."
#now make your .svrtvpn directory where your backups are stored if it doesnt already exist
else
mkdir -p $SVDIR
echo "created a directory called $SVDIR, your last ten .rtorrent.rc backups are stored here."
fi
#first find out what user you are running as, the script sets the ownership of .rtorrent.rc to this user at the end
SVUSER=$(ls -ld .rtorrent.rc | awk '{print $3}')
echo "your .rtorrent.rc file is owned by $SVUSER , it should remain read/write by that user and read for everyone else at the end of this script."
#copy your .rtorrent.rc to a backup file with the seconds of epoch time as the extension.
cp .rtorrent.rc ./$SVDIR/.rtorrent.rc.$(date +"%s")
#append a bogus ip bind so that the script wont erase your entire file
echo "bind = 999.999.999.999" >> .rtorrent.rc
#find out what your current vpn ip is, and if you dont have one, exit. as long as you didnt previously have a valid ip entered rtorrent wont start.
if $( ifconfig |grep -q -A1 tun); then
VPNIP=$(ifconfig |grep -A1 tun |grep inet | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | head -1)
#find any bind addresses in the file so we can delete them
DELINE=$(cat .rtorrent.rc |grep bind | grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -v \# |grep -v \:)
#delete old bind addresses by tediously copying everything but found addresses to a temp file then back to the original file.
cat .rtorrent.rc |grep -v "$DELINE" > ./$SVDIR/.rtorrent.xx
cat ./$SVDIR/.rtorrent.xx > .rtorrent.rc
#add the vpn ip to the end of your file
echo "bind =" "$VPNIP" >> .rtorrent.rc
#make sure ownerships and read perms are sane
chown $SVUSER .rtorrent.rc
chmod u+rw .rtorrent.rc
chmod a+r .rtorrent.rc
chown -R $SVUSER $SVDIR
chmod -R a+r $SVDIR
#only save last ten backups, note the number is set to 13 because the three files . .. and .xx file arent backups
cd $SVDIR
ls -tra | head -n -13 | xargs --no-run-if-empty rm
cd -
else
#if you got to here it didnt work so set a bogus bind address so rtorrent wont start
VPNIP=999.999.999.999
#just like above find any old bind addresses so we can remove them
DELINE=$(cat .rtorrent.rc |grep bind | grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -v \# |grep -v \:)
cat .rtorrent.rc |grep -v "$DELINE" > ./$SVDIR/.rtorrent.xx
cat ./$SVDIR/.rtorrent.xx > .rtorrent.rc
#set the bogus address
echo "bind =" "$VPNIP" >> .rtorrent.rc
#reset sane perms
chown $SVUSER .rtorrent.rc
chmod u+rw .rtorrent.rc
chmod a+r .rtorrent.rc
chown -R $SVUSER $SVDIR
chmod -R a+r $SVDIR
#tell us what happened
echo "you are not connected to a vpn, this wont work"
echo "your bind address has been set to 999.999.999.999"
fi