Proxy server ubontu dante: различия между версиями

Перейти к навигации Перейти к поиску
12 381 байт добавлено ,  6 ноября 2023
нет описания правки
Нет описания правки
Нет описания правки
 
(не показаны 3 промежуточные версии этого же участника)
Строка 2: Строка 2:
<br>
<br>


Dante — это прокси-сервер SOCKS с открытым исходным кодом. SOCKS — менее широко используемый протокол, но он более эффективен для некоторых одноранговых приложений и предпочтительнее HTTP для некоторых видов трафика. Начните с выполнения следующих команд от имени пользователя без полномочий root, чтобы обновить списки пакетов и установить Dante:
'''Dante''' — это прокси-сервер '''SOCKS''' с открытым исходным кодом. '''SOCKS''' — менее широко используемый протокол, но он более эффективен для некоторых одноранговых приложений и предпочтительнее '''HTTP''' для некоторых видов трафика. Начните с выполнения следующих команд от имени пользователя без полномочий '''root''', чтобы обновить списки пакетов и установить '''Dante''':


     sudo apt update
     sudo apt update
     sudo apt install dante-server
     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''' по умолчанию, перейдя к его [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''' теперь должны работать везде, где вы, возможно, захотите использовать новый прокси-сервер.

Навигация

MediaWiki Appliance - Powered by TurnKey Linux