Я пытаюсь научиться использовать tcpdump. Я думал, что подслушу мой логин по ssh. Настройка немного необычна, у меня OS X Lion работает с VirtualBox, а Ubuntu работает на виртуальной машине. У меня включен ssh, и я могу войти в систему из OS X в обычном режиме:
> ssh -p 22 10.0.1.2 -l telliott
Welcome to Ubuntu 11.10 (GNU/Linux 3.0.0-17-generic i686)
* Documentation: https://help.ubuntu.com/
0 packages can be updated.
0 updates are security updates.
Last login: Sat Mar 31 19:54:36 2012 from toms-mac-mini.local
telliott@U32:~$ logout
Connection to 10.0.1.2 closed.
>
у меня есть не запутал порт ssh в Ubuntu. В OS X штрих дает то, что я ожидал:
> ./stroke 10.0.1.2 22 22
Port Scanning host: 10.0.1.2
Open TCP Port: 22 ssh
Итак, из OS X я делаю:
> sudo tcpdump -i en1 -v port 22
Password:
tcpdump: listening on en1, link-type EN10MB (Ethernet), capture size 65535 bytes
Затем я вхожу из OS X в Ubuntu с помощью ssh, но ничего не вижу с tcpdump. Вот ifconfig из Ubuntu:
telliott@U32:~$ ifconfig
eth1 Link encap:Ethernet HWaddr 08:00:27:d7:ba:0e
inet addr:10.0.1.2 Bcast:10.0.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fed7:ba0e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:799 errors:0 dropped:0 overruns:0 frame:0
TX packets:465 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:96863 (96.8 KB) TX bytes:68638 (68.6 KB)
Где пакеты, которые я надеялся увидеть? Спасибо за любую помощь.
Обновление: в OS X
> ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=27<RXCSUM,TXCSUM,VLAN_MTU,TSO4>
ether 60:fb:42:f4:cd:9e
media: autoselect
status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:26:b0:fa:75:7f
inet6 fe80::226:b0ff:fefa:757f%en1 prefixlen 64 scopeid 0x5
inet 10.0.1.3 netmask 0xffffff00 broadcast 10.0.1.255
media: autoselect
status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
lladdr 60:fb:42:ff:fe:f4:cd:9e
media: autoselect <full-duplex>
status: inactive
Обновление 2:
Теперь понял, что это глупый вопрос, потому что (i) tcpdump на порту 22 в Ubuntu работает так, как вы ожидали, и (ii) я никогда не открывал порт 22 в OS X. ssh работает с помощью некоторой магии «мостового» режима виртуальная машина, которую я еще не понимаю. Я пытаюсь заставить работать решение, указанное ниже, и я уверен, что это так.
Попробуйте настроить один из интерфейсов виртуальных машин на Host-only, затем используйте tcpdump для прослушивания vboxnet0
% sudo tcpdump -AXvnn -s0 -ivboxnet0 port 22
tcpdump: WARNING: vboxnet0: That device doesn't support promiscuous mode
(BIOCPROMISC: Operation not supported on socket)
tcpdump: listening on vboxnet0, link-type EN10MB (Ethernet), capture size 65535 bytes
05:33:38.767959 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
192.168.56.3.22 > 192.168.56.1.56137: Flags [S.], cksum 0x186b (correct), seq 3689124050, ack 844205722, win 14480, options [mss 1460,sackOK,TS val 4294808631 ecr 446189010,nop,wscale 5], length 0
У меня работает, плюс вы можете подключиться к виртуальной машине по SSH, если ваша сеть отключена.