Как поднять прокси на vps
Перейти к содержимому

Как поднять прокси на vps

  • автор:

Squid свой прокси сервер на виртуальном сервере

Все мы сталкиваемся с проблемой блокировки ресурсов в интернете. Причины этих блокировок могут быть абсолютно разными. Во многих странах правительство блокирует неугодные ресурсы или сами страны закрывают доступ к ресурсам другим государствам. Причем под блокировку бывают попадают довольно безобидные и полезные ресурсы. Выходов довольно много, можно использовать прокси плагины для браузеров, покупать прокси или использовать VPN, а можно поднять свой собственный прокси сервер. Начнём с того, что подойдёт самый простой VDS/VPS сервер. Установка и настройка займёт немного времени, особенно если вы хоть немного понимаете Linux.

Приступим, я использую на серверах Debian, поэтому инструкция именно для этого дистрибутива, но она так же подойдёт для Debian подобных систем (Ubuntu), а те, кто дружит с Linux, смогут запросто адаптировать под другие дистрибутивы.

Обновляем и перезагружаем систему:

apt update && apt upgrade -y && apt dist-upgrade -y && reboot

Установим прокси-сервер Squid3:

apt-get install squid3

Переходим в директорию:

cd /etc/squid

Делаем резервную копию файла настроек squid3:

cp squid.conf squid.conf.default

Очищаем файл конфигурации:

> squid.conf

Открываем файл конфигурации:

nano squid.conf

И заполняем следующим содержимым:

# порт на котром доступен прокси http_port 3128 dns_nameservers 208.67.222.222 208.67.220.220 # авторизация, подробности ниже auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd auth_param basic children 5 startup=5 idle=1 auth_param basic realm Welcome to Free VPN Proxy Master auth_param basic credentialsttl 2 hours acl all src all acl Users proxy_auth REQUIRED # пускать товарища с этого ip без пароля acl KnownUsers src "/etc/squid/KnownUsers.acl" acl SSL_ports port 443 # https acl SSL_ports port 563 # snews acl SSL_ports port 873 # rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 631 # cups acl Safe_ports port 873 # rsync acl Safe_ports port 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT # доступ только с доверенных ip или по паролю http_access allow KnownUsers http_access allow Users http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access deny all icp_access deny all # превращаем squid в анонимный прокси forwarded_for off header_access From deny all header_access Server deny all header_access User-Agent deny all header_replace User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 header_access Referer deny all header_replace Referer unknown header_access WWW-Authenticate deny all header_access Link deny all header_access X-Forwarded-For deny all header_access Via deny all header_access Cache-Control deny all # отправять URL источника запроса, многие сайты без него ведут себя некорректно. При параноидальном подходе следует использовать ##header_access Referer deny all coredump_dir /var/spool/squid3 # Отключаем дисковый кэш полностью cache_mem 8 MB cache_dir null /tmp cache deny all shutdown_lifetime 5 seconds # обрезаем логи, хранить лишнюю информацию о нас не нужно access_log none all cache_store_log none refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320 

Создаём файл passwd:

touch /etc/squid/passwd

Создаём файл KnownUsers.acl:

touch /etc/squid/KnownUsers.acl

Выполняем рестарт прокси сервера squid:

service squid restart

Если у вас статический IP адрес, то можно добавить его в файл KnownUsers.acl, чтобы пользоваться прокси сервером без логина или пароля. Добавлять адресов можно сколько угодно, каждый с новой строки.

Если же IP адрес динамический, то проще создать пользователя и пароль. Делается это так:

htpasswd /etc/squid/passwd proxyuser

где proxyuser имя вашего пользователя, может быть любым. При создании пользователя у вас запросят пароль и его подтверждение. Используйте не бональные имена пользователей и сложные пароли!

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

Кому нужен качественный и недорогой VDS хостинг, рекомендую ServTech

Как сделать прокси на Vps?

Самый простой способ — ssh tunneling. Локальным ssh клиентом коннектишься к серверу, с указанием опции поднять локальный динамический сокс-прокси. В случае с клиентом putty опция -D. В браузер прописываешь прокси 127.0.0.1:порт, порт тот который был указан в опции ssh клиента. Тип прокси socks5. Получается что браузер будет обращаться в интернет через локальный прокси-сервер, но трафик браузера при этом будет туннелироваться на внешний ВПС и выходить там.

Ответ написан более двух лет назад

Как сделать прокси сервер на VPS

Подобрать лучший VPS для сайта, Вы можете у нас После заказа VPS/VDS, если Вы используете ОС MacOS или Linux открываем терминал и вводим команду соединения по SSH:

ssh 111.24.65.77 -l root

подключение к VPS с помощью PuTTY

где, 111.24.65.77 — IP-адрес, вашего VPS-сервера.

Вам будет предложено принять ключ, введите «yes» и далее пароль из письма с доступами, которые вам прислал хостинг-провайдер.

Если Вы используете ОС Windows, то для подключения к VPS необходим SSH-клиент. Для примера рассмотрим самую распространенную программу PuTTY.

Открываем клиента, вводим IP-адрес в поле «Host Name», порт стоит по умолчанию 22, но некоторые хостинги используют другой порт, он должен быть указан в письме. Нажимаем кнопку открыть.

2. Добавляем пользователя на сервере

Далее Вам необходимо добавить пользователя для того, чтобы подключаться из под него, а не от root к серверу. Вводим команду:

adduser myuser

Добавление пользователя для подключения к прокси серверу

где, myuser — имя нового пользователя.

Далее устанавливаем пароль. Остальную информацию заполнять необязательно.

3. Создаём ssh-туннель на VPS

Если Вы на своём компьютере используете ОС MacOS или Linux, то переходим в терминал и вводим команду:

ssh 111.24.65.77 -l myuser -D 12345

где, 111.24.65.77 — IP-адрес, myuser — имя пользователя, а 12345 — порт, на котором будет работать прокси, можно указать другой, главное чтобы он не совпадал с портами на которых работают другие службы.

Не отключайте этот сеанс SSH, пока Вы не закончили использовать прокси.

Если Вы используете ОС Windows, открываем клиента (PuTTY), вводим IP-адрес и порт (по умолчанию 22).

подключение к VPS через прокси соединение с помощью PuTTY

Далее переходим в раздел «Connection» — «SSH» — «Tunnels» в поле «Source port» вводим порт, ставим галочку у пункта «Dynamic» и нажимаем кнопку «Add».

подключение к VPS через прокси соединение с помощью PuTTY

Браузеры, которые поддерживают прокси SOCKS5, должны предоставлять возможность использования SSH-туннеля. Всё что Вам нужно это IP-адрес локального хоста 127.0.0.1 (localhost IP) и порт.

Например, в браузере Firefox настройки прокси подключения находятся в «Настройках».

Где находятся настройки в Firefox

раздел «Основные» пункт «Параметры сети«.

Где находятся настройки сети в Firefox

Необходимо выполнить действия, как показано на скриншоте и нажать кнопку «Ок«.

Как настроить прокси для доступа в интернет в Firefox

После это ваш браузер будет использовать вашу VPS через открытое ssh-соединение в качестве прокси. Вы можете зайти и проверить это, например на сайте 2ip.ru. Это обеспечит Вам конфиденциальность, безопасность и доступ к заблокированному контенту.

Смотрите топ VPS/VDS хостингов в Европе, на нашем сайте.

# Установка и настройка Squid Proxy на VPS с Ubuntu 20.04

Squid — удобный и популярный open-source http-прокси. В этой инструкции мы расскажем, как установить Squid на предварительно настроенный VPS с Ubuntu 20.04 и настроить его работу.

# Установка Squid Proxy

Устанавливать Squid будем с помощью стандартной команды apt. Обновим список доступных для установки пакетов и установим сам Squid:

sudo apt update sudo apt install squid 

После завершения установки Squid автоматически запустится. Проверить его работу можно стандартной командой:

sudo systemctl status squid #Output ● squid.service - Squid Web Proxy Server Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-07-04 04:54:26 UTC; 44min ago Docs: man:squid(8) Process: 9523 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS) Process: 9526 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS) Main PID: 9527 (squid) Tasks: 5 (limit: 19660) Memory: 16.6M CGroup: /system.slice/squid.service ├─9527 /usr/sbin/squid -sYC ├─9529 (squid-1) --kid squid-1 -sYC ├─9530 (logfile-daemon) /var/log/squid/access.log ├─9531 (pinger) └─9583 (basic_ncsa_auth) /etc/squid/passwords … 

По умолчанию Squid работает только с соединениями, пришедшими с сервера, на котором он запущен. Чтобы разрешить работать Squid со всеми входящими соединениями или с соединениями, приходящими только с конкретного IP, нужно изменить его конфигурационный файл. Для этого откроем его:

sudo vim /etc/squid/squid.conf 

В этом файле нужно найти блок, отвечающий за подключения. Этот блок начинается со строки # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS . Чтобы найти нужную строку в большом файле (в конфигурационном файле Squid более 4 000 строк), в редакторе vim в командной строке введите / и после него — текст, который нужно найти.

Чтобы разрешить подключения к этому прокси-сервера с вашей локальной машины, перейдите к строкам:

include /etc/squid/conf.d/* # Example rule allowing access from your local networks. 

Добавьте после них строку:

… acl localnet src your_ip_address` … 
  • acl — Access Control List — директива, открывающая список разрешённых адресов;
  • localnet — название сети, от которой приходит запрос на подключение;
  • src — обозначение адреса сети (в данном случае — IP).

Теперь Squid готов к работе.

Для повышения уровня безопасности прокси настроим аутентификацию по паролю, чтобы его могли использовать только зарегистрированные пользователи.

# Настройка аутентификации для пользователей Squid

В качестве меры безопасности будем использовать аутентификацию пользователей по паролю. Для этого установим дополнительную библиотеку для используемого веб-сервера (в нашем случае это Apache):

sudo apt install apache2-utils 

Теперь создадим файл, в котором будут храниться имена пользователей и пароли:

touch /etc/squid/passwords 

Добавим в этот файл имя пользователя и его пароль:

sudo htpasswd -c /etc/squid/passwords squid_username 

Эта команда добавит в файл пользователя squid_username , после чего нужно будет ввести пароль для него.

Чтобы проверить, что пароли будут храниться в зашифрованном виде, можно посмотреть содержимое файла:

sudo cat /etc/squid/passwords #Output squid_username:$abr1$NIPFiAzx$DVoIkN6RCvn13wdajG2.X0 

После этого нужно снова открыть конфигурационный файл Squid и добавить в него строки, отвечающие за использование пароля:

sudo vim /etc/squid/squid.conf 

Блок, отвечающий за подключения, приведём к следующем виду:

include /etc/squid/conf.d/* auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwords auth_param basic realm proxy acl authenticated proxy_auth REQUIRED # Example rule allowing access from your local networks. acl localnet src your_ip_address # Adapt localnet in the ACL section to list your (internal) IP networks # from where browsing should be allowed #http_access allow localnet http_access allow localhost http_access allow authenticated # And finally deny all other access to this proxy http_access deny all 

Эти строки указывают Squid использовать файл с пользователями и паролями для проверки входящих соединений.

Осталось только добавить порт, на котором работает Squid, в список исключений файрвола, если он включён.

sudo ufw allow 3128 

# Проверка подключения

Самый простой способ проверки работы прокси — команда curl, которую мы запустим с локального компьютера.

Отправим запрос к одному из сайтов, которые точно работают, и проверим, как отработает наш прокси. Запустим консоль на локальной машине и выполним команду:

curl -v -x http://squid_username:squid_password@your_server_ip:3128 http://www.google.com/ 

Если всё было указано правильно — имя пользователя Squid, его пароль, IP сервера, к которому подключаетесь, и IP локального компьютера (в конфигурационном файле Squid) — на экране должна появиться примерно такая информация:

#Output * Trying your_server_ip:3128... * Connected to your_server_ip (your_server_ip) port 3128 (#0) * Proxy auth using Basic with user 'squid_user' > GET http://www.google.com/ HTTP/1.1 > Host: www.google.com > Proxy-Authorization: Basic c3F1aWRfdXNlcjpzcXVpZHBhc3M= > User-Agent: curl/7.74.0 > Accept: */* > Proxy-Connection: Keep-Alive > * Mark bundle as not supporting multiuse  HTTP/1.1 200 OK  Date: Mon, 04 Jul 2022 06:23:52 GMT … 

© Джино, 2003–2022. «Джино» является зарегистрированным товарным знаком.
Лицензия на телематические услуги связи №150549 от 09.03.2017.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *