Основной задачей, серверов является быть площадкой для функционирования серверного ПО или предоставления сервиса от (англ. Service - Сервис). Одним из основных сервисов в офисе, является сервис доступа к Internet для сотрудников офиса. Данный сервис необходимо предоставлять для сотрудников в целях осуществления ими своих служебных обязанностей. Обычно данный сервис, предоставляется по заранее определенным правилам для данного офиса или сотрудников.
Классическим вариантом для предоставления данного сервиса является ОС CentOS 7 + Squid.
Данная Связка очень распространена. Будем считать, что у нас имеется уже установленная ОС CentOS7 с подключением в интернет и доступна по порту 22 ssh для настройки.
Установка
Первое, что нам необходимо сделать это обновить ОС.
yum update
Если машина является прокси сервером, то логично предположить, что у нее должен быть включен Firewall, следовательно, нам нужно открыть во внутрь порт, на который сервис squid будет принимать подключения от клиентов внутренней сети. В большинстве случаев используют порт 3128, но можно взять любой не занятый.
Настраиваем правило на Firewall:
firewall-cmd --permanent --add-port=3128/tcp
И обязательно надо перезапустить сервис:
firewall-cmd --reload
Далее переходим к установке и настройке непосредственно самого Squid. Установка производится следующей командой:
yum install squid -y
Открываем файл конфигурации для правки и добавления:
nano /etc/squid/squid.conf
В конфигурации прописаны стандартные подсети, но иногда подсеть пользовательских ПК не совпадает со стандартной или не входит, то вносим ее в конфигурационный файл acl localnet src 217.33.25.0/24
Чтобы наш прокси сервер пропускал любой трафик, необходимо добавить следующую строчку в конфигурацию http_access allow all
Очень важно, чтобы данная строчка была в конфигурации выше строчки запрещающего правила. Запрещающая строчка выглядит так: http_access deny all
Следующим шагом необходимо настроить каталок для кэша:
cache_dir ufs /var/spool/squid 8192 32 256
В данной команде ufs - файловая система для squid данная файловая система используется для squid, путь для хранения кэша, 8192 - размер в МБ сколько будет выделено под кэш, 32 количество каталогов первого уровня для размещения кэша, 256 количество каталогов второго уровня.
Следующим шагом будет создание структуры директорий для кэширования. Это можно сделать следующей командой: squid -z и вот наш прокси-сервер уже готов можно запускать прокси сервер, командой: systemctl start squid
. А чтобы необходимый сервис запускался автоматически после перезагрузки или отключения сервера добавляем сервис наш в автозапуск: systemctl enable squid
Дополнительной настройки для https не требуется все должно работать по умолчанию. И обязательно перезагрузить squid следующей командой systemctl restart squid
Для управления squid можно пользоваться командой service status squid, service stop squid.
Если сделанные изменения не затрагивают глобальных параметров, можно вообще не перезапускать сервис целиком, а дать команду squid перечитать конфиг squid -k reconfigure
. Сервер для приема и проксирования соединений готов. Следующей задачей является настройка клиентских ПК для его использования. Если офис не большой 20-30 пользователей можно решить задачу, что называется в лоб. Сделать настройку в браузере в ручном режиме: Идем, Панель управления → Свойства Браузера → Подключения → Настройка сети → убираем галочку "Автоматическая настройка сети", добавляем галочку в поле "Прокси-Сервер", использовать прокси сервер для локальных подключений, в поле адрес прописываем или FQDN имя сервера и в поле порт 3128.
Важный момент! FQDN имя сервера должно правильно разрешатся в DNS службе, указанной в настройках сетевого подключения. Проверить можно просто, открываем командную строку и пишем nslookup FQDN
, если команда возвращает правильный ip адрес, то все сделано правильно.
Рассмотрим вариант, когда у нас большое количество пользовательских ПК 100+. Естественно в такой ситуации проблематично сразу, всем сделать настройку для использования прокси-сервера.
Самый оптимальный путь в данном случае это настройка параметров браузера, через WPAD файл и доставка на ПК сотрудника через web сервис.
Устанавливаем web сервис:
yum install httpd -y
Переходим в рабочий каталог:
cd /var/www/html
Создаем новый файл командой touch wpad.dat
и приводим его вот к такому виду, как на картинке:
Файл состоит из java скрипта основная строчка return "PROXY FQDN:3128"; Это то, что попадет в настройки в веб браузеры ваших пользователей. Первая часть готова! Далее нам надо доставить данные настройки конечным пользователям. В этом нам поможет DHCP. Можно конечно сделать, через DNS, но там больше мороки на мой взгляд. Проще всего использовать DHCP сервер, но для этого необходимо внести коррективы и добавить дополнительную опцию 252, где будет указан url файла авто настройки. Данная опция может применятся на машину или на целую подсеть, а далее уже вместе с остальными настройками попадает на конечную машину пользователя.
Запускаем веб и ставим в автозагрузку:
systemctl start httpd systemctl enable httpd
DHCP сервер настраивается следующим образом:
Открываем консоль управление DHCP сервера. В свойствах сервера выбираем управление опциями -Set predefined Option. И добавляем опцию 252 - Имя -WPAD, код 252 Тип данных - String, Описание Web Proxy WPAD.
Затем в поле String добавляем значение URL по умолчанию и сохраняем параметр. После этого мы можем данную опцию применять, либо к серверу в целом либо к определенной областиподсети адресов.