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

Поиск и замена URL в MYSQL

Используйте сценарии MySQL для поиска и замены URL-адресов в базе данных Другой способ поиска и замены старых URL-адресов в базе данных – использование сценариев MySQL. Этот метод очень полезен, если у вас

POSTGRESQL 16 + CЕРВЕР 1С X64 И 1С 8.3.24

Для начала, в какой среде будем работать: Наша задача: Предполагается, что Debian на который мы установим как PostgreSQL так и Сервер 1С установлен (Установка по умолчанию). Для начала проверим «локаль»: Как видим

HADOOP

Hабор инструментов для разработки программ и обеспечения среды для их запуска в распределенной среде. Позволяет создавать большие кластеры и упрощает процесс управления ими. Является одним из элементов конвейеров обработки больших данных. Разработан на Java фондом Apache

Обновление mySQL с версии 5.7 до 8.0

Сами процедуры могут немного различаться в зависимости от операционной системы, поэтому приведенные ниже шаги ориентированы на общую схему и могут потребовать некоторых адаптаций. Создание резервной копии данных в MySQL можно выполнить с

11 советов по настройке файла wp-config.php

Скорость: Отключите сохраненные версии… Сейчас! Функция сохранения версий записей включена по умолчанию, но может привести к значительному “раздуванию” базы данных. Сохраненные версии существуют для того, чтобы вы могли откатиться к предыдущей версии записи,
Go toTop