Пошаговая инструкция для запуска своего sockd прокси на Centos7
Добавляем репозиторий
sudo yum install http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
Включаем репозиторий и устанавливаем Dante
sudo yum --enablerepo=gf-plus install dante-server
Разрешаем автозагрузку сервиса
sudo systemctl enable sockd.service
Создаем рабочую папку
sudo mkdir /var/run/sockd
Делаем бэкап оригинального конфига
sudo mv /etc/sockd.conf /etc/sockd.conf.orig
Узнаем название сетевого интерфейса — например eth0
sudo ifconfig
Пишем свой конфиг
sudo vim /etc/sockd.conf
Подставляем название своего сетевого интерфейса и порт, а также добавляем IP адреса Telegram
#logoutput: /var/log/socks.log
logoutput: stderr
# На каком сетевом интерфейсе и порту обслуживаем socks клиентов
internal: eth0 port = 433
# С какого IP или интерфейса выходим во внешний мир
external: eth0
#internal: x.x.x.x port = 1080
#external: x.x.x.x
# Используемый метод авторизации клиентов. none - без авторизации.
#user.libwrap: nobody
socksmethod: username
#clientmethod: username
#socksmethod: username none
user.privileged: root
user.unprivileged: nobody
#user.libwrap: nobody
socks pass {
from: 0/0 to: 149.154.167.99/32
log: error
}
socks pass {
from: 0/0 to: 149.154.175.10/32
log: error
}
socks pass {
from: 0/0 to: 149.154.175.117/32
log: error
}
socks pass {
from: 0/0 to: 149.154.167.42/32
log: error
}
socks pass {
from: 0/0 to: 149.154.175.50/32
log: error
}
socks pass {
from: 0/0 to: 149.154.167.50/32
log: error
}
socks pass {
from: 0/0 to: 149.154.167.51/32
log: error
}
socks pass {
from: 0/0 to: 149.154.175.100/32
log: error
}
socks pass {
from: 0/0 to: 149.154.167.91/32
log: error
}
socks pass {
from: 0/0 to: 149.154.165.120/32
log: error
}
socks pass {
from: 0/0 to: 149.154.166.120/32
log: error
}
socks pass {
from: 0/0 to: 149.154.164.250/32
log: error
}
socks pass {
from: 0/0 to: 149.154.167.117/32
log: error
}
socks pass {
from: 0/0 to: 149.154.167.118/32
log: error
}
socks pass {
from: 0/0 to: 149.154.167.192/27
log: error
}
socks pass {
from: 0/0 to: 149.154.164.8/29
log: error
}
socks pass {
from: 0/0 to: 91.108.8.0/27
log: error
}
socks pass {
from: 0/0 to: 91.108.12.0/27
log: error
}
socks pass {
from: 0/0 to: 91.108.16.0/27
log: error
}
socks pass {
from: 0/0 to: 91.108.56.0/24
log: error
}
socks pass {
from: 0/0 to: 91.108.4.0/24
log: error
}
socks pass {
from: 0/0 to: 149.154.160.0/22
log: error
}
socks pass {
from: 0/0 to: 149.154.164.0/22
log: error
}
socks pass {
from: 0/0 to: 149.154.168.0/22
log: error
}
socks pass {
from: 0/0 to: 149.154.172.0/22
log: error
}
socks pass {
from: 0/0 to: 91.108.56.0/22
log: error
}
socks pass {
from: 0/0 to: 91.108.4.0/22
log: error
}
socks pass {
from: 0/0 to: 91.108.8.0/22
log: error
}
socks pass {
from: 0/0 to: 91.108.16.0/22
log: error
}
socks pass {
from: 0/0 to: 91.108.12.0/22
log: error
}
socks pass {
from: 0/0 to: 149.154.160.0/20
log: error
}
socks pass {
from: 0/0 to: 2001:b28:f23d:f001::e/128
log: error
}
socks pass {
from: 0/0 to: 2001:67c:4e8:f002::e/128
log: error
}
socks pass {
from: 0/0 to: 2001:b28:f23d:f001::a/128
log: error
}
socks pass {
from: 0/0 to: 2001:67c:4e8:f002::a/128
log: error
}
socks pass {
from: 0/0 to: 2001:b28:f23d:f003::a/128
log: error
}
socks pass {
from: 0/0 to: 2001:67c:4e8:f004::a/128
log: error
}
socks pass {
from: 0/0 to: 2001:b28:f23f:f005::a/128
log: error
}
socks pass {
from: 0/0 to: 2001:67c:4e8:fa60::/64
log: error
}
socks pass {
from: 0/0 to: 2001:b28:f23d::/48
log: error
}
socks pass {
from: 0/0 to: 2001:b28:f23f::/48
log: error
}
socks pass {
from: 0/0 to: 2001:67c:4e8::/48
log: error
}
client pass {
from: 0/0 to: 0/0
log: error
}
Жмем ctrl+C, набираем :wq и жмем Enter — конфиг сохранен
Разрешаем порт в фаерволе
sudo firewall-cmd --zone=public --add-port=433/tcp --permanent
sudo firewall-cmd --reload
Запускаем сервис
sudo systemctl start sockd
Проверяем статус
sudo systemctl status sockd
Создаем отдельного пользователя
sudo useradd proxyuser
Устанавливаем пароль
sudo passwd proxyuser
Все — можно подключаться, рекомендую также перенести ssh порт на другой, запретить подключение по ssh для всех пользователей кроме основного — почитать про это можно, например здесь
Пять простых шагов для защиты ssh
VDS в России и Нидерландах
Выделенные серверы в России и Нидерландах
t.me/audiotube_stream — наш канал в Telegram с бесплатным скоростным прокси на выделенных серверах в Германии и Нидерландах
Комментарии (28)
solalex
18.04.2018 18:00Еще есть ss5
sourceforge.net/projects/ss5/files/ss5/3.8.9-8/ss5-3.8.9-8.src.rpm
sourceforge.net/projects/ss5/files/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
работает без проблем
interprise
18.04.2018 18:11+1у socks есть огромный недостаток, по сути нету шифрования и как следствия все знаю куда вы подключаетесь. Нужно сделать socks over ssl и добавить поддержку этого протокола в клиенты.
chuikoffru
19.04.2018 02:28Может поделитесь как?!
lleo_aha
19.04.2018 11:55+1[linux] лучше всего socks over ssh:
ssh server -D8765
данная команда просто использует ssh подключение для того чтобы открыть локальный (127.0.0.1) socks5 proxy на указанном порту
при этом, на удаленный сервер ставить вообще ничего не нужно
не слишком удобно для постоянного использования, но зато работает везде и сразуChugumoto
20.04.2018 13:51работает везде и сразу
Win8.1 — не работает :)
использую plink
и да. везде? вы к цысковскому оборудованию пытались так подключиться? :)lleo_aha
20.04.2018 13:55Эммм… Во первых, я указал что это способ для linux — причём тут win 8.1?
Во вторых, причём тут цысовское оборудование? Статья про запуск прокси на centos == «на своём забугорном сервере». Я просто написал что если нужен по быстрому шифрованный socks proxy через свой серевер — оно работает само
mihmig
21.04.2018 14:31Присоединяюсь,
также можно настроить и Firefox на работу через прокси, дополнительно решается проблема в подменой DNS провайдерами.
chelaxe
18.04.2018 18:29+1CentOS 7
вместо:
sudo ifconfig
, которого нет, но можно поставить:
sudo yum -y install net-tools
использовать нужно:
ip addr
Далее
Разрешаем порт в фаерволе
вернее будет:
sudo vim /usr/lib/firewalld/services/sockd.xml
Описываем наш сервис:
<?xml version="1.0" encoding="utf-8"?> <service> <short>sockd</short> <description>My sockd Server.</description> <port port="433" protocol="tcp" /> </service>
И добавляем правило:
sudo firewall-cmd --reload sudo firewall-cmd --get-services sudo firewall-cmd --permanent --zone=public --add-service=sockd sudo firewall-cmd --permanent --list-all sudo firewall-cmd --reload
рекомендую также перенести ssh порт на другой, запретить подключение по ssh для всех пользователей кроме основного
Так же запретить соединение для root, авторизацию по паролю — только ключи и настроить разрыв сессии при простое.chelaxe
18.04.2018 18:45Вообще лучше VPN сервер поднять, а чтобы не светить его можно к нему через TOR соединяться (OpenVPN умеет). TOR с обфусцированным мостом. Так надежнее и спокойнее =)
dmitry_dvm
18.04.2018 18:36Купил впс за 1 евро в чехии, поднял там ikev2, все работает с компа и мобилы. 2 дня пытаюсь завести в него весь трафик с роутера Ubiquiti EdgeRouterX, который под debian wheezy. Это просто ад какой-то поднять ikev2 клиент на линухе. После кровавых боев он наконец-то подключается, но как, черт бы его побрал, отправить через впн весь трафик, учитывая, что инет в него идет через pppoe?
Andrusha
19.04.2018 01:03Зачем все таскают из конфигурации в конфигурацию эту портянку из отдельных адресов? Есть же список AS'ок, где всё это в нормальном виде:
91.108.12.0/22
149.154.172.0/22
91.108.16.0/22
91.108.56.0/23
149.154.168.0/22
91.108.4.0/22
91.108.8.0/22
91.108.56.0/22
149.154.160.0/20
149.154.164.0/22Andrusha
19.04.2018 01:14С IPv6 аналогично: трёх последних записей с /48 вполне достаточно.
91.108.56.0/23, кстати, тоже можно выкинуть, есть /22, просто скопипастил так.
chuikoffru
19.04.2018 01:59А как же sudo useradd --shell /usr/sbin/nologin proxyuser?
Чтобы юзер по ssh не гонял на сервер.
to2n
19.04.2018 18:02Можете подсказать чем отличается
client от socks в контексте конфигурационного файла? "clientmethod" vs "socksmethod", "client pass" vs "socks pass"?
В man sockd.conf не достаточно понятно для меня это изложено =(
alexbers
20.04.2018 18:52Вчера попробовал поднять dante, но уж больно он память любит.
Судя по документации 64 воркеров хватит, чтобы обслужить около 500 пользователей.
Попробовал найти что-то хорошее/асинхронное, но не удалось. Поэтому по-быстрому написал на питоне свой: https://github.com/alexbers/tgsocksproxy. Он потребляет мало памяти, одновременно держит очень много пользователей и просто поднимается.
Работаю под ним уже сутки, полёт нормальный.
surefire
sudo: yum: command not found
сомневаюсь, что справится
AHDPEu
Centos7