48
правок
Admin (обсуждение | вклад) (Новая страница: «== <big><big>'''настроить прокси-сервер Dante для частных подключений в Ubuntu'''</big></big> == <br> Dante — это прокси-сервер SOCKS с открытым исходным кодом. SOCKS — менее широко используемый протокол, но он более эффективен для некоторых одноранговых приложений и предпочтител...») |
Admin (обсуждение | вклад) Нет описания правки |
||
| (не показаны 4 промежуточные версии этого же участника) | |||
| Строка 2: | Строка 2: | ||
<br> | <br> | ||
Dante — это прокси-сервер SOCKS с открытым исходным кодом. SOCKS — менее широко используемый протокол, но он более эффективен для некоторых одноранговых приложений и предпочтительнее HTTP для некоторых видов трафика. Начните с выполнения следующих команд от имени пользователя без полномочий root, чтобы обновить списки пакетов и установить Dante: | '''Dante''' — это прокси-сервер '''SOCKS''' с открытым исходным кодом. '''SOCKS''' — менее широко используемый протокол, но он более эффективен для некоторых одноранговых приложений и предпочтительнее '''HTTP''' для некоторых видов трафика. Начните с выполнения следующих команд от имени пользователя без полномочий '''root''', чтобы обновить списки пакетов и установить '''Dante''': | ||
sudo apt update | sudo apt update | ||
<br> | sudo apt install dante-server | ||
sudo | |||
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''' по умолчанию, перейдя к его [https://manpages.debian.org/testing/dante-server/danted.conf.5.en.html онлайн-руководству] , и вы даже можете повторно загрузить пакет вручную из [https://packages.ubuntu.com/focal/dante-server списка пакетов] Ubuntu , чтобы повторно получить стандартный файл конфигурации, если захотите. А пока удалите его: | |||
sudo rm /etc/danted.conf | |||
Теперь вы можете заменить его на что-то более лаконичное. Открытие файла в текстовом редакторе автоматически создаст файл, если он не существует, поэтому с помощью '''nano''' вашего любимого текстового редактора вы должны получить пустой файл конфигурации: | |||
sudo nano /etc/danted.conf | |||
Добавьте следующее содержимое: | |||
logoutput: syslog | |||
user.privileged: root | |||
user.unprivileged: nobody<br> | |||
# The listening network interface or address. | |||
internal: 0.0.0.0 port=1080<br> | |||
# The proxying network interface or address. | |||
external: eth0<br> | |||
# socks-rules determine what is proxied through the external interface. | |||
socksmethod: username<br> | |||
# client-rules determine who can connect to the internal interface. | |||
clientmethod: none<br> | |||
client pass { | |||
from: 0.0.0.0/0 to: 0.0.0.0/0 | |||
}<br> | |||
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-адресов, вы можете использовать [https://www.digitalocean.com/community/tutorials/understanding-ip-addresses-subnets-and-cidr-notation-for-networking нотацию CIDR] или просто добавить еще один '''client pass {}''' блок конфигурации: | |||
client pass { | |||
from: your_ip_address/0 to: 0.0.0.0/0 | |||
}<br> | |||
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''' теперь должны работать везде, где вы, возможно, захотите использовать новый прокси-сервер. | |||