Sua abordagem básica seria configurar um proxy SOCKS por meio de um túnel SSH. Para que funcione corretamente, você precisaria usar um serviço para descobrir e atualizar o IP externo da sua casa, há uma série de serviços gratuitos e pagos que fornecem isso.
Um script que eu uso para isso é:
#!/usr/bin/env bash
SSH_HOST="me@myhomeIP -p XXX -i $HOME/.ssh/mykey"
up(){
ssh -f -N -D 8080 -M -S /tmp/ssh_tunnel_%h.sock -o ExitOnForwardFailure=yes $SSH_HOST && \
printf '%s\n' "ssh tunnel started successfully" || \
printf '%s\n' "ssh tunnel failed to start"
}
down(){
ssh -S /tmp/ssh_tunnel_%h.sock -O exit $SSH_HOST
}
if [[ "$1" = "up" ]]; then
up && chromium --proxy-server="socks://127.0.0.1:8080" &
elif [[ "$1" = "down" ]]; then
down
else
printf '%s\n' "Tunnel is not running…"
fi
A primeira função, up
, configura o túnel SSH e, depois de executar, o Chromium é iniciado com a opção de usar o encapsulamento como proxy.
Você pode configurar o Firefox para se conectar ao túnel, se preferir usá-lo. Não tenho ideia sobre o IE.