Linux socks5 proxy server

Установка прокси сервера SOCKS5 и Shadowsocks

SOCKS – сетевой протокол, с помощью которого можно пересылать данные от клиента к серверу. По сравнению с HTTP-прокси-серверами, SOCKS5 передает все пакеты от клиента, не добавляя ничего от себя.

Shadowsocks – прокси-проект с открытым исходным кодом. Весьма популярен в Китае для обхода государственной цензуры.

Автоматическая установка сервера SOCKS5

Скрипт поддерживает автоматическую установку и настройку в операционных системах Ubuntu 16.04, 18.04, CentOS 7 и Oracle Linux 7.5.

Для SOCKS5 используется улучшенная система безопасности с использованием PAM файлов для авторизации.

Предварительно установим инструмент curl:

curl https://selivan.github.io/socks.txt | sudo bash

Скрипт автоматически сгенерирует пароль.

Если вы хотите предварительно вручную внести свой пароль и порт, то выполните следующие действия:

export PORT=8080; export PASSWORD=mypass

Затем продолжим установку:

curl https://selivan.github.io/socks.txt | sudo --preserve-env bash

Где mypass является вашим паролем.

mypass

По окончанию работы скрипт отобразит созданные данные для подключения по протоколу SOCKS5.

Автоматическая установка сервера Shadowsocks в Debian 7/10, Ubuntu 14.04/18.04

wget https://raw.githubusercontent.com/Vndroid/shadowsocks-install/master/shadowsocks.sh
./shadowsocks.sh install 2>&1 | tee shadowsocks.log

Во время установки будет предложено добавить свой пароль.

shadowsocks.sh

А также предложат выбрать тип шифрования и включить протокол TCP.

Так же как и предыдущий скрипт, по окончанию создания сервера shadowsocks будет отображена информация для подключения.

shadowsocks

Приложения-клиенты для подключения по протоколу Shadowsocks: shadowsocks clients.

Источник

Создание и настройка SOCKS5 прокси сервера в Ubuntu

Для ускорения работы с некоторыми программами и парсерами, которые я использую, требуются прокси, сначала я арендовал их, но потом решил поднять свои SOKS5 прокси сервера на уже имеющихся серверах с сайтами.

На всех серверах стоит Ubuntu Server 14.04, может где-то и 12.04, но описание должно подойти и для всех остальных систем основанных на Debian.

Есть 2 известных мне способа организации работы SOKS5 сервера:

  1. SOCKS через SSH. Этот способ удобен своей простотой но неудобен при частом использовании, или использовании с разных машин;
  2. Установка SOCKS сервера. При использовании этого способа уйдет чуть больше времени на первоначальную настройку, но потом пользоваться прокси будет быстрее и удобнее.

SOCKS через SSH

Для того чтоб поднять SOCKS5 через SSH нужен только доступ к SSH сервера.

Вводим в терминале или SSH клиенте (PuTTY для Windows)

Если запросит пароль, то нужно ввести пароль от SSH сервера.

-D – указывает порт по которому будет доступен SOKS5 сервер

Все, после этого вы можете подключиться к SOKS5 серверу по адресу localhost:1080 или 127.0.0.1:1080

Такой способ удобен тем что не нужно ничего дополнительно устанавливать и настраивать. Но перед каждым подключением или после разрыва ssh соединения, например из-за проблем с интернетом придется заново вводить эту команду.

Установка SOCKS сервера

Я знаю 2 SOCKS сервера 3proxy и Dante. У себя использовал Dante Server его настройку и опишу.

Читайте также:  Linux change time zone

Установить Dante сервер можно с помощью apt-get, по умолчанию устанавливается старая версия (v.1.1). Ниже будут настройки для старой и новой (v.1.4) версий.

Установка новой версии Dante Server

sudo apt-get update sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository ppa:dajhorn/dante sudo apt-get update sudo apt-get install dante-server

После этих действий Dante Server будет установлен, но ругнется и не сможет запуститься, видимо дефолтные настройки имеют ошибку.

Далее нужно отредактировать файл настроек

Приведя его к такому виду

logoutput: syslog /var/log/danted.log internal: eth0 port = 1080 external: eth0 socksmethod: username user.privileged: root user.unprivileged: nobody client pass < from: 0.0.0.0/0 to: 0.0.0.0/0 log: error >socks pass < from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: error method: username >
  • указываем лог файл который будет находиться по адресу /var/log/danted.log;
  • eth0 — сетевой интерфейс на котором висит внешний IP сервера, узнать его можно воспользовавшись командой ifconfig, либо можно просто указать свой внешний IP вместо названия интерфейса;
  • порт для SOKS5 прокси – 1080;
  • socksmethod — метод авторизации. username — авторизация с указанием логина и пароля системных пользователей. Можно указать none если вы хотите не использовать авторизацию, но не советую оставлять открытым для порт для прокси т.к. сканеры прокси не дремлют, и у меня через открытый порт начали спам рассылать, после чего мне хостер отписал что у моего IP идет спам и надо что-то решать, можно использовать не дефолтный порт а какой-то другой, это позволит отсрочить нахождения вашего прокси сканерами;
  • user.privileged — имя пользователя с расширенными правами;
  • user.unprivileged — имя пользователя с обычными правами (как я понял dante работает от имени этих пользователей в зависимости от того какими правами нужно обладать для выполнения операции).

После сохранения настроек нужно перезагрузить Dante

sudo service danted restart

Все, теперь к SOKS5 прокси можно подключиться с любого устройства, указав IP сервера, порт – 1080, и данные для авторизации (имя и пароль пользователей которые зарегистрированы на сервере).

Я для доступа к прокси создал отдельного пользователя и указываю его данные. Создавал командой

sudo useradd -m soksuser && sudo passwd soksuser

Где soksuser – имя создаваемого пользователя.

Установка старой версии Dante Server

sudo apt-get update sudo apt-get install dante-server

Далее нужно отредактировать файл настроек

Приведя его к такому виду

logoutput: syslog /var/log/danted.log internal: eth0 port = 1085 external: eth0 method: username user.privileged: root user.notprivileged: nobody client pass < from: 0.0.0.0/0 to: 0.0.0.0/0 log: error >pass < from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: error method: username >

Дальше все так-же как и в новой версии о которой я писал выше.

ошибка в итоге
Job for danted.service failed because the control process exited with error code. See «systemctl status danted.service» and «journalctl -xe» for details.

Источник

Установка и настройка Dante SOCKS5 Proxy сервера на Ubuntu 18.04 LTS [годная инструкция по обходу блокировки мессенджера Telegram (и др сайтов) Роскомнадзором]

Установка и настройка Dante SOCKS5 Proxy сервера на Ubuntu 18.04 LTS [годная инструкция по обходу блокировки мессенджера Telegram (и др сайтов) Роскомнадзором]

Вспомнилась цитата с одно ещё не заблокированного интернет-ресурса:

— Скоро и на сковородку придется VPN ставить =/
— Главное, чтобы на унитаз не пришлось, а то пошёл посрать, а унитаз заблокирован.
— Придется срать через Нидерланды.

SOCKS — сетевой протокол, который позволяет клиент-серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволами). SOCKS — это сокращение от «SOCKet Secure». SOCKS не зависит от конкретных протоколов уровня приложений (7-го уровня модели OSI) и базируется на стандарте TCP/IP — протоколе 4-го уровня.

Читайте также:  No icon install linux mint

Socks — это о-о-о-очень старый протокол. Вышел в свет аж в 1992-м году. Ясен пень, что в те далёкие времена ни о каком SSL никто ничего не слышал. Поэтому данные, в том числе логины и пароли на подключение к серверу всегда передаются открытым текстом. Далее, подняв такой прокси и передав доступ к нему всем желающим, вы несколько рискуете. Ведь если Вася подключится браузером или скайпом к вашему проксе, а потом сделает что-то нехорошее, то прилетит по шапке именно вам. Поэтому имеет смысл ограничивать сети с/на которые можно ходить, а также закрываться паролями. Правда, последнее тоже не является панацеей (см. выше).

Кстати о прокси серверах и авторизации. У человека из интернетов дошли руки исследовать эту тему, на которую обратили внимание в одной статье на geektimes (ее правда уже удалили), что даже при условии того, что вы укажете шелл /usr/sbin/nologin, это не спасает вас например от фишки ssh проброса портов. Вам не обязательно нужен шелл, чтобы, например, создать свой сокс сервер на чужом сокс сервере.

ssh -N -D 1337 user@host

Cпасибо ребятам, которые подсказали про ключ -N.
Ну и в дополнение, кроме -D вполне можно использовать и ключи -L -R, что потенциально поможет вам пробросить себя в сеть за уязвимым прокси-сервером или достучаться до служб, висящих на локалхосте.

Хотя этот протокол разработан достаточно давно, он является относительно новым (по сравнению с HTTP proxy). SOCKS позволяет работать с любыми (версия Socks 4 — с TCP, Socks 5 — с TCP и UDP) протоколами. SOCKS proxy просто передает данные от клиента к серверу, не вникая в содержимое самих данных (поэтому он может работать с HTTP, FTP, SMTP, POP3, NNTP, etc.).

SOCKS сервер Dante Server

Dante — это только SOCKS сервер. Если дополнительно нужна поддержка HTTP-прокси, то используйте 3proxy.

Свежая версия Dante в Ubuntu появилась только в версии 18.04. Если у вас 16.04 или 14.04, то вам пригодится статья по самостоятельной сборке deb пакета — https://bvn13.tk/posts/dante-server-on-ubuntu-16-04-lts или https://bvn13.tk/posts/dante-server-on-ubuntu-16-04-lts

Шаг 1. Установка:

sudo apt install dante-server

При старте возможно появится ошибка, это, увы, нормально, её можно пропускать:

warning: checkconfig(): no socks authentication methods enabled. This means all socks requests will be blocked
error: checkconfig(): no internal address given for server to listen for clients

Шаг 2. Основные настройки

Конфигурационный файл расположен в по адресу: /etc/danted.conf

Читайте также:  Linux команда посмотреть mac адрес

Ниже представлена типовая конфигурация:

# Путь к лог файлу logoutput: /var/log/socks.log # Можно задать отдельный лог файл для ошибок # errorlog: /var/log/socks_error.log internal: eth0 port = 1080 #eth0 -- ваш внешний сетевой интерфейс external: eth0 #eth0 -- ваш внешний сетевой интерфейс ##Тип авторизации #Работа без пароля #socksmethod: none #Авторизация по локальным/системным пользователям (наш случай) socksmethod: username #Авторизация при помощи логина/пароля, сохраняемого в PAM-файле: #socksmethod: pam.username # Мы используем системных пользователей, поэтому нужны права на чтение passwd user.privileged: root user.unprivileged: nobody user.libwrap: nobody # Разрешить подключения с любых IP всем пользователям прошедшим авторизацию client pass < from: 0/0 to: 0/0 log: connect disconnect error ioop >socks pass < from: 0/0 to: 0/0 log: connect disconnect error ioop >

Подробнее об уровнях логированиях на сайте Dante смотрите в разделе Server logging

Уже сейчас можно попробовать запустить сервис без пароля командой sudo service danted start Но для этого в конфигурационном файле должна быть разрешена работа без пароля: socksmethod: none

Шаг 3. Логины/пароли

Добавим нового пользователя proxy_user_01 для работы с SOCKS сервером.

Добавляем нового пользователя:
useradd --shell /usr/sbin/nologin proxy_user_01
Задаем ему пароль:
passwd proxy_user_01

При этом у пользователя не будет доступа к SSH, т.к. в качестве шелла указан nologin.

Шаг 4. Запуск.

Добавляем сервис в автозагрузку и запускаем его:

systemctl enable danted
systemctl start danted

Прокси будет работать по ip вашего сервера и порт, который был указан в файле конфигурации (1080 — стандартный порт). Если у вас на сервере не висят https сайты или вроде того, то настоятельно рекомендую поменять порт, например на 443.

Можно пользоваться!

Шаг 5. Безопасность.

Вместо системных пользователей можно и нужно использовать PAM файл с логинами и паролями (аналог htpasswd).

Для этого необходимо дополнительно установить пакет libpam-pwdfile:

sudo apt install libpam-pwdfile

И после этого в конфигурационном файле/etc/danted.conf заменить строку:

socksmethod: username
на эту
socksmethod: pam.username

В файл /etc/pam.d/sockd добавляем:

auth required pam_pwdfile.so pwdfile /etc/dante.passwd
account required pam_permit.so

Используя mkpasswd (входит в состав пакета whois)

mkpasswd --method=md5 password

Логин и зашифрованный пароль следует теперь добавить в файл: /etc/dante.passwd

proxy_user_01:$apr1$Ts3tPSBs$kfYlyhXwezKq2t6mItWm6/

Можно воспользоваться онлайн сервисом генерации строки логина-пароля: https://www.mkpasswd.net/index.php (выбрав type:crypt-md5) или любым другим, но не стои забывать о том, что такие сервисы могут сохранять ваш логин и пароль у себя, в том числе и нехешированными! 🙂

p.s.: стоит обратить внимание на то, что тип для md5 должен быть $1, а используемый в htpasswd md5 APR не поддерживается. Т.е. вы не сможете сгенирировать правильный пароль при помощи утилиты htpasswd!

Имя PAM сервиса используемое Dante по умолчанию sockd. Так же, если вы хотите использовать файл конфигурации libpam_pwdfile от другого настроенного сервиса, либо использовать несколько конфигураций, вы можете воспользоваться директивой pamservicename в конфигурационном файле Dante. Пример использования:

client pass from: 0.0.0.0/0 to: 0.0.0.0/0 
#the servicename should differ from the servicename in socks-rules
pamservicename: pam_host
>

Дополнительно вы можете почитать статьи:

Рубрики

При заказе по этой ссылке бесплатно помогу настроить и подготовить сервер к повседневной эксплуатации.

Источник

Оцените статью
Adblock
detector