Collect of data via network probe
This documentation explains how to use the tcpdump module. This enables collect data exchanged on a smartphone. This module is not compatible with Windows.
Â
Pre-requisites
Global pre-requisites
Functional testrunner
Job.yml and config.yml files
PC connected in Ethernet.
Â
Specific prerequisites to Linux
Activate connection sharing on the Linux computer: Network > Use as access point... > Switch on. Note that your computer must be on a wired network to be able to activate wifi connection sharing.
Connect your phone to the pc’s hotspot.
Check that the tcpdump package is installed on the Linux computer. tcpdump is installed by default on most Linux distributions. To check this, run the following command:
tcpdump --version
If the package is not installed, run the following command:
sudo apt install tcpdump
Â
Specific prerequisites to Mac OS
Activate connection sharing on the Mac pc.
Click on the apple (top left), then on "System Preferences > Sharing". Uncheck the "Internet Sharing" box (if enabled).
Apply the following settings:
Share your connection from: Thunderbolt Ethernet
To computers using: Wifi
Wi-Fi Options...: enter the name of the network and the password
Then select the "Internet Sharing" checkbox. The wifi icon changes to an arrow pointing upwards.
Connect your phone to the computer's connection share.
Check that the tcpdump package is installed on the Mac OS computer. tcpdump is installed by default on most Mac OS. To check this, run the following command:
tcpdump --version
If the package is not installed, run the following command:
Â
Modification of job.yml
Â
Modifications of config.yml
If the tcpdump module has been activated, you need to fill in the different values in the job.yml file.
To obtain information about the network interface corresponding to the connection share, you can use the ifconfig
command (Linux and Mac OS) or ipconfig
(Windows). This command identifies the list of networks available to your PC and the IP address of your PC on each network. You can use the IP address your phone has taken to find the name of the network you are looking for.
Here are the fields to fill in in detail :
deviceIP : The IP address of the phone in the network shared by your PC. Normally this is an address of the type
10.42.0.x
(replace the x with the correct number)gatewayIP : This is the IP address of your PC (which acts as a gateway) in the shared network. This can be found using the
ifconfig
command. Normally it is :10.42.0.1
networkInterface : The name of the network interface on the shared network. This can be found using the
ifconfig
command. You can also obtain it by typing the commandsudo tcpdump -D
. The network interface corresponding to the shared connection begins with "wl" (Wireless Lan) on Linux.keepPcap : If the boolean is set to true, the pcap file is saved at the end of the measurements.
ipFilters : These are filters to remove certain network exchanges from the measurement. For measurements on iOS, set the "apple" boolean to true to filter IP addresses corresponding to 17.0.0.0/8 (Apple).
The IP of the telephone and the IP of the gateway must be in the same network. Normally the IPs are of the type 10.42.0.x
Â
Launch of measures
Run the testrunner as usual:
If the tcpdump module has been activated in the job.yml file, the root password will be requested on Linux and Mac OS when the testrunner is initialised.
Â
Add rights to run tcpdump without password on Linux [optional]
The procedure comes from this website : https://askubuntu.com/questions/530920/tcpdump-permissions-problem
Create a pcap group and add yourself to it
Change the group of tcpdump and set permissions. You may need to change the path by
/usr/bin/tcpdump
.
Use
setcap
to givetcpdump
the necessary permissions
Restart your PC. You should be able to run the tcpdump command without sudo.
Â
Schema of situation
Â