Задача: снимать удобочитаемый и фильтруемый дамп с linux серверов. Как вариант воспользоваться tcpdump или же tshark, записать данные в файл, перенести на windows или linux-desktop тачку и курить. Но это долго, муторно и неудобно. А так же, так как я очень часто снимаю дампы звонков мне желательно видеть дамп в онлайн режиме.
Отличный выход из этой ситуации — rpcapв + wireshark.
К сожалению rpcapd еще нет в репозиториях ubuntu и debin, однако он легко скачивается и собирается.
1 2 3 4 5 6 7 |
sudo apt-get build-dep libpcap git cd /usr/src git clone https://github.com/frgtn/rpcapd-linux.git rpcapd cd rpcapd/libpcap ./configure && make cd ../ make |
вот и все.
Далее нам нужно стартануть демон. Параметры запуска могут быть следующими:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
root@sip:/usr/src/rpcapd-linux# ./rpcapd -h USAGE: rpcapd [-b <address>] [-p <port>] [-6] [-l <host_list>] [-a <host,port>] [-n] [-v] [-d] [-s <file>] [-f <file>] -b <address>: the address to bind to (either numeric or literal). Default: it binds to all local IPv4 addresses -p <port>: the port to bind to. Default: it binds to port 2002 -4: use only IPv4 (default both IPv4 and IPv6 waiting sockets are used) -l <host_list>: a file that keeps the list of the hosts which are allowed to connect to this server (if more than one, list them one per line). We suggest to use literal names (instead of numeric ones) in order to avoid problems with different address families -n: permit NULL authentication (usually used with '-l') -a <host,port>: run in active mode when connecting to 'host' on port 'port' In case 'port' is omitted, the default port (2003) is used -v: run in active mode only (default: if '-a' is specified, it accepts passive connections as well -d: run in daemon mode (UNIX only) or as a service (Win32 only) Warning (Win32): this switch is provided automatically when the service is started from the control panel -s <file>: save the current configuration to file -f <file>: load the current configuration from file; all the switches specified from the command line are ignored -h: print this help screen |
Можно запустить как демон, можно access листы использовать, но я обычно запускаю так:
1 |
./rpcapd -4 -n -p 25123 |
где 25123 порт, который будет слушать rpcap.
Далее запускаем Wireshark, идем во вкладку Capture -> Option -> Inmput -> Manage Interface -> Remote Interfaces -> +. В поле Host вводим IP адрес сервера, в поле Port — наш порт, соответсвенно.
Нажимаем ОК, далее выбираем нужные интерфейсы из списка, и жмакаем кнопку Start. Вуаля, удобный дамп, в онлайн режиме, с удобными фильтрами и анализом.
По завершению дамапа, убиваем демон rpcapd нажатием Ctrl+C.