У меня установлен 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
Предложение состоит в том, чтобы использовать 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