Введение
Я успешно разобрался с настройкой 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.
-
В верхнем правом углу щелкните значок гамбургера чтобы открыть меню Firefox:
-
Щелкните ссылку .
-
Прокрутите вниз до раздела « » и нажмите кнопку « .
-
Откроется новое окно.
- Установите переключатель « ».
- Введите 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: |
Описание установки 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