Ogólnoustrojowe wyszukiwania DNS w tunelu SSH

2

IT ma zablokowane laboratorium, więc nie mogę aktualizować apt-get ani instalować żadnych pakietów na maszynie Ubuntu. Mamy pulpit RDP systemu Windows, który ma ograniczony dostęp do Internetu. Mam serwer SSH działający w polu Windows i mogę tunelować SSH do niego z komputera Ubuntu za pomocą następującego

ssh -CND localhost:1080 me@windowsbox

Problem polega na tym, że nadal nie mogę rozwiązać żadnego DNS z komputera Ubuntu. Więc chciałbym również skonfigurować DNS, aby przechodził przez tunel SSH. I tak, widziałem wiele innych postów na temat konfiguracji firefoxa lub jakiejkolwiek przeglądarki, aby to zrobić, ale nie ma to zastosowania tutaj. Szukam DNS na poziomie systemu lub przynajmniej zdolność apt-get do resolv przez tunel.

Dzięki

omencat
źródło
Ile masz kontroli nad skrzynką Ubuntu?
Paul
Cześć Paul, root na polu ubuntu. Jestem także administratorem domeny, ale nie mam kontroli nad regułami zapory sieciowej Cisco.
omencat
będziesz musiał przekierować pakiety dla TCP i UDP 53 do tunelu. DNS jest jedną z najtrudniejszych rzeczy, aby dostać się do proxy (co powoduje, że podstawa TOR jest trochę dokuczliwa), ponieważ tak wiele aplikacji wykonuje niezależne zapytania zamiast polegać na API systemu dla tego zadania. prawdopodobnie możesz przesłać go przez IPTables.
Frank Thomas
Możesz to zrobić za pomocą netcat i fifo, jeśli masz linux na obu końcach, ale musiałbyś zostać dostosowany do korzystania z Windows - nie jestem pewien, co equivilent do fifo jest w Windows: qcnetwork.com/vince/doc/divers/udp_over_ssh_tunnel.html
Paul
Ach, oba interesujące rozwiązania. Chciałbym wypróbować metodę iptables. Zespół ds. Bezpieczeństwa udostępnił IP DNS, ale teraz wprowadza własne certyfikaty SSL! To zadziała dla mnie, ale dla przyszłych wyszukiwarki Google dwa powyższe rozwiązania wyglądają tak, jakby mogły to zrobić.
omencat

Odpowiedzi:

1

Masz pełną kontrolę nad klientem, to dobrze. Nie wspominasz, ile masz kontroli nad serwerem SSH. Jeśli kontrolujesz stronę serwera, możesz uruchomić serwer proxy UDP-TCP na kliencie, jak wskazano tutaj :

socat -T15 udp4-recvfrom:53,reuseaddr,fork tcp:localhost:5353

Następnie przekieruj połączenie TCP przez SSH na serwer, na którym uruchamiasz demona TCP-to-UDP:

socat tcp4-listen:5353,reuseaddr,fork UDP:nameserver:53

jest SSHuttle (np. wspomniane tutaj ). Istnieje łatka do łatwego przekazywania zapytań DNS.

YMMV, ale Odniosłem sukces z następującymi :

#!/bin/bash
# Taken from http://stackoverflow.com/questions/4594319/shell-replace-cr-lf-by-comma
DNSSERVERS=$(nmcli d show | grep DNS | awk '{print $2}' | sed -e 'H;${x;s/\n/,/g;s/^,//;p;};d' )
sshuttle  \
    -vvv                \
     --dns-hosts ${DNSSERVERS}   \
    -r server   \
    254.254.254.254/32
Frederick Nord
źródło