LINUX.ORG.RU
ФорумAdmin

DNS tunneling на Amazon EC2

 ,


0

1

Привет,

Кто-то поднимал DNS туннель на амазоновских микроинстансах?

Используя iodine, получаю bad handshake.

На сервере запускаю:

sudo iodined -f 192.168.254.1 tunnel.example.org
Enter password: 
Opened dns0
Setting IP of dns0 to 192.168.254.1
Setting MTU of dns0 to 1130
Opened UDP socket
Listening to dns for domain tunnel.example.org

На клиенте получаю:

iodine tunnel.example.org
Enter password: 
Opened dns0
Opened UDP socket
Sending DNS queries for tunnel.example.org to 8.8.8.8
Autodetecting DNS query type (use -T to override).
Using DNS type NULL queries
Version ok, both using protocol v 0x00000502. You are user #0
Received bad handshake
Retrying login...
Received bad handshake
Retrying login...
Received bad handshake
Retrying login...
Received bad handshake
Retrying login...
Received bad handshake
Retrying login...
iodine: couldn't login to server

В это же время на сервере в stderr/stdout ничего не пишет. (он запущен в foreground)

Грешу на то, что сервер за NAT. Вот его интерфейс.

ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 12:31:3d:06:39:9e brd ff:ff:ff:ff:ff:ff
    inet 10.112.70.108/23 brd 10.112.71.255 scope global eth0
    inet6 fe80::1031:3dff:fe06:399e/64 scope link 
       valid_lft forever preferred_lft forever

★★★

Последнее исправление: cetjs2 (всего исправлений: 2)

Я не понял что вы с чем соединяете. У вас и клиент и сервре iodine за NAT'ом и вы ставите произвольноей доменое имя tunnel.example.org? И каким образом DNS-запросы должны доходить до сервера?

mky ★★★★★
()
Ответ на: комментарий от mky

tunnel.example.org — это измененное имя сервера, чтоб не указывать настоящий хост в посте, на самом деле я использую другое.

Амазоновский EC2 так устроен, что он за натом, но до него запросы доходят, потому как я авторизуюсь с паролем, если вводить неправильный пароль, то пишет:

Enter password: 
Opened dns0
Opened UDP socket
Sending DNS queries for someserver to 8.8.8.8
Autodetecting DNS query type (use -T to override).
Using DNS type NULL queries
Version ok, both using protocol v 0x00000502. You are user #1
Received bad handshake
Retrying login...
Bad password

insider ★★★
() автор топика
Последнее исправление: insider (всего исправлений: 1)
Ответ на: комментарий от insider

Возможно, что доходят не все запросы. iodine ведь основан на DNS-запросах на поддомены типа foo.tunnel.example.org. Попробуйте включить отладочные сообщения у демона (опция -DD) и посмотреть, доходят ли до него DNS-запросы, когда выводится это самое «Received bad handshake». Или вобще посмотреть DNS-пакеты на клиенте и сервере с помощью tcpdump.

mky ★★★★★
()
Ответ на: комментарий от mky

Спасибо за совет. После пары перезапусков сервера туннель внезапно поднялся, без видимых на то причин, но пакеты все равно где-то теряются, трафик через него не идет. Судя по серверному tcpdump, пакеты уходят с сервера к моему провайдеру, причем на разные IP, и теряются. А по локальному, все нормально, пакеты идут на роутер и приходят с него.

Вот образец tcpdump с локалхоста:

root@laptop:/# tcpdump -i wlan0 -n -ttt -vv 'port 53'
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
00:00:00.000000 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 188)
    192.168.1.187.52761 > 192.168.1.1.53: [udp sum ok] 50166+ [1au] NULL? 2qabn82M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqZzM-KM-gTM-GM-BM-gM-v3M-}cM-JM->mnNM-LM-JqIM-FucM-?qM-VI.vjM-CM-`jKM-HTrM-HM-bM-pM-wcM-OKM-TOM-SQ16M-APM-PM-i06M-[FM-]M-^0znM-DtPM-JoamBM-F3M-t.tunnel.example.org. ar: . OPT UDPsize=4096 OK (160)
00:00:00.139647 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 90)
    192.168.1.1.53 > 192.168.1.187.52761: [udp sum ok] 34712 q: NULL? paiakt4y.tunnel.example.org. 1/0/0 paiakt4y.tunnel.example.org. NULL (62)
00:00:00.000544 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 188)
    192.168.1.187.52761 > 192.168.1.1.53: [udp sum ok] 57893+ [1au] NULL? 2uabo82M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqYM-}sM-PBZzM-QM-rM-mM-|fM-WaisTM-WM-JqIM-FucM-?qM-VI.vjM-CM-`jKM-HTrM-HM-bM-pM-wcM-OKM-TOM-SQ16M-APM-PM-i06M-[FM-]M-^0znM-DtPM-JoanM-eM-n3M-t.tunnel.example.org. ar: . OPT UDPsize=4096 OK (160)
00:00:00.163045 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 191)
    192.168.1.1.53 > 192.168.1.187.52761: [udp sum ok] 50166 q: NULL? 2qabn82M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqZzM-KM-gTM-GM-BM-gM-v3M-}cM-JM->mnNM-LM-JqIM-FucM-?qM-VI.vjM-CM-`jKM-HTrM-HM-bM-pM-wcM-OKM-TOM-SQ16M-APM-PM-i06M-[FM-]M-^0znM-DtPM-JoamBM-F3M-t.tunnel.example.org. 1/0/0 2qabn82M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqZzM-KM-gTM-GM-BM-gM-v3M-}cM-JM->mnNM-LM-JqIM-FucM-?qM-VI.vjM-CM-`jKM-HTrM-HM-bM-pM-wcM-OKM-TOM-SQ16M-APM-PM-i06M-[FM-]M-^0znM-DtPM-JoamBM-F3M-t.tunnel.example.org. NULL (163)
00:00:00.020430 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 87)

А вот с сервера:

root@server:~# tcpdump -i eth0 -n -nn -ttt -vv 'port 53'
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
00:00:00.000000 IP (tos 0x0, ttl 48, id 4990, offset 0, flags [DF], proto UDP (17), length 177)
    85.21.192.4.7399 > 10.112.70.108.53: [udp sum ok] 22075 NULL? 2iab582M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqWUkM-PM-YZFM-kuM-kM-{fM-WaatM-SM-XUiXKcbGM-FSr.kM-BM-`M-oeM-PLwM-FM-cY9M-<M-?OM-PRuQM-SAM-[HM-RM-g1M-XDUM-LM-mWAmM-DM-ajM-RM-dhahz4ZM-v.tunnel.example.org. (149)
00:00:00.020279 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 90)
    10.112.70.108.53 > 85.21.78.4.52679: [bad udp cksum 0xf44c -> 0x4f65!] 4796*- q: NULL? paiakvga.tunnel.example.org. 1/0/0 paiakvga.tunnel.example.org. NULL (62)
00:00:00.209706 IP (tos 0x0, ttl 48, id 14759, offset 0, flags [DF], proto UDP (17), length 76)
    85.21.78.9.1505 > 10.112.70.108.53: [udp sum ok] 62411 NULL? paiakvgi.tunnel.example.org. (48)
00:00:00.000193 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 191)
    10.112.70.108.53 > 85.21.192.4.7399: [bad udp cksum 0x66b2 -> 0xc5c1!] 22075*- q: NULL? 2iab582M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqWUkM-PM-YZFM-kuM-kM-{fM-WaatM-SM-XUiXKcbGM-FSr.kM-BM-`M-oeM-PLwM-FM-cY9M-<M-?OM-PRuQM-SAM-[HM-RM-g1M-XDUM-LM-mWAmM-DM-ajM-RM-dhahz4ZM-v.tunnel.example.org. 1/0/0 2iab582M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqWUkM-PM-YZFM-kuM-kM-{fM-WaatM-SM-XUiXKcbGM-FSr.kM-BM-`M-oeM-PLwM-FM-cY9M-<M-?OM-PRuQM-SAM-[HM-RM-g1M-XDUM-LM-mWAmM-DM-ajM-RM-dhahz4ZM-v.tunnel.example.org. NULL (163)
00:00:00.777813 IP (tos 0x0, ttl 48, id 46602, offset 0, flags [DF], proto UDP (17), length 177)
    85.21.78.32.1422 > 10.112.70.108.53: [udp sum ok] 49608 NULL? 2mab682M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqWZbM-gTM-WM->oM-H3M-|cM-JM->emM-zUxM-ByM-@baM-NKwi.M-CI58M-@PsM-IKYM-WAM-[GM-RPvM-HvQM-MVM-NM-h0M-XM-koM-UM3yngJXM-BM-hZdM->gJM-FZM-v.tunnel.example.org. (149)
00:00:00.020295 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 90)
    10.112.70.108.53 > 85.21.78.9.1505: [bad udp cksum 0xf451 -> 0x1e37!] 62411*- q: NULL? paiakvgi.tunnel.example.org. 1/0/0 paiakvgi.tunnel.example.org. NULL (62)
00:00:00.162106 IP (tos 0x0, ttl 48, id 5288, offset 0, flags [DF], proto UDP (17), length 76)
    85.21.192.4.52439 > 10.112.70.108.53: [udp sum ok] 41189 NULL? paiakvgq.tunnel.example.org. (48)
00:00:00.000128 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 191)
    10.112.70.108.53 > 85.21.78.32.1422: [bad udp cksum 0xf4cd -> 0x6403!] 49608*- q: NULL? 2mab682M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqWZbM-gTM-WM->oM-H3M-|cM-JM->emM-zUxM-ByM-@baM-NKwi.M-CI58M-@PsM-IKYM-WAM-[GM-RPvM-HvQM-MVM-NM-h0M-XM-koM-UM3yngJXM-BM-hZdM->gJM-FZM-v.tunnel.example.org. 1/0/0 2mab682M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqWZbM-gTM-WM->oM-H3M-|cM-JM->emM-zUxM-ByM-@baM-NKwi.M-CI58M-@PsM-IKYM-WAM-[GM-RPvM-HvQM-MVM-NM-h0M-XM-koM-UM3yngJXM-BM-hZdM->gJM-FZM-v.tunnel.example.org. NULL (163)
00:00:00.826093 IP (tos 0x0, ttl 48, id 13381, offset 0, flags [DF], proto UDP (17), length 177)
    213.234.192.20.29045 > 10.112.70.108.53: [udp sum ok] 50412 NULL? 2qab782M-J2hbM->M-nYM-VbglbM-^M-^4yzM-DM-XM-rM-DGM-^WM->qqZM-cgM-gTM-WM-FjM-H3M-|cM-JM->mnM-SyUiXKcbGM-FSr.kM-BM-`M-oeM-PLwM-FM-cY9M-<M-?OM-PRuQM-SAM-[HM-RM-g1M-XDUM-LM-mWAmM-DM-ajM-RM-dhafM-FM-fZM-v.tunnel.example.org. (149)
00:00:00.020312 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 90)
    10.112.70.108.53 > 85.21.192.4.52439: [bad udp cksum 0x664d -> 0x202b!] 41189*- q: NULL? paiakvgq.tunnel.example.org. 1/0/0 paiakvgq.tunnel.example.org. NULL (62)

настоящий хост заменен на tunnel.example.org

insider ★★★
() автор топика
Ответ на: комментарий от insider

Пакеты уходят на разные ip, но ip-адреса и порты выглядят правдоподобно, то есть сначала провайдер с одного из своих адресов посылает запрос, потом на этот же адрес уходит ответ. А вот это как то странно:

bad udp cksum 0x66b2 -> 0xc5c1!

Если tcpdump не глючит и в udp-заголовке действительно неправильная сумма, то эти пакеты от сервера и не дойдут до клиента. Я не смотрел исходники iodine, но по логике он должен работать с udp-сокетом, то есть udp заголовок должно целиком формировать ядро и непонятно почему там может быть неправильная контрольная сумма...

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.