Chcę skonfigurować mój system OSX tak, aby cały ruch sieciowy był przesyłany przez tunel SSH.
W tym celu napisałem mały skrypt, a są nim następujące polecenia:
// setup tunnel
ssh -fN -D 1080 -p 22 user@remote
// start up redsocks
sudo redsocks -c /tmp/redsocks.conf -p /tmp/redsocks.pid
// forward all tcp traffic to tunnel
sudo ipfw add 0010 fwd 127.0.0.1,12345 tcp from me to any not dst-port 12345 not dst-port 1080 not dst-ip REMOTE_IP
Używam redsocks, aby utworzyć serwer proxy HTTP do mojego tunelu ssh (aby móc przekazać cały ruch TCP do niego przez ipfw), redsocks.conf wygląda następująco:
base {
log_debug = on;
log_info = on;
log = "file:/tmp/redsocks.log";
redirector = generic;
}
redsocks {
local_ip = 127.0.0.1;
local_port = 55660;
ip = 127.0.0.1;
port = 1080;
type = socks4;
}
Wydaje się, że wszystko działa do tej pory, cały ruch TCP w moim systemie OSX odbywa się przez tunel ssh, ale problem dotyczy ruchu UDP i z tego powodu zapytania DNS nie działają.
Jak mogę uzyskać DNS na mojej lokalnej maszynie do pracy przez tunel SSH?