ваш IP: 3.17.74.227

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

Автор: Master Wenom
18 марта 2019
blog comments powered by Disqus