To work from home, we have to use a "svi" service, with dynamic changing password and ssh to a dedicated company server. It's a bit inconvenience at the beginning, until I found the power of ssh tunneling.
In short, if you have ssh connection, you may setup localforward and then your ssh server is working like a proxy to access the other network.
As we have proxy server to access company intranet, I can then setup my local proxy script to use the proxy if I need to access intranet, and no proxy to access other internet.
For example, my .ssh/config file.
Host svi0
HostName svi_server_name
User your_user_id
LocalForward 2001 internal_host_1:22
LocalForward 2002 internal_host_2:22
Host svi1
HostName localhost
Port 2001
User your_user_id
LocalForward 3128 proxy_server:3128
Host svi2
HostName localhost
Port 2001
User your_user_id
Host svi2
HostName localhost
Port 2002
User your_user_id
Then you can just do "ssh -f svi0 -N".
The tunnel is established.
Then "ssh svi1", you may login to internal_host_1 using your own password, instead of the one-time password.
The proxy script: myproxy.pac. You need to set your proxy manually in the browser.
function FindProxyForURL(url, host) {
if (isPlainHostName(host) ||
dnsDomainIs(host, "intranet_domain1") ||
dnsDomainIs(host, "intranet_domain2") ||
isInNet(host, "intranet_ip_addr", "255.255.255.255")) {
return "PROXY localhost:3128"; }
else
return "DIRECT";
}
In this case, I have a very similar Linux working environment at home as I have in company.