Как заставить Wireshark отслеживать конкретный IP в фоновом режиме
У меня установлен Wireshark, и я хочу отслеживать трафик на определенный IP-адрес и с него, поэтому было бы очень полезно, если бы я мог заставить Wireshark запускаться сам по себе при запуске, а затем начинать захват пакетов на eth0
которые либо с или на этот конкретный IP-адрес. Тогда было бы также очень полезно автоматически сохранить захваченные пакеты, которые соответствуют этим спецификациям, в каталог, который я бы указал. Я знаю, что такая вещь, или, по крайней мере, что-то похожее, могла бы быть сделана, но я просто не знаю технических подробностей того, как именно я мог бы заставить ее работать, поэтому я действительно спрашиваю об этом здесь.
Даже если бы я не смог запустить его в фоновом режиме при запуске и начать делать это сам по себе без запуска какого-либо графического интерфейса, по крайней мере так, чтобы я мог заставить его фильтровать и автоматически сохранять определенные пакеты, было бы хорошо (даже если мне нужно будет вручную запустить Wireshark).
Обновление информации:
Представленное текущее решение, похоже, не работает, теперь это новое содержание моего /etc/network/interfaces
файл:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
post-up tcpdump -i eth0 host 80.177.214.176 -w '/home/arthur-dent/tcpdumpLog/eth0-%F-%H-%M-%S.bin' -G 600 &
Так это должно выглядеть, требуется перезапуск или какая-либо команда для выполнения?
Информация об ОС:
Description: Ubuntu 14.10
Release: 14.10
Информация о пакете:
wireshark:
Installed: 1.12.1+g01b65bf-2~ubuntu14.10.3
Candidate: 1.12.1+g01b65bf-2~ubuntu14.10.3
Version table:
*** 1.12.1+g01b65bf-2~ubuntu14.10.3 0
500 http://gb.archive.ubuntu.com/ubuntu/ utopic-updates/universe amd64 Packages
500 http://security.ubuntu.com/ubuntu/ utopic-security/universe amd64 Packages
100 /var/lib/dpkg/status
1.12.0+git+4fab41a1-1 0
500 http://gb.archive.ubuntu.com/ubuntu/ utopic/universe amd64 Packages
1 ответ
Рекомендуется использовать tcpdump для фактического захвата и сохранения пакетов. Вы все еще можете использовать wireshark для более детального просмотра пакетов позже.
Например (где я использую локальный IP-адрес, только для примера):
sudo tcpdump -i eth0 host 192.168.111.190 -w 'eth0-%F-%H-%M-%S.bin' -G 600
захватит весь трафик в / из 192.168.111.190 и сохранит весь пакет в файл. Чтобы предотвратить большие файлы и облегчить последующее исследование, имя файла меняется каждые 10 минут, причем имя файла содержит дату и время в качестве идентификатора. Пример:
-rw-r--r-- 1 root root 169739 Apr 16 16:11 tcpdump/075/eth0-2015-04-16-16-01-02.bin
-rw-r--r-- 1 root root 60191 Apr 16 16:21 tcpdump/075/eth0-2015-04-16-16-11-02.bin
-rw-r--r-- 1 root root 177895 Apr 16 16:31 tcpdump/075/eth0-2015-04-16-16-21-02.bin
-rw-r--r-- 1 root root 134816 Apr 16 16:41 tcpdump/075/eth0-2015-04-16-16-31-02.bin
-rw-r--r-- 1 root root 660839 Apr 16 16:51 tcpdump/075/eth0-2015-04-16-16-41-02.bin
-rw-r--r-- 1 root root 678867 Apr 16 17:00 tcpdump/075/eth0-2015-04-16-16-51-02.bin
Теперь, скажем, у меня был интересный /var/log/kern.log
запись, которую я хотел подробно изучить на уровне пакета. Я бы открыл Wireshark и использовать file
затем open
и откройте соответствующий файл на основе метки времени записи в журнале.
В качестве альтернативы, вы можете использовать -C
вариант вместо -G
вращать выходные файлы в зависимости от размера файла, а не по времени. Смотрите страницу руководства tcpdump для более подробной информации.
Теперь, чтобы автоматизировать запуск этой команды при загрузке, вы можете добавить ее в /etc/rc.local
как уже упоминалось в комментариях, однако это может привести к возникновению гонки между rc.local и интерфейсом, который не работает вовремя, что приводит к следующей записи в /var/log/syslog
(где это не сработало 1 из 3 раз):
Apr 22 12:06:45 desk-ss rc.local[679]: tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
Apr 22 13:30:47 desk-ss rc.local[674]: tcpdump: eth0: That device is not up
Apr 22 13:33:20 desk-ss rc.local[665]: tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
Поэтому рассмотрите возможность добавления задержки или добавления ее в качестве дополнения к /etc/network/interfaces
файл. Сначала добавляется метод задержки /etc/rc.local
:
sleep 20; tcpdump -i eth0 host 192.168.111.1 -w '/home/doug/eth0-%F-%H-%M-%S.bin' -G 600 &
Во-вторых, метод пост-ап, вот /etc/network/interfaces
файл:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
post-up tcpdump -i eth0 host 192.168.111.1 -w '/home/doug/eth0-%F-%H-%M-%S.bin' -G 600 &
Для справки вот оригинал /etc/network/interfaces
файл:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback