правильные разрешения для файла секретов с использованием динамического пользователя в systemd

Для прослушивания 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"

1
25.02.2021, 20:11
1 ответ

Держу пари, вы могли бы использовать:

ExecStartPre=+/usr/bin/install --owner=%u --mode=600 -T /etc/foo/secrets %T/secrets

Информация префикса +для /usr/bin/installгарантирует, что это запускается с правами суперпользователя (и, таким образом, оно имеет разрешение -на чтение исходного файла ). Затем мы копируем его в %T, который является временным каталогом, смонтированным в частном порядке, и устанавливаем владельца в %u, что является динамическим именем пользователя. Копия также может решить некоторые проблемы параллелизма, если у вас есть несколько экземпляров службы, использующих один и тот же файл.

1
18.03.2021, 22:28

Теги

Похожие вопросы