SOCKS5 прокси

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

SOCKS через SSH

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

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

1
ssh -D 1080 user@server

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

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

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

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

 

 

 

 

ssh -f -C2qTnN -D <порт> <удаленный_пользователь>@<удаленный_сервер>

Где
-f Запросит ssh перейти в фоновый режим только перед выполнением команды.
-C Включит сжатие всех данных (включая stdin, stdout, stderr и данные для перенаправленных Х11 и TCP/IP соединений).
-2 Принуждает ssh использовать только протокол версии 2.
-q Тихий режим. Подавляет все предупреждения и диагностические сообщения. Будут отображены только фатальные ошибки.
-T Отменить переназначение терминала.
-n Перенаправляет стандартный ввод из /dev/null (фактически, предотвращает чтение из стандартного ввода).
-N Не выполнять удаленную команду.
-D [локальный IP : ] порт

Например:

ssh -f -C2qTnN -D 1080 roman@8.8.8.8

После введения пароля к удаленному серверу, SSH перейдёт в фоновый режим.

 

Я знаю 2 SOCKS сервера 3proxy и Dante

 

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

 #apt-get install dante-server

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

nano /etc/danted.conf

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/0to: 0.0.0.0/0
    log: error
}
socks pass {
    from: 0.0.0.0/0to: 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

1
sudo service danted restart

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

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

1
sudo useradd -m soksuser && sudo passwd soksuser

 

 

service danted restart

 

 

#################

3proxy

HTTP SOCKS5

 

В качестве прокси сервера будет использоваться легкий и маленький 3proxy от Российских разработчиков. Установку произведем с помощью скрипта с GitHub — https://github.com/benjamin74/3proxy.

 

Выполняем (все под рутом)

 

#wget --no-check-certificate https://raw.github.com/barankilic/3proxy/master/3proxyinstaller.sh
chmod +x 3proxyinstaller.sh
./3proxyinstaller.sh



После установки обязательно редактируем /etc/3proxy/.proxyauth и изменяеим там логин и пароль. HTTP Proxy По желанию можно изменить номер порта 3128 на свой номер в /etc/3proxy/3proxy.cfg

 

#nano /etc/3proxy/3proxy.cfg

 

 

# Specify valid name servers. You can locate them on your VPS in /etc/resolv.conf
#
nserver 8.8.8.8
nserver 8.8.4.4
#Leave default cache size for DNS requests:
#
nscache 65536
#Leave default timeout as well:
#
timeouts 1 5 30 60 180 1800 15 60
#If your server has several IP-addresses, you need to provide an external one
#Alternatively, you may ignore this line
#external YOURSERVERIP
#If you ignore this line, proxy will listen all the server’s IP-addresses
#internal YOURSERVERIP
#Create users proxyuser1 and proxyuser2 and specify a password
#
users $/etc/3proxy/.proxyauth
#Specify daemon as a start mode
#
daemon
#Logs path and log format. Creation date will be added to a log name
#log /dev/null
#
log /var/log/3proxy.log
logformat «- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T»
#Compress logs using gzip
#
archiver gz /usr/bin/gzip %F
#store the logs for 30 days
rotate 1

 

#enable strong authorization. To disable authentication, simply change to ‘auth none’
#added authentication cachiing to make life easier
##########authcache user 60
#########auth strong cache
#restrict access for ports via http(s)-proxy and deny access to local interfaces

 

 

auth none

#
deny * * 127.0.0.1,192.168.1.1
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
allow * * * 192.168.35.0/24

#allow * * * 1-65535 HTTP
#allow * * * 1-65535 HTTPS
# run http-proxy … without ntlm-authorization, complete anonymity and port … $
# $
##########proxy -n -p3128 -a $
#Enable admin web-ui on specified port
###########admin -p3200

 

# socks proxy по умолчанию на -p порту 1080
socks -p1080

# SOCKS прокси на указанном ip (internal -i) и использовать в качестве исходящего ip (external ip -e)
#socks -p1235 -iX.X.X.X -eX.X.X.X

Запускаем 3proxy командой
#/etc/init.d/3proxyinit start

Перезапускаем
#/etc/init.d/3proxyinit restart

Остановка

#/etc/init.d/3proxyinit stop