Установка squid в ubuntu 16.04

Введение

Я успешно разобрался с настройкой sams2 под CentOS 7 и решил проделать то же самое на Freebsd 10.2. Мне нравится эта система. Не могу аргументировать чем именно, просто нравится и все. С нее началось мое первое знакомство с unix системами и с тех пор я стараюсь не забывать о ней, хотя работаю в ней все меньше и меньше.

Sams популярная и в своем роде уникальная система управления конфигурацией squid, которая работает через свой демон и php панель управления. Аналогов по удобству и функционалу я не встречал. Есть что-то похожее, но еще более старое, например STC. Но мне она внешне вообще не нравится, тоже очень старая и давно не развивается.

Можно схожий функционал реализовать отдельными средствами. Например, настроить ту или иную авторизацию в squid, создать списки доступа, списки ресурсов, включить все это. Потом анализировать логи, например, с помощью SARG. По идее, получится то же самое, что и самс, но управлять неудобно, отчеты в SARG не такие красивые и наглядные. В общем, не то.

Так что будем разбираться и настраивать самую последнюю из выпущенных версий самс — sams 2.0 от 1 апреля 2014 года.

Настройка Squid

Сервис squid можно настроить, отредактировав файл . Файл конфигурации содержит комментарии, описывающие, что делает каждый параметр конфигурации. Вы также можете поместить свои параметры конфигурации в отдельные файлы, которые можно включить в основной файл конфигурации с помощью директивы «include».

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

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

По умолчанию squid настроен на прослушивание порта на всех сетевых интерфейсах сервера.

Если вы хотите изменить порт и установить интерфейс прослушивания, найдите строку, начинающуюся с и укажите IP-адрес интерфейса и новый порт. Если интерфейс не указан, Squid будет прослушивать все интерфейсы.

/etc/squid/squid.conf

Запуск Squid на всех интерфейсах и на порту по умолчанию должен подойти большинству пользователей.

Squid позволяет вам контролировать, как клиенты могут получать доступ к веб-ресурсам, используя списки контроля доступа (ACL). По умолчанию доступ разрешен только с локального хоста.

Если все клиенты, использующие прокси-сервер, имеют статический IP-адрес, простейшим вариантом ограничения доступа к прокси-серверу является создание ACL, который будет включать разрешенные IP-адреса. В противном случае вы можете настроить squid на использование аутентификации.

Вместо добавления IP-адресов в основной файл конфигурации создайте новый выделенный файл, который будет содержать разрешенные IP-адреса:

/etc/squid/allowed_ips.txt

После этого откройте основной файл конфигурации и создайте новый ACL с именем (первая выделенная строка) и разрешите доступ к этому ACL с помощью директивы (вторая выделенная строка):

/etc/squid/squid.conf

Порядок правил важен. Убедитесь, что вы добавили строку перед .

Директива работает аналогично правилам межсетевого экрана. Squid читает правила сверху вниз, и когда правило совпадает, правила ниже не обрабатываются.

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

Прокси-сервер squid

Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и HTTPS.

apt-get install squid

Теперь редактируем конфигурационный файл. Открываем , ищем нужные строки и корректируем следующим образом:

...
http_port 3128 #<<< раскомментировать эту строчку
...
cache_dir ufs /var/spool/squid 100 16 256 #<<< раскомментировать эту строчку
...
acl our_networks src 192.168.0.0/24 #<<< раскомментировать эту строчку
http_access allow our_networks #<<< раскомментировать эту строчку
...
visible_hostname proxy.localdomain #<<< добавить строчку, скорее всего взамен строки 2161
...

Перезапускаем прокси-сервер командой:

/etc/init.d/squid restart

Настраиваем браузеры на клиентских машинах на использование прокси: адрес прокси — пишем IP адрес интерфейса, обращенного в локальную сеть. Скорее всего,это будет 192.168.0.1, порт прокси — указанный в конфигурационном файле 3128.

Желающим сделать прозрачное проксирование необходимо изменить в файле настроек одну строчку:

...
http_port 3128 transparent
...

Затем для заворачивания нужных портов на прокси-сервер прописывается правило:

iptables -t nat -A PREROUTING -i eth0 ! -d 192.168.0.0/24 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.0.1:3128

Раздача Интернета в локальную сеть c помощью firestarter

Для начала установим :

sudo apt-get install firestarter

При настройке указываем интерфейс с Интернетом — ppp0 раздавать на eth1

Раздача Интернета в локальную сеть (ICS: Internet Connection Sharing)

Для организации совместного доступа в Интернет с помощью общего доступа к подключению Интернета на сервере должна быть одна сетевая карта для подключения к внутренней сети и еще одна карта или модем для подключения к Интернету.

На сервере

Для настройки общего доступа к подключению Интернета необходимо выполнить на сервере указанные ниже действия.

Исходные данные:
Оба компьютера соединены по сети. На сервере установлено две сетевые карты:

  • eth0 — к ней подключен интернет;
  • eth1 — к ней подключена локальная сеть.

Настройте вторую карту (eth1) так:

  • IP: 192.168.0.1
  • Netmask: 255.255.255.0
sudo ifconfig eth1 192.168.0.1 netmask 255.255.255.0
sudo ifconfig eth1 up

Разрешите направление пакетов. Чтобы сделать это, отредактируйте .
Откройте сам файл командой:

sudo gedit /etc/sysctl.conf

А затем вставьте следующую строчку:

net.ipv4.ip_forward=1

Для того, чтобы применить это правило до перезагрузки выполните:

sysctl -w net.ipv4.ip_forward="1"

Затем добавляем правило для NAT:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Где eth0 название вашего интерфейса через который выходите в интернет. Измените его если используете другой интерфейс (напрмер ppp0) тогда команда будет выглядит иначе:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Установите и запустите пакет для раздачи пакетов по сети:

sudo apt-get install dnsmasq

Или, вы можете использовать DNS провайдера.

Чтобы NAT работал после перезагрузки сохраняем настройки в файл:

iptables-save > /etc/iptables.up.rules

И добавляем в конец файла:

sudo gedit /etc/network/interfaces

Эту строчку, для автоматической подгрузки правил:

pre-up iptables-restore < /etc/iptables.up.rules

Также в этот файл добавляем правила роутинга:

up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0

На клиентском компьютере

Установите на втором компьютере:

  • IP: 192.168.0.2
  • Netmask/Маска: 255.255.255.0
  • Gateway/Шлюз: 192.168.0.1
  • DNS: 192.168.0.1

Второй компьютер теперь должен быть подключён к интернету.

Если компьютеров несколько

Можно использовать dnsmasq как DHCP сервер.
Для этого на сервере редактируем файл dnsmasq.conf:

sudo nano etcdnsmasq.conf
interface=eth1 # интерфейс, который будет слушать dnsmasq
 
listen-address=192.168.0.1 # адрес, на котором будет находиться dnsmasq
 
bind-interfaces eth1 # слушать только интерфейс
 
dhcp-range=192.168.0.5,192.168.0.50,255.255.255.0,24h1  # диапазон выдаваемых адресов
 
dhcp-option=3,192.168.0.1 # шлюз по умолчанию 

Перезапускаем dnsmasq:

sudo service dnsmasq restart

Настраиваем клиентские компьютеры на автоматическое получение адреса.

Если после перезагрузки правила iptables не восстанавливаются, добавьте:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

в любой стартовый скрипт (rc.local например).
Вместо eth0 надо написать ppp0, если этот интерфейс получает интернет от провайдера:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Установка и настройка Squid3

Теперь нам нужно установить Squid3 — сам прокси сервер. В статье описаны базовые настройки, для более углубленной настройки, советую почитать документацию по squid.

Устанавливаем пакет squid3

sudo aptitude install squid3

После установки откроем файл /etc/squid3/squid.conf

sudo nano /etc/squid3/squid.conf

В первую очередь найдем строку http_port 3128 и добавим к ней значение intercept и IP адрес сервера, чтобы получилось вот так:

http_port 192.168.0.1:3128 intercept

Это делается для того, чтобы в последующем нам не приходилось настраивать прокси сервер на всех клиентских машинах (прокси будет прозрачным).

Теперь, нужно указать сеть в которой будет работать наш прокси сервер, для этого раскомментируем строку acl localnet src 192.168.0.0/16 # RFC1918 possible internal network и укажем префикс маски сети 24 вместо 16 (так как у нас маска 255.255.255.0). В итоге срока должна выглядеть так:

acl localnet src 192.168.0.0/24 # RFC1918 possible internal network

разрешаем доступ к прокси из внутренней сети, расскомментировав строку

Теперь настроим кэширование. Нужно найти строку cache_dir ufs /var/spool/squid3 100 16 256, раскомментировать её и поменять значения на такие:

cache_dir ufs /var/spool/squid3 2048 16 256

Далее расскомментируем строку maximum_object_size 4 MB, тем самым укажем максимальный размер кэшируемого объекта.

Раскомментируем строку maximum_object_size_in_memory 512 KB, тем самым указываем максимальный объем кэшированного объекта в памяти.

Раскомментируем строку cache_mem 256 MB и заменим занчение с 256 на 1024, тем самым указываем допустимый объем памяти.

Вот мы и настроили кэширование, кэширование должно снизить нагрузку на канал и увеличить скорость открытия страниц. Кэш очищается при перезагрузке сервера.

Теперь включим ведение логов, для этого раскомментируем строку access_log daemon:/var/log/squid3/access.log squid и добавим ниже logfile_rotate 31(файлы логов будут храниться 31 день, после будут перезаписываться самые старые).

На этом базовую настройку squid3 можно завершить. Перезапустим squid3

sudo service squid3 restart

Теперь прокси сервер настроен и запущен, но для того чтобы трафик пользователей шел именно через него, нужно завернуть весь http трафик на squid. Для этого добавляем в /etc/nat строку:

# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128

Собствеенно теперь мой файл /etc/nat имеет такой вид:

#!/bin/sh

#Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

#Разрешаем траффик на lo
iptables -A INPUT -i lo -j ACCEPT

#Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

#Включаем NAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

#Разрешаем ответы из внешней сети
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i eth0 -o eth1 -j REJECT

# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128

Если вы сделали все как написано в статье, значит у вас будет полностью рабочий прокси сервер. В следующих статьях я напишу как установить контент — фильтр Dansguardian и как сделать black list для добавления запрещенных сайтов.

Если остались вопросы, добро пожаловать в комментарии.

130267
72

serversquidubuntu

Установка и запуск 3proxy

3proxy отсутствует в репозиториях Ubuntu, поэтому для установки сначала необходимо скачать его исходник.

Для начала устанавливаем пакет программ для компиляции пакетов:

apt-get install build-essential

Переходим на официальную страницу загрузки 3proxy и копируем ссылку на версию пакета для Linux:

… используя ссылку, скачиваем пакет:

wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz

* в моем случае будет скачена версия 0.9.3.

Распакуем скачанный архив:

tar xzf 0.9.3.tar.gz

Переходим в распакованный каталог:

cd 3proxy-*

Запускаем компиляцию 3proxy:

make -f Makefile.Linux

Создаем системную учетную запись:

adduser —system —disabled-login —no-create-home —group proxy3

Создаем каталоги и копируем файл 3proxy в /usr/bin:

mkdir -p /var/log/3proxy

mkdir /etc/3proxy

cp bin/3proxy /usr/bin/

Задаем права на созданные каталоги:

chown proxy3:proxy3 -R /etc/3proxy

chown proxy3:proxy3 /usr/bin/3proxy

chown proxy3:proxy3 /var/log/3proxy

Смотрим uid и gid созданной учетной записи:

id proxy3

Получим, примерно, такой результат:

uid=109(proxy3) gid=113(proxy3) groups=113(proxy3)

* где 109 — идентификатор пользователя; 113 — идентификатор для группы.

Создаем конфигурационный файл:

vi /etc/3proxy/3proxy.cfg

setuid 109
setgid 113
nserver 77.88.8.8
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
external 111.111.111.111
internal 111.111.111.111
daemon
log /var/log/3proxy/3proxy.log D
logformat «- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T»
rotate 30
auth none
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
proxy -n

* необходимо обратить внимание на настройки setuid и setgid — это должны быть значения для созданной нами учетной записи; external и internal — внешний и внутренний интерфейсы (если наш прокси работает на одном адресе, то IP-адреса должны совпадать). 

Запускаем 3proxy:

/usr/bin/3proxy /etc/3proxy/3proxy.cfg

Настройка вашего браузера для использования прокси

Теперь, когда у вас настроен Squid, последний шаг — настроить предпочитаемый вами браузер для его использования.

Fire Fox

Приведенные ниже шаги одинаковы для Windows, macOS и Linux.

  1. В верхнем правом углу щелкните значок гамбургера чтобы открыть меню Firefox:

  2. Щелкните ссылку .

  3. Прокрутите вниз до раздела « » и нажмите кнопку « .

  4. Откроется новое окно.

    • Установите переключатель « ».
    • Введите IP-адрес вашего сервера Squid в поле и в поле .
    • Установите флажок .
    • Нажмите кнопку , чтобы сохранить настройки.

На этом этапе ваш Firefox настроен, и вы можете просматривать Интернет через прокси-сервер Squid. Чтобы проверить это, откройте , введите «what is my ip», и вы должны увидеть IP-адрес своего сервера Squid.

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

Гугл Хром

Чтобы запустить Chrome с новым профилем и подключиться к серверу Squid, используйте следующую команду:

Linux:

macOS:

Windows:

Если профиль не существует, он будет создан автоматически. Таким образом, вы можете запускать несколько экземпляров Chrome одновременно.

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

Установка и настройка Squid

Устанавливаем squid следующей командой:

sudo apt-get install squid -y

Во-первых, для удобства мы сделаем резервную копию файла просто переименовав его в . А во-вторых, создадим файл конфигурации, убрав все комментарии и пустые строки. Для удобства все наши дальнейшие действия будем выполнять с правами root.

sudo -i
mv /etc/squid/squid.conf /etc/squid/squid.conf.dist
cat /etc/squid/squid.conf.dist | grep -v ^$ | grep -v ^# > /etc/squid/squid.conf

После установки наш прокси-сервер принимает входящие соединения с любых адресов на порту 3128 без какой-либо аутентификации и авторизации.

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

auth_param digest program /usr/lib/squid/digest_file_auth -c /etc/squid/users
auth_param digest children 5 startup=1 idle=1
auth_param digest realm myproxy
acl auth_users proxy_auth REQUIRED

В этот же файл добавьте правило доступа:

http_access allow auth_users

сразу выше строки .

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

auth_param digest program /usr/lib/squid/digest_file_auth -c /etc/squid/users
auth_param digest children 5 startup=1 idle=1
auth_param digest realm proxy
acl auth_users proxy_auth REQUIRED
acl SSL_ports port 443
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 CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access allow auth_users
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
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

Настройка сертификатов в браузере

firefox

Сейчас большинство сайтов используют технологию HSTS для предотвращения MiTM атак, поэтому если вы хотите настроить Squid для фильтрации трафика в своей организации, вам следует добавить сертификат squid.der сгенерированный на предыдущем шаге в браузер. Рассмотрим на примере Firefox. Откройте Настройки -> Защита и приватность -> Просмотр сертификатов -> Центры сертификации.

Затем нажмите кнопку Импортировать и выберите файл squid.der. Отметьте галочки, что следует доверять этому сертификату.

Yandex Browser

Откройте Настройки -> Системные -> Управление сертификатами -> Центры сертификации.

Затем нажмите кнопку Импорт и выберите файл squid.der. Отметьте галочки, что следует доверять этому сертификату.

Дополнительные материалы по Freebsd

Онлайн курс «DevOps практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Рекомендую полезные материалы по Freebsd:
  • Установка
  • Настройка
  • Обновление
  • Шлюз
  • Прокси сервер
  • Веб сервер NGINX
  • Веб сервер Apache

Описание установки Freebsd 11 на одиночный диск, либо на софтовый raid1, сделанный средствами zfs, которые поддерживает стандартный установщик.

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

Описание и нюансы обновления системы Freebsd с помощью утилиты freebsd-update. Показано пошагово на конкретном примере обновления.

Настройка Freebsd шлюза для обеспечения выхода в интернет. Используется ipfw и ядерный нат, dnsmasq в качестве dhcp и dns сервера. Мониторинг сетевой активности с помощью iftop.

Подробная настройка на Freebsd прокси сервера squid + sams2 — панели управления для удобного администрирования.

Настройка максимально быстрого web сервера на базе Freebsd и nginx + php-fpm. Существенный прирост производительности по сравнению с классическим apache.

Настройка web сервера на Freebsd в связке с apache, nginx, php и mysql. Пошаговая установка и настройка каждого компонента.

Related articles on this site:

Create your own Web Content Filter with Squid and Linux Article discusses a Python3 redirector for Squid for the purpose of filtering content. Example provides a starting point for developing a full content filter / ad blocker
Linux Command Line Tips Various Notes on Using and Managing a Linux System from the Command Line
Big Tech is Spying on Us: a collection of articles to freak you out and convince your doubting frie… Big Tech has had a long history of spying on us. It’s in their DNA. If you have your doubts, then review this list of recent evidence.
Examples and Options with tcpdump We review some options and examples for use of tcpdump in network testing and probing.
Don’t Track Don’t Work? Testing shows that Don’t Track doesn’t work. However, identifying tracking sites and blocking them does…

Веб-сервер

Как говорилось ранее, для просмотра отчетов в графическом интерфейсе нам нужен веб-сервер. Для его развертывания, сначала ставим репозиторий EPEL:

yum install epel-release

После ставим nginx:

yum install nginx

Разрешаем автозапуск nginx и стартуем сервис:

systemctl enable nginx

systemctl start nginx

Открываем 80 порт в брандмауэре:

firewall-cmd —permanent —add-port=80/tcp

При необходимости просмотра статистики по https также добавим правило:

firewall-cmd —permanent —add-port=443/tcp

Применяем правила:

firewall-cmd —reload

Открываем браузер и переходим по адресу http://<IP-адрес сервера>/squid-reports/ — должна открыться стартовая страница со списком дат:

Чтобы просмотреть список посещенных сайтов и израсходованного трафика, переходим к нужной нам дате и выберем пользователя, для которого нужно получить статистику. Идентификация пользователей в sarg зависит от идентификации в squid — если проверка не выполняется, то в качестве идентификаторов будут фигурировать IP-адреса.

Немного об альтернативе

Помимо SARG, для SQUID существуют другие анализаторы логов. Они имеют схожие принципы работы — консольный запуск анализа и формирования html-отчетов, и предоставление доступа к статистики посредством веб-интерфейса.

Наиболее популярные альтернативы SARG:

1. Lightsquid. Легкий парсер логов, использующий для анализа журналов скрипты, написанные на perl. Также 

2. Free-SA. Изначально, планировался как замена другим устаревающим анализаторам логов прокси-сервера, но сам проект уже давно не обновлялся. Имеет интерфейс, схожий с sarg.

3. SAMS. В большей степени, это приложение для управления прокси-сервером SQUID, однако в нем предусмотрена также функция сбора статистики посещений сайтов. Подробнее об установке в инструкции Установка и настройка SAMS2 на CentOS.

4. Calamaris. Еще один парсер журналов с хорошей статистикой по нагрузке на прокси.

Service Administration

Fire up Squid

If it is not running you can use (change «squid» to «squid3» if using a Squid 3.x version):-

sudo /etc/init.d/squid3 start|restart|stop

then this will work

squid3 -k reconfigure

Squid caches the web pages it serves. If the cache expiration time of the web page is specified, Squid seems to obey it. If you are serving some of the pages, update your page in the Apache directory, Squid won’t fetch the new version, instead relying on its cached version until its default expiration time. To flush the Squid cache

sudo /etc/init.d/squid3 stop
sudo rm -fr /var/spool/squid3/*
sudo squid3 -z
sudo /etc/init.d/squid3 start

Настройка Squid

Сначала создадим папку для хранения сертификатов, например в /etc/squid/ssl:

Теперь генерируем корневой сертификат собственного CA (Центра сертификации) на основе которого будут подписываться сертификаты для сайтов:

Генерируем корневой сертификат который затем нужно будет добавить в браузер:

Далее надо дать права на папку с сертификатами для Squid:

В файл конфигурации надо добавить такие настройки:

Путь /usr/lib/squid/security_file_certgen (ранее /usr/libexec/squid/ssl_crtd) указывать обязательно иначе будет ошибка. Директива http_access allow all разрешает все подключения к Squid, не используйте её в production версии она добавлена здесь для того, чтобы не засорять конфигурационный файл настройкой доступа и сосредоточится на SSL и прозрачном прокси. Первый порт для http_port — это обычный прокси, к нему можно подключится из браузера, следующие два, с ключевым словом intercept прозрачные, работают только с помощью редиректа в iptables.

Дальше нужно пересоздать базу данных сертификатов:

Сервис Squid должен обязательно иметь права на директорию /var/lib/ssl_db. Следующим шагом включаем ip_forwarding для разрешения проходящего трафика через узел:

Затем можно перезапускать Squid:

Прозрачный прокси Squid HTTPS настроен, осталось настроить редирект и браузер.

Настройка пользователей

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

#/usr/bin/env bash
user=$1
realm=$2
password=$3
if ; then
    echo "Usage $0 user realm "
    exit 1
fi
if ; then
    echo -n Password: 
    read -s password
    echo
fi
digest=$(echo -n "$user:$realm:$password"|md5sum|cut -f1 -d' ')
echo "$user:$realm:$digest"

Сохраните его в папку под именем . Не забудьте изменить права:

chmod +x /etc/squid/genpasswd

А сейчас, с помощью нашего скрипта, создадим файл с единственным, пока, пользователем:

/etc/squid/genpasswd myuser myproxy > /etc/squid/users

Скрипт запросит у вас пароль и запишет строку с аутентификационными данными пользователя в файл . Если нужно, вы можете добавить еще одного:

/etc/squid/genpasswd otheruser myproxy >> /etc/squid/users

В Ubuntu 18.04 демон squid запускает программу аутентификации от имени пользователя proxy, который создается в процессе установки. Поэтому нам надо изменить атрибуты нашего файла с пользователями:

chmod 640 /etc/squid/users
chgrp proxy /etc/squid/users

После всех наших действий перезапустим сервис следующей командой:

systemctl restart squid.service

Но перед этим желательно проверить правильность файла настроек при помощи:

squid -k check

Исходящий сетевой интерфейс

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

vi /etc/squid/squid.conf

acl 217_66_157_33 localip 217.66.157.33
tcp_outgoing_address 217.66.157.33 217_66_157_33
acl 217_66_157_34 localip 217.66.157.34
tcp_outgoing_address 217.66.157.34 217_66_157_34

* в данном примере, при подключении к прокси через IP 217.66.157.33, исходящие пакеты будут от IP 217.66.157.33; аналогично для IP 217.66.157.34.

Перечитываем конфигурацию squid:

squid -k reconfigure

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: