Прокси-сервер является важным инструментом для организации сетевого доступа в организации. Он позволяет контролировать и фильтровать трафик, повышать безопасность и эффективность работы сети. Одним из наиболее популярных решений для настройки прокси-сервера является Squid – свободно распространяемое программное обеспечение с открытым исходным кодом. В данной статье мы рассмотрим процесс установки и настройки Squid на операционной системе CentOS 7.
Для управления доступом пользователей к прокси-серверу на базе Squid используется система учета и контроля доступа SAMS2. SAMS2 позволяет определить права доступа для различных пользователей и групп, а также контролировать использование прокси-сервера. Взаимодействие между Squid и SAMS2 осуществляется посредством модуля SquidGuard.
Установка и настройка прокси-сервера Squid с использованием SAMS2 на CentOS 7 требует выполнения нескольких шагов. Во-первых, необходимо установить сам прокси-сервер Squid и модуль SquidGuard. Затем следует выполнить настройку Squid, включая настройку прав доступа и параметров фильтрации. После этого производится установка и настройка SAMS2, включая создание базы данных пользователей и групп и настройку прав доступа.
Установка Squid на CentOS 7
Прежде чем начать установку Squid на CentOS 7, не забудьте обновить систему и выполнить все необходимые обновления. Это можно сделать с помощью следующих команд:
sudo yum update
Теперь, когда система обновлена, мы готовы установить Squid. Для этого выполните следующую команду:
sudo yum install squid
После завершения установки убедитесь, что служба Squid запущена:
sudo systemctl start squid
Теперь, когда Squid успешно установлен и запущен, вы можете настроить его для использования в качестве прокси-сервера.
Установка пакета Squid
Перейдите в терминал и выполните следующую команду:
sudo yum install squid
Данная команда установит пакет Squid из официального репозитория CentOS 7.
После того, как установка завершится, можно приступить к настройке прокси-сервера Squid.
Конфигурация squid.conf
В этой таблице представлены основные параметры конфигурации squid.conf:
Параметр | Описание | Значение по умолчанию |
---|---|---|
http_port | Порт прослушивания HTTP-трафика | 3128 |
visible_hostname | Имя хоста прокси-сервера, отображаемое в HTTP-заголовках | none |
acl | Определяет список доступа (Access Control List) | none |
http_access | Определяет правила доступа к ресурсам на основе ACL | allow all |
cache_dir | Директория для кэширования ответов серверов | none |
cache_mem | Определяет объем памяти, выделяемой для кэша | 256 MB |
cache_mgr | Адрес электронной почты администратора прокси-сервера | webmaster@localhost |
Данные параметры могут быть изменены в соответствии с требованиями и настройками вашей сети. Вам также может быть интересно ознакомиться с другими параметрами конфигурации Squid для более тонкой настройки сервера.
Настройка брандмауэра
При настройке прокси-сервера Squid на CentOS 7 с использованием SAMS2 необходимо также учитывать конфигурацию брандмауэра для обеспечения безопасности сети.
Для начала следует установить фильтр пакетов iptables, если он не установлен:
# yum install iptables
Затем необходимо настроить правила брандмауэра для разрешения соединений на порты, используемые прокси-сервером Squid.
Ниже приведены основные правила iptables для разрешения входящих и исходящих соединений на порты, используемые Squid:
# iptables -A INPUT -p tcp --dport 3128 -j ACCEPT # iptables -A OUTPUT -p tcp --sport 3128 -j ACCEPT
Также рекомендуется разрешить доступ на порт 80 для исходящих соединений:
# iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
Эти правила будут позволять входящие и исходящие соединения на порт 3128 (используемый Squid) и исходящие соединения на порт 80 (для доступа к веб-сайтам через прокси-сервер).
После настройки правил брандмауэра следует сохранить их для дальнейшего использования:
# service iptables save
Теперь брандмауэр будет настроен для разрешения соединений на порты, используемые прокси-сервером Squid. Это обеспечит безопасность сети при использовании прокси-сервера.
Настройка SAMS2 для аутентификации пользователей
Для обеспечения аутентификации пользователей через SAMS2 на прокси-сервере Squid необходимо выполнить следующие действия:
- Проверить доступность SAMS2 сервера. Убедитесь, что сервер SAMS2 находится в рабочем состоянии и доступен для подключения.
- Установить необходимые пакеты на прокси-сервер. Воспользуйтесь командой
yum install python-requests
для установки пакетаpython-requests
. - Создать файл конфигурации для SAMS2 аутентификации. Скопируйте пример конфигурационного файла
sams2-auth.conf
в директорию/etc/squid/
. - Отредактируйте файл конфигурации. Укажите адрес сервера SAMS2 в параметре
sams2_server
и порт в параметреsams2_port
. - Укажите список разрешенных групп пользователей. Для этого отредактируйте параметр
allowed_groups
и укажите идентификаторы групп через запятую. - Создайте SAMS2 helper для Squid. Скопируйте скрипт
sams2_auth.py
в директорию/usr/lib/squid/
и сделайте его исполняемым. - Отредактируйте файл
squid.conf
прокси-сервера. Добавьте следующие строки в секциюacl
: acl sams2_auth proxy_auth REQUIRED
acl allowed_users external sams2_auth
- Добавьте следующую строку в секцию
http_access
для разрешения доступа только аутентифицированным пользователям: http_access allow allowed_users
- Перезапустите прокси-сервер Squid, чтобы применить настройки:
systemctl restart squid
После выполнения всех указанных действий пользователи будут аутентифицироваться через SAMS2 при попытке доступа к прокси-серверу Squid.
Установка и настройка SAMS2
Для установки SAMS2 вам понадобятся следующие шаги:
- Установите зависимости:
sudo yum install gcc-c++ make openssl-devel perl-ExtUtils-MakeMaker perl-Test-Simple
- Скачайте и распакуйте исходные файлы SAMS2:
wget https://github.com/ddeniskin/sams2/archive/master.zip && unzip master.zip
- Перейдите в директорию с распакованными файлами:
cd sams2-master
- Скомпилируйте и установите SAMS2:
sudo make && sudo make install
- Настройте SAMS2, отредактировав файл конфигурации:
sudo vi /etc/sams2/sams2.conf
- Создайте базу данных MySQL для SAMS2:
sudo mysql -u root -p -e "CREATE DATABASE sams2;"
- Импортируйте структуру базы данных:
sudo mysql -u root -p sams2 < sams2-master/sql/mysql.sql
Примечание: перед тем как продолжить, убедитесь, что у вас установлен и настроен MySQL сервер.
Теперь SAMS2 установлен и настроен для использования вместе с прокси-сервером Squid.
Настройка squid.conf для работы с SAMS2
1. Откройте файл squid.conf в текстовом редакторе:
/etc/squid/squid.conf
2. Добавьте следующие строки в начале файла:
### Настройки для работы с SAMS2 ###
### Аутентификация пользователя ###
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/sams_redirector
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
### Авторизация пользователя ###
acl sams_users proxy_auth REQUIRED
### Правила доступа для SAMS2 ###
http_access deny !sams_users
http_access allow sams_users
3. Добавьте следующие строки в раздел иерархии:
### Раздел иерархии ###
### Отключение кэша для родительских прокси-серверов ###
hierarchy_stoplist cgi-bin ?
no_cache auth
cache_mem 256 MB
cache_dir ufs /var/spool/squid 10000 16 256
### Раздел аутентификации ###
### Аутентификация пользователя ###
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/sams_redirector
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
### Авторизация пользователя ###
acl sams_users proxy_auth REQUIRED
### Правила доступа для SAMS2 ###
http_access deny !sams_users
http_access allow sams_users
4. Сохраните файл и закройте редактор.
5. Перезапустите службу Squid для применения изменений:
systemctl restart squid
Теперь Squid настроен для работы с SAMS2. Пользователи, успешно авторизованные в SAMS2, смогут использовать прокси-сервер для доступа к веб-ресурсам.