0

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

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

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

Прежде всего, обновляем репозиторий нашей операционной системы. Для этого выполняем команду 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

Игра системный администратор

docker run -p 8080:8080 -p 3390:3389 –name play-adobe-flash-after-eol jchprj/play-adobe-flash-after-eolзайти localhost:8080, и открыть эту страницу, или https://serveradmin.ru/files/sysadmin.swf

Что делать, когда на сервере кончаются файловые дескрипторы (inode)

Нередки случаи, когда причиной проблем на сервере становится переполнение файловых дескрипторов (inode). Симптомы точно такие же, как при переполнившемся диске, только вот диск при этом может оказаться свободным. Количество inode каждой файловой системы определяется при разворачивании ОС.

CI/CD для начинающих: деплой React-приложения

Следующий шаг после разработки веб-приложения — размещение его на сервере. Независимо от сложности проекта или используемой инфраструктуры, общий процесс остается одинаковым: нужно «упаковать» код в CI/CD-конвейер и отправить на сервер. В тексте рассмотрим,

Настройка iptables в Linux от Selectel

Рассмотрим использование наиболее популярного в дистрибутивах Linux межсетевого экрана iptables. Эта инструкция — часть курса «Введение в сетевую безопасность». Смотреть весь курс Рассмотрим использование наиболее популярного в дистрибутивах Linux межсетевого экрана iptables

nginx и apache на одном сервере

В этом руководстве мы рассмотрим процедуру установки и настройки работы двух web-серверов с целью использования преимуществ каждого из них, где Nginx – как frontend и Apache – как backend. Установка и настройка
Go toTop