Для прослушивания HTTP-трафика с помощью tcpdump
и просмотра фактического содержимого пакетов вы можете сделать это с помощью:
sudo tcpdump -X -s 1500 "port 80 and host mysite.example.com"
Однако фильтрация данных может выполняться только в определенных позициях пакетов в tcpdump
и в этом случае нецелесообразна.
Кроме того, вы также можете использовать ngrep
для прослушивания строк с конкретными строковыми данными на сетевом интерфейсе.
sudo ngrep -q "Private-Token: aaaaaaaaaaaaaa" "port 80 and host mysite.example.com"
Что касается реальных фильтров хоста/порта, см. этот (краткий )обзор tcpdump
фильтров /BPF:выражения TCPDUMP
Кроме того, рекомендация wireshark
@StephenHarris весьма хороша из-за наличия графического интерфейса. Чтобы выполнить tcpdump
запись необработанных данных в файл для последующего использования в wireshark
, вы выполняете:
sudo tcpdump -X -s 1500 "port 80 and host mysite.example.com" -w mycapture.pcap
Вы также можете перехватывать запросы пакетов на уровне приложения, используя sysdig
. (Не уверен в ответах без тестирования)
sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains "Private-Token: aaaaaaaaaaaaaa"
Держу пари, вы могли бы использовать:
ExecStartPre=+/usr/bin/install --owner=%u --mode=600 -T /etc/foo/secrets %T/secrets
Информация префикса +
для /usr/bin/install
гарантирует, что это запускается с правами суперпользователя (и, таким образом, оно имеет разрешение -на чтение исходного файла ). Затем мы копируем его в %T
, который является временным каталогом, смонтированным в частном порядке, и устанавливаем владельца в %u
, что является динамическим именем пользователя. Копия также может решить некоторые проблемы параллелизма, если у вас есть несколько экземпляров службы, использующих один и тот же файл.