Proxy server ubontu dante
настроить прокси-сервер Dante для частных подключений в Ubuntu
Dante — это прокси-сервер SOCKS с открытым исходным кодом. SOCKS — менее широко используемый протокол, но он более эффективен для некоторых одноранговых приложений и предпочтительнее HTTP для некоторых видов трафика. Начните с выполнения следующих команд от имени пользователя без полномочий root, чтобы обновить списки пакетов и установить Dante:
sudo apt update sudo apt install dante-server
Dante также автоматически настроит фоновую службу и запустится после установки. Однако он предназначен для корректного выхода с сообщением об ошибке при первом запуске, поскольку он поставляется с отключенными всеми функциями. Проверить это можно с помощью systemctl команды:
systemctl status danted.service
ВЫВОД будет :
Output
● danted.service - SOCKS (v4 and v5) proxy daemon (danted)
Loaded: loaded (/lib/systemd/system/danted.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2021-12-15 21:48:22 UTC; 1min 45s ago
Docs: man:danted(8)
man:danted.conf(5)
Main PID: 14496 (code=exited, status=1/FAILURE)
Dec 15 21:48:21 proxies systemd[1]: Starting SOCKS (v4 and v5) proxy daemon (danted)...
Dec 15 21:48:22 proxies systemd[1]: Started SOCKS (v4 and v5) proxy daemon (danted).
Dec 15 21:48:22 proxies danted[14496]: Dec 15 21:48:22 (1639604902.102601) danted[14496]: warning: checkconfig(): no socks authentication methods enabled. This means all socks requests will be blocked after negotiation.
Perhaps this is not intended?
Чтобы успешно запустить службы Dante, вам необходимо включить их в файле конфигурации.
Конфигурационный файл Dante по умолчанию предоставляется в формате /etc/danted.conf. Если вы откроете этот файл с помощью nano вашего любимого текстового редактора, вы увидите длинный список параметров конфигурации, все из которых отключены. Вы можете попробовать перемещаться по этому файлу и включать некоторые параметры построчно, но на практике будет более эффективно и читабельно удалить этот файл и заменить его с нуля. Не беспокойтесь об этом. Вы всегда можете просмотреть конфигурацию Dante по умолчанию, перейдя к его онлайн-руководству , и вы даже можете повторно загрузить пакет вручную из списка пакетов Ubuntu , чтобы повторно получить стандартный файл конфигурации, если захотите. А пока удалите его:
sudo rm /etc/danted.conf
Теперь вы можете заменить его на что-то более лаконичное. Открытие файла в текстовом редакторе автоматически создаст файл, если он не существует, поэтому с помощью nano вашего любимого текстового редактора вы должны получить пустой файл конфигурации:
sudo nano /etc/danted.conf
Добавьте следующее содержимое:
logoutput: syslog user.privileged: root user.unprivileged: nobody
# The listening network interface or address. internal: 0.0.0.0 port=1080
# The proxying network interface or address. external: eth0
# socks-rules determine what is proxied through the external interface. socksmethod: username
# client-rules determine who can connect to the internal interface. clientmethod: none
client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 }
socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 }
Теперь у вас есть пригодная для использования конфигурация сервера SOCKS, работающая на порту 1080, что является общепринятым соглашением для SOCKS. Вы также можете разбить остальную часть этого файла конфигурации построчно:
- logoutput относится к тому, как Dante будет регистрировать соединения, в данном случае с использованием обычного системного журналирования.
- user.privileged позволяет Данте иметь root разрешения на проверку разрешений
- user.unprivileged не предоставляет серверу никаких разрешений для работы в качестве непривилегированного пользователя, поскольку в этом нет необходимости, если не предоставляются более детальные разрешения.
- internal сведения о соединении указывают порт, на котором работает служба, и какие IP-адреса могут подключаться.
- externalс ведения о соединении указывают сетевой интерфейс, используемый для исходящих подключений, eth0 по умолчанию на большинстве серверов.
Остальные детали конфигурации касаются методов аутентификации, которые обсуждаются в следующем разделе. Не забудьте открыть порт 1080 в брандмауэре, если вы используете ufw:
sudo ufw allow 1080
На этом этапе вы можете перезапустить Dante и подключиться к нему, но у вас будет сервер SOCKS, открытый для всего мира, что вам, вероятно, не нужно, поэтому сначала вы узнаете, как его защитить.
Шаг 2 — Обеспечение безопасности Данте
Если вы до сих пор следовали этому руководству, Dante будет использовать обычные учетные записи пользователей Linux для аутентификации. Это полезно, но пароль, используемый для этого соединения, будет отправлен в виде обычного текста, поэтому важно создать выделенного пользователя SOCKS, у которого не будет никаких других привилегий для входа. Для этого вы будете использовать useraddфлаги, которые не будут назначать пользователю оболочку входа, а затем установите пароль:
sudo useradd -r -s /bin/false your_dante_user sudo passwd your_dante_user
Вам также следует избегать входа в эту учетную запись через незащищенное беспроводное соединение или слишком широкого общего доступа к серверу. В противном случае злоумышленники могут и будут предпринимать неоднократные попытки войти в систему.
Dante поддерживает другие методы аутентификации, но многие клиенты (например, приложения), которые будут подключаться к прокси-серверам SOCKS, поддерживают только базовую аутентификацию по имени пользователя и паролю, поэтому вы можете оставить эту часть как есть. В качестве альтернативы вы можете ограничить доступ только к определенным IP-адресам. Это не самый сложный вариант, но, учитывая сочетание используемых здесь технологий, он вполне разумен. Возможно, вы уже узнали, как ограничить доступ к определенным IP-адресам, ufw из наших обязательных руководств, но вы также можете сделать это непосредственно в Dante. Отредактируйте свой /etc/danted.conf:
sudo nano /etc/danted.conf
…
client pass {
from: your_ip_address/0 to: 0.0.0.0/0
}
Чтобы поддерживать несколько IP-адресов, вы можете использовать нотацию CIDR или просто добавить еще один client pass {} блок конфигурации:
client pass {
from: your_ip_address/0 to: 0.0.0.0/0
}
client pass {
from: another_ip_address/0 to: 0.0.0.0/0
}
После этого вы, наконец, можете перезапустить Dante с изменениями конфигурации.
sudo systemctl restart danted.service
На этот раз, когда вы проверите статус службы, вы должны увидеть, что она работает без каких-либо ошибок:
systemctl status danted.service
Output
● danted.service - SOCKS (v4 and v5) proxy daemon (danted)
Loaded: loaded (/lib/systemd/system/danted.service; enabled; vendor preset: enable>
Active: active (running) since Thu 2021-12-16 18:06:26 UTC; 24h ago
На следующем шаге вы наконец подключитесь к своему прокси.
Шаг 3 — Подключение через Dante Чтобы продемонстрировать свой сервер Dante, вы будете использовать программу командной строки под названием curl, которая популярна для выполнения различных типов веб-запросов. В общем, если вы хотите проверить, должно ли данное соединение работать в браузере в идеальных обстоятельствах, вам всегда следует сначала протестировать его с помощью curl. Для этого вы будете использовать Curl на своем локальном компьютере — он установлен по умолчанию во всех современных средах Windows, Mac и Linux, поэтому вы можете открыть любую локальную оболочку для запуска этой команды:
curl -v -x socks5://your_dante_user:your_dante_password@your_server_ip:1080 http://www.google.com/
Output * Trying 138.197.103.77... * TCP_NODELAY set * SOCKS5 communication to www.google.com:80 * SOCKS5 connect to IPv4 142.250.189.228 (locally resolved) * SOCKS5 request granted. * Connected to 138.197.103.77 (138.197.103.77) port 1080 (#0) > GET / HTTP/1.1 …
Учетные данные, которые вы использовали, curl теперь должны работать везде, где вы, возможно, захотите использовать новый прокси-сервер.