0

Частный анонимный прокси-сервер Squid

04.10.2023

руководство поможет Вам с минимальными затратами времени получить средство, позволяющее решить следующие задачи:

  • защитить компьютеры в локальной сети от некоторых видов атак;
  • обеспечить пользователям более высокий уровень анонимности;
  • снизить нагрузку на канал связи с Интернетом при большом количестве обращений к одним и тем же ресурсам (за счет кэширования);
  • запретить доступ к тем или иным сетевым ресурсам для пользователей Вашей локальной сети;
  • ограничить показ рекламы.

Прежде всего, обновляем репозиторий нашей операционной системы. Для этого выполняем команду apt update:

# sudo apt update

Важно: здесь и далее управление пакетами с помощью утилиты apt (Advanced Packaging Tool) выполняется с правами суперпользователя (root) — через команду sudo.

Теперь обновляем пакеты — для этого вводим в командную строку команду apt dist-upgrade:

# sudo apt dist-upgrade

Поскольку в результате обновилось ядро Linux, нужно перегрузить систему. Воспользуемся командой shutdown с опцией -r (перезагрузка вместо выключения) и аргументом now (немедленно):

# shutdown -r now

Теперь устанавливаем прокси-сервер Squid. Для этого используем команду apt install, добавив в качестве аргумента squid. Также установим apache2-utils для аутентификации пользователей по паролю:

# sudo apt install squid apache2-utils

Настраиваем прокси-сервер Squid

Теперь нам предстоит настроить работу нашего прокси-сервера. На всякий случай делаем резервную копию файла настроек Squid. Для этого сначала переходим в каталог /etc/squid/ с помощью команды cd:

cd /etc/squid/

После чего копируем файл squid.conf, изменив имя итогового файла на squid.conf.default с помощью команды cp:

cp squid.conf squid.conf.default

Файл настроек Squid будет находиться там же, но его исходный вариант не будет перезаписываться при работе с утилитой.

Далее редактируем файл конфигурации /etc/squid/squid.conf прокси-сервера Squid, чтобы он приобрел следующий вид (в нашем примере используется простой текстовый редактор vim):

vim /etc/squid/squid.conf

Приводим файл конфигурации к следующему виду:

# порт на котором доступен прокси
http_port 3128

dns_nameservers 208.67.222.222 208.67.220.220

# авторизация, по паролю
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5 startup=5 idle=1
auth_param basic realm Welcome to Proxy
auth_param basic credentialsttl 2 hours
acl Users proxy_auth REQUIRED

# пускать товарища с этого ip без пароля
acl KnownUsers src "/etc/squid/KnownUsers.acl"

# все остальные
acl all src all

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 Users
http_access allow KnownUsers

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; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.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/squid

# Отключаем дисковый кэш полностью
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 \/(Packages|Sources)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
refresh_pattern \/Release(|\.gpg)$ 0 0% 0 refresh-ims
refresh_pattern \/InRelease$ 0 0% 0 refresh-ims
refresh_pattern \/(Translation-.*)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
refresh_pattern . 0 20% 4320

Далее запускаем Squid. Для этого воспользуемся командой systemctl restart и добавим к ней в качестве аргумента squid:

systemctl restart squid

Добавляем в список KnownUsers.acl доверенные IP-адреса клиентов, у них мы пароль спрашивать не будем.

root@proxy:/etc/squid# vim KnownUsers.acl
# KnownUsers
176.38.167.41
213.111.122.3

Добавляем пользователя, аутентификация у которого будет проходить по паролю:

root@proxy:/etc/squid# htpasswd /etc/squid/passwd new-user
New password:
Re-type new password:
Adding password for user new-user

Для того чтобы избавиться от рекламы, устанавливаем Pi-Hole, воспользовавшись инструментом curl с опциями -sS:

curl -sSL https://install.pi-hole.net | bash

Далее меняем dns_nameservers на 127.0.0.1 в файле /etc/squid/squid.conf — и никакой рекламы.

Вот и все! Теперь наш прокси-сервер Squid готов к использованию!

Свежие комментарии

Подписка

Лучшие статьи

Рубрики

Популярное

Previous Story

Установка и настройка Nexus Sonatype используя подход infrastructure as code

Next Story

Меняем размер разделов диска с помощью fdisk

Latest from Blog

RouterOS/MikroTik на Debian

RouterOS — операционная система, основанная на ядре Linux, предназначенная для маршрутизации, брандмауэра, работы с VPN как сервером и клиентом, а также функционирования в качестве точки беспроводного доступа. Эта система может действовать в роли

How to Install Proxmox Virtual Environment on Debian 11

Introduction Proxmox Virtual Environment is an open-source virtualization management program. It provides a single platform to manage services and functions like KVM Hypervisor, Linux Containers (LXC), storage & networking. In addition, it

Настройка Wireguard VPN на своем сервере

Настройка серверной части После успешного подключения я напишу несколько команд и описание того что они производят для понимания процесса: Обновляем список пакетов в репозиториях apt update Обновим сами пакеты apt upgrade -y

Установка Zabbix 7 c NGINX + PostgreSQL + TimescaleDB на Ubuntu Server или Debian

Сервер Zabbix предполагает достаточную вариативность в выборе СУБД и веб-сервера, поэтому многое тут будет зависеть от персональных предпочтений. Однако расширение TimescaleDB позволяет поддерживать высокий уровень производительности и масштабирования при работе с временными

Настройка простого беспроводного репитера на устройстве MikroTik

При развертывании беспроводных сетей достаточно часто возникают ситуации, когда в некоторых местах квартиры или офиса мощность Wi-Fi сигнала недостаточна для уверенной работы. Конечно, наиболее действенным решением является создание централизованно управляемой сети и
Go toTop