Начиная с ядра Linux 4.2 существует CONFIG_UNIX_DIAG
, который предоставляет дополнительную информацию о сокетах домена UNIX, а именноVirtual File System
(информацию VFS ), которая содержит до сих пор отсутствующую информацию для связи Inode с пути к процессу..Его уже можно запросить с помощью инструмента ss
из iproute2 , начиная с версии v4.19.0 ~55:
$ ss --processes --unix --all --extened
...
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str LISTEN 0 5 /tmp/socket 13381347 * 0 users:(("nc",pid=12550,fd=3)) <-> ino:1569897 dev:0/65025 peers:
Номер устройства и Inode пути, которые вы можете получить из
$ stat -c 'ino:%i dev:0/%d' /tmp/socket
ino:1569946 dev:0/65025
ss
также поддерживает фильтрацию:
ss --processes --unix --all --extended 'sport = /tmp/socket'
но имейте в виду, что здесь может быть указан не тот сокет, который вам нужен, так как злой процесс может переименовать исходный сокет и заменить его собственным злым:
mv /tmp/socket /tmp/socket.orig
nc -U -l /tmp/socket.evil &
mv /tmp/socket.evil /tmp/socket
lsof /tmp/socket
, fuser /tmp/socket
и ss --processes --unix --all --extended 'sport = /tmp/socket'
будут перечислять исходный процесс, , а не замену злого. Вместо этого используйте что-то вроде этого:
id=$(stat -c 'ino:%i dev:0/%d' /tmp/socket)
ss --processes --unix --all --extended | grep -F "$id"
Или напишите свою маленькую программу на основе шаблона, содержащегося в man 7 sock _diag .
как сказал @roaima, openvpn теперь имеет сценарий установки, который работает без ошибок в Debian 9 и 10.
Читается :https://www.hostslim.eu/blog/how-to/how-to-install-openvpn-in-under-5-minutes/
Большинство шагов были такими же, как и в учебнике, что очень полезно. В заключение :openvpn -install.sh будет работать для установки и создания учетной записи клиента. Но с оговоркой, указанной ниже.
Примечание. :openvpn может по-прежнему не работать как vpn, даже если установка завершена без ошибок, и клиент может успешно инициализировать вход в vpn. Это тема другого поста.