SOCKS5 прокси
- SOCKS через SSH. Этот способ удобен своей простотой но неудобен при частом использовании, или использовании с разных машин;
- Установка 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
/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
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