3proxy - бесплатный кроссплатформенный прокси-сервер. Используется для защиты сети, ведения журнала логов, сокрытия IP-адреса, фильтрации трафика и тому подобное. Программа используется без графического интерфейса. Настройка осуществляется путем внесения изменений в конфигурационный файл.
В статье будет представлен первоначальный этап установки и настройки прокси-сервера на основе программы 3proxy в сервере с установленной операционной системы FreeBSD.
I. Отключение службы NAT
Напоминаю, что в развернутой сети на основе FreeBSD-сервера первоначально была настроена служба NAT для организации выхода компьютеров локальной сети в сеть интернет.
При этом все устройства и пользователи получают доступ к глобальной сети без возможности какого-либо контроля со стороны администратора. Установка прокси-программы позволит дополнительно защитить сеть от внешних атак, а также настроить разграничение доступа к сети интернет, исходя из потребностей организации. Кроме того администратор получит дополнительные инструменты для управления сетью.
Если служба трансляции сетевых адресов (NAT) была до этого настроена, то сначала необходимо ее отключить, выполнив действия в следующей последовательности:
- выключить службу NAT, введя команду
service natd stop
- проверить статус службы NAТ (служба должна быть не активна, рисунок 1)
service natd status
- после остановки службы зайти в конфигурационный файл rc.conf
nano /etc/rc.conf
- заменить параметр natd_enable c "YES" на "NO" и закомментировать два параметра (поставить знак # перед строкой). На рисунке 2 эти три строки выделены красной чертой.
Теперь необходимо перезагрузить операционную систему и проверить состояние службы трансляции адресов. Служба должна быть полностью отключена (рисунок 2).
II. Настройка службы 3proxy
Теперь можно приступить к установке службы 3proxy. Для этого нужно ее установить (рисунок 4)
pkg install 3proxy
Затем желательно сделать копию оригинального файла (рисунок 5)
sudo cp /usr/local/etc/3proxy.cfg /usr/local/etc/3proxy.cfg.back
Далее ввести команду на очистку содержимого конфигурационного файла (рисунок 5)
sudo echo > /usr/local/etc/3proxy.cfg
Теперь открыть конфигурационный файл при помощи текстового редактора
nano /usr/local/etc/3proxy.cfg
и записать необходимые настройки в конфигурационный файл (рисунок 6). В примере приведены минимальные настройки, необходимые для работы сервиса. В реальных условиях содержимое конфигурационного файла может быть значительно больше. Сохранить содержимое файла и закрыть его.
Некоторые пояснения к конфигурации:
а) параметр flush сбрасывает существующие списки доступа. Необходим, чтоб можно было задать различные списки доступа для различных служб;
б) параметр daemon - это режим запуска службы 3proxy;
в) параметр nscache выделяет необходимый объём кэша прокси;
г) в параметре nserver прописываются адреса DNS-серверов. В данном случае эта два DNS Google (8.8.8.8, 8.8.4.4). Можно указать DNS-сервера провайдеров, также можно указать более двух серверов;
д) Параметр log /var/log/3proxy/3proxy.log - это путь к логу, в котором будет прописываться список запросов пользователей;
е) в параметре logformat прописывается формат лога, который необходим для службы SARG, которая будет настраиваться в последствии (запись в одну строку)
"- +_G%t.%. %D %C TCP_MISS/200 %I %1-1T %2-2T %U DIRECT/%R application/unknown";
ж) в параметре rotate прописывается числовое значение. Значение показывает: сколько дней будет храниться созданный лог-файл;
з) в параметре external указывается IP-адрес внешнего интерфейса, через который будет осуществляться выход в Интернет;
и) в параметре internal - IP-адрес внутреннего интерфейса. В данном случае это IP-адрес сервера, через который осуществляется подключение к внутренней сети;
к) в параметре auth записывается необходимый тип авторизации (типы авторизации: none, iponly, nbname, strong). В приведенном примере тип авторизации будет по IP-адресу клиентов, находящихся в локальной сети (192.168.1.0/24). Также можно использовать несколько типов авторизации (в этом случае их необходимо записать через пробел);
л) в параметре allow (и также deny) есть три уровня (необязательно все уровни прописывать, так как по умолчанию будет стоять идентификатор «*». Пример: allow * * *):
- первый уровень отвечает за идентификатор пользователя (или имя пользователя). Если использовать символ «*», то правило применяется ко всем пользователям;
- второй уровень отвечает за идентификатор IP-адреса (для кого или в каком диапазоне использовать данное правило). Если использовать символ «*», то правило применяется ко всем IP-адресам. В приведенном примере указан номер сети и префикс сети;
- третий уровень отвечает за идентификатор типа подключения (TCP, UDP и другие соединения). Если использовать символ «*», то правило применяется к любому типу соединения.
м) в параметре maxconn указывается максимальное количество пользователей, которые могут одновременно выходить в глобальную сеть, через прокси-сервер. В данном случае указано, что одновременно могут подключаться 21 пользователь. Можно использовать любое необходимое значение;
н) параметр proxy -p3128 указывает, что для прокси будет использоваться порт 3128;
о) параметр monitor сам обновляет изменение файла 3proxy.cfg. То есть нет необходимости после каждого изменения перезагружать службу (или же систему).
Теперь необходимо добавить службу в автозагрузку. Для этого нужно открыть конфигурационный файл rc.conf
nano /etc/rc.conf
В конфигурационном файле необходимо добавить строку (рисунок 7)
threeproxy_enable="YES"
Для запуска службы вводится команда (рисунок 8)
service 3proxy start
Для проверки работоспособности службы (рисунок 8)
service 3proxy status
Для вывода информации о сетевых соединениях службы 3proxy вводится команда (рисунок 9)
sockstat -4 | grep 3p
На рисунке видно, что на сервере с IP-адресом 192.168.1.254 включен порт 3128. А также осуществляется соединение рабочей станции с IP-адресом 192.168.1.200 через прокси с сервером 204.79.197.239 (microsoft.com) по порту 443 (протокол HTTPS).
III. Проверка работоспособности прокси на рабочей станции с ОС Windows
Настройка прокси осуществляется либо через параметры, либо через панель управления.
Зайти в «Настройки» - «Сеть и Интернет» - «Прокси-сервер». Указать параметры прокси-сервера (рисунок 10). Включить параметр «Использовать прокси-сервер». В ячейке «Адрес» - IP-адрес сервера (в данном примере 192.168.1.254), а в ячейке «Порт» - порт, который был включён в 3proxy (в примере 3128). Кроме того, желательно поставить галочку в опции «Не использовать прокси-сервер для локальных (внутрисетевых) адресов», чтобы была возможность обращаться к веб-службам в локальной сети. После записи настроек необходимо нажать кнопку «Сохранить».
Настройка через панель управления показана на рисунке 11.
При правильной настройке прокси на самом сервере и на рабочей станции интернет-браузер (и сама операционная система) получит выход в сеть интернет (рисунок 12).
IV. Проверка работоспособности прокси на рабочей станции с ОС xUbuntu
Операционная система xUbuntu (как и большинство других ОС с рабочим столом xfce) не имеет системной настройки для прокси. Поэтому необходимо прописать параметры прокси конфигурационный файл environment (здесь и далее для ОС на основе Linux из ветви Debian). Для этого его нужно открыть с правами суперпользователя
sudo nano /etc/environment
и записать строки следующего вида:
proxy_enabled="yes"
http_proxy=http://username:password@АдресПрокси:Порт/
https_proxy=https://username:password@АдресПрокси:Порт/
ftp_proxy=http://username:password@АдресПрокси:Порт/
no_proxy="localhost,127.0.0.1"
Применительно для настраиваемого сервера подключение через прокси осуществляется без ввода логина и пароля (username:password@ - не пишется) и записи будут выглядеть следующим образом (рисунок 13):
В большинстве случаев этих настроек достаточно для системы и для всех пользователей. Тогда интернет-браузер и сама операционная система получает выход в глобальную сеть. Это можно проверить, если дать команду на проверку наличия пакетов обновления и их загрузку (рисунок 14).
Иногда возникает необходимость для создания дополнительного файла в директории /etc/apt/apt.conf.d/. Например, будет создан файл с именем 95proxies.
sudo nano /etc/apt/apt.conf.d/95proxies
Далее в нем необходимо записать параметры прокси (в примере также без ввода логина и пароля):
Acquire::http::proxy "http://АдресПрокси:Порт/";
Acquire::ftp::proxy "ftp:// АдресПрокси:Порт/";
Acquire::https::proxy "https:// АдресПрокси:Порт/";
Для настраиваемого сервера содержимое файла представлено на рисунке 15:
Кроме того, если будет необходимо, то можно отдельно настроить параметры интернет-браузера Firefox (это можно сделать и при отсутствии прав суперпользователя). Для этого нужно зайти в настройки браузера, выбрать настройку сети и указать параметры прокси-сервера (рисунок 16).
При правильной настройке прокси на самом сервере и на рабочей станции интернет-браузер получит выход в сеть интернет (рисунок 17).