2022-08-21 21:41:01 +02:00
|
|
|
# googerteller
|
2022-08-22 18:38:34 +02:00
|
|
|
|
|
|
|
Audible feedback on just how much your browsing feeds into Google.
|
2022-08-21 22:48:40 +02:00
|
|
|
|
2022-08-22 00:07:55 +02:00
|
|
|
By bert@hubertnet.nl / https://berthub.eu/
|
|
|
|
|
2022-08-23 07:32:25 +02:00
|
|
|
Makes a little bit of noise any time your computer sends a packet to a
|
|
|
|
Google service, which excludes Google Cloud users.
|
|
|
|
|
2022-08-22 22:07:07 +02:00
|
|
|
Demo video [in this tweet](https://twitter.com/bert_hu_bert/status/1561466204602220544)
|
|
|
|
|
2022-08-21 22:48:40 +02:00
|
|
|
## How to compile
|
2022-08-22 18:38:34 +02:00
|
|
|
|
|
|
|
You need a C++ compiler like `gcc-c++` and CMake for compiling the binary.
|
|
|
|
|
|
|
|
You also need to install `libpcaudio` (`libpcaudio-dev` on Debian/Ubuntu, `pcaudiolib-devel` on Fedora/Red Hat).
|
|
|
|
|
|
|
|
Then run:
|
2022-08-21 22:48:40 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
cmake .
|
|
|
|
make
|
|
|
|
```
|
|
|
|
|
2022-08-22 18:38:34 +02:00
|
|
|
## How to run
|
2022-08-23 10:25:40 +02:00
|
|
|
Google is so large its IPv4 and IPv6 footprint can't be handled by tcpdump,
|
|
|
|
or at least not efficiently. Therefore we need to define an ip(6)tables
|
|
|
|
`ipset`. This will first exclude Google Cloud, and then include all the
|
|
|
|
other Google IP addresses.
|
|
|
|
|
|
|
|
Install iptables 'ipset', and run (as root) the `ipset-setup.sh` script, or
|
|
|
|
execute:
|
2022-08-21 22:48:40 +02:00
|
|
|
|
|
|
|
```
|
2022-08-23 10:25:40 +02:00
|
|
|
ipset create google-services hash:net
|
|
|
|
for a in $(cat goog-cloud-prefixes.txt)
|
|
|
|
do
|
|
|
|
echo $a
|
|
|
|
ipset add google-services $a nomatch
|
|
|
|
done
|
|
|
|
for a in $(cat goog-prefixes.txt)
|
|
|
|
do
|
|
|
|
ipset add google-services $a
|
|
|
|
done
|
|
|
|
|
|
|
|
ipset create google-services6 hash:net family inet6
|
|
|
|
for a in $(cat goog-cloud-prefixes6.txt)
|
|
|
|
do
|
|
|
|
ipset add google-services6 $a nomatch
|
|
|
|
done
|
|
|
|
|
|
|
|
for a in $(cat goog-prefixes6.txt)
|
|
|
|
do
|
|
|
|
ipset add google-services6 $a
|
|
|
|
done
|
|
|
|
iptables -I OUTPUT -m set --match-set google-services dst -j NFLOG --nflog-group 20
|
|
|
|
ip6tables -I OUTPUT -m set --match-set google-services6 dst -j NFLOG --nflog-group 20
|
2022-08-21 22:48:40 +02:00
|
|
|
```
|
|
|
|
|
2022-08-23 10:25:40 +02:00
|
|
|
Then start as:
|
2022-08-22 13:23:14 +02:00
|
|
|
```
|
2022-08-23 10:25:40 +02:00
|
|
|
sudo tcpdump -i nflog:20 -ln | ./teller
|
2022-08-22 13:23:14 +02:00
|
|
|
```
|
2022-08-23 10:25:40 +02:00
|
|
|
And cry.
|
2022-08-22 13:23:14 +02:00
|
|
|
|
2022-08-21 23:01:50 +02:00
|
|
|
## Data source
|
|
|
|
The list of Google services IP addresses can be found on [this Google
|
|
|
|
support page](https://support.google.com/a/answer/10026322?hl=en).
|
|
|
|
|
|
|
|
Note that this splits out Google services and Google cloud user IP
|
2022-08-23 10:25:40 +02:00
|
|
|
addresses. However, it appears the Google services set includes the cloud IP
|
|
|
|
addresses, so you must check both sets before determining something is in
|
|
|
|
fact a Google service and not a Google customer.
|