Репозитории apt для сервера dante для Ubuntu 16.04 устарели (версия 1.1). Поэтому мне нужно скомпилировать программу из исходного кода и установить ее, потому что я не хочу использовать ненадежный PPA.
Обычно, когда я устанавливаю из репозиториев, apt install dante-server
и он устанавливается! и если вы выполните danted -v
, он распечатает версию, и вы можете отредактировать файл конфигурации dante в /etc/danted.conf
и перезапустить службу danted
и используйте свой прокси-сервер! Но когда я компилирую и устанавливаю программу, она по-прежнему не работает так, как я описал.
Вот что я сделал на данный момент:
Я загрузил dante-1.4.2.tar.gz с их веб-сайта https://www.inet.no/dante/download.html и сделал:
./configure
make
make check
sudo make install
Но когда я пробую danted -v
, я вижу, что он еще не установлен (также проверено в / usr / bin
и / usr / sbin
] и /etc/init.d
). Итак, из файла readme INSTALL
внутри загруженного файла tar.gz я узнал, что программа устанавливается в / usr / local
.
$ ls /usr/local/bin
socksify
$ ls /usr/local/sbin
sockd
Но, как видите, он не установлен, установлены только socksify и sockd. Я считаю, что sockd является зависимостью от данте-сервера.
Кроме того, я не нашел службы с именем danted в systemctl, как мне установить службу?
настроить
статус:
Configure status:
Client: Enabled
Server: Enabled
Preloading: Enabled
Libwrap: Disabled, tcpd.h missing
BSD Auth: Disabled, usable bsd_auth.h not found
PAM: Disabled, security/pam_appl.h missing
GSSAPI: Not found/disabled
KRB5: Not found/disabled
SASL: Not found/disabled
UPNP: Not found/disabled
Compatability: issetugid setproctitle strlcpy strvis
Modules:
redirect: Not found
bandwidth: Not found
ldap: Not found
Похоже, что двоичный файл был правильно установлен - он называется sockd
. Это имя по умолчанию для этого двоичного файла. Вы можете переименовать его с помощью mv / usr / local / sbin / sockd / usr / local / sbin / danted
. Вы можете настроить это вместе с файлом конфигурации по умолчанию с такими параметрами конфигурации, как - с помощью -sockd-conf = FILE
То же самое и с двоичным файлом apache2 в Ubuntu. В RHEL / Fedora этот двоичный файл называется httpd
.
Поскольку вы редактировали свой вопрос несколько раз, некоторые из них могут больше не казаться актуальными:
При компиляции / установке вручную расположение по умолчанию для установки двоичных файлов - / usr / local / bin
. Убедитесь, что это переменная PATH с помощью echo $ PATH
.
libscompat / timer.h
- файл заголовка C.
/usr/local/man/man5/socks.conf
не является файлом конфигурации, это страница man
.
Прочтите содержимое этого файла с помощью man /usr/local/man/man5/socks.conf
, и вы получите представление о том, что поместить в /etc/socks.conf
Обычно вы можете включить это с помощью systemctl enable dante.service
, но вам нужно будет вручную создать служебный файл systemd в / usr / lib / systemd / system /
Вот пример danted.service от 20.04:
[Unit]
Description=SOCKS (v4 and v5) proxy daemon (danted)
Documentation=man:danted(8) man:danted.conf(5)
After=network.target
[Service]
Type=simple
PIDFile=/run/danted.pid
ExecStart=/usr/sbin/danted
ExecStartPre=/bin/sh -c ' \
uid=`sed -n -e "s/[[:space:]]//g" -e "s/#.*//" -e "/^user\\.privileged/{s/[^:]*://p;q;}" /etc/danted.conf`; \
if [ -n "$uid" ]; then \
touch /var/run/danted.pid; \
chown $uid /var/run/danted.pid; \
fi \
'
PrivateTmp=yes
InaccessibleDirectories=/boot /home /media /mnt /opt /root
ReadOnlyDirectories=/bin /etc /lib -/lib64 /sbin /usr /var
DeviceAllow=/dev/null rw
[Install]
WantedBy=multi-user.target
Когда вы устанавливаете сервер dante из исходного кода/tarball-файла, он устанавливает двоичный файл как sockd
в /usr/bin
. Вы можете переименовать двоичный файл sockd
в dante
, если хотите. Если вы это сделаете, вам также необходимо обновить имя в служебном файле.
Вы можете настроить сервер dante в /etc/sockd.conf
.
Пример конфигурации ниже.
internal: eth0 port = 3000
external: INSERT-YOUR-EXTERNAL-IP
socksmethod: none
logoutput: syslog stdout /var/log/sockd.log
client pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
clientmethod: none
log: connect error
}
socks pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
clientmethod: none
log: connect error
}
Когда вы устанавливаете сервер dante путем компиляции из исходного кода, Служба sockd не создается, но вы можете создать службу sockd вручную.
sudo nano /etc/systemd/system/sockd.service
Скопируйте содержимое ниже в редактор, сохраните и закройте его.
[Unit]
Description=Sockd Service
[Service]
Type=normal
ExecStart=/usr/local/sbin/sockd
[Install]
WantedBy=multi-user.target
Вы сможете запустить службу sockd и включить ее при загрузке.
sudo systemctl start sockd
sudo systemctl enable sockd