На данный момент проблема безопасности в офисах белорусских компаний разных уровней остается весьма острой. И если атак со стороны взломщиков ждать не приходится, а если таковые и бывают, то весьма редко, то вредоносное программное обеспечение - самая настоящая неприятность, которая присутствует практически везде.
Конечно, довольно часто виной локальных эпидемий в периметре компании являются ее сотрудники, которые работают с flash-накопителями и часто приносят "заразу" извне. Тем не менее, работа в сети Интернет также является одной из причин эпидемий, пускай и не первой. Стоит заметить, что актуальное состояние антивирусных программ на машинах сотрудников офиса частично решает проблему, но вместе с тем делает ее индивидуальной в некотором роде и рассредоточенной. Для большей надежности необходимо применять и глобальные решения по защите.
Многие подумали, что я имею в виду корпоративный антивирус с контрольным центром у системного администратора сети, но это не так. На самом деле дополнительным барьером на пути вредоносного программного обеспечения является proxy-сервер, который служит шлюзом между глобальной сетью и внутренней локальной.
Наша задача сегодня - модифицировать proxy-сервер на Squid, под управлением Ubuntu Server 10.10. Использование unix-based системы в качестве операционной - классический вариант для прокси-шлюзов, т.к. это не только экономит ресурсы, но и позволяет произвести более тонкую настройку.
Архитектура
Т.к. у нас не планируется прокси для Пентагона :), количество инцидентов, связанных с безопасностью, в целом будет небольшое, однако это не повод оставить саму безопасность без внимания. Поэтому мы поступим рационально и выстроим периметр защиты, способный противостоять актуальным проблемам, не вдаваясь в дебри, предназначенные для инженеров по ИБ.
Схема работы довольно проста и ее можно проследить на рисунке.
При подключении к внешним ресурсам хост офисной локальной сети будет отправлять запрос на прокси. На самом прокси-сервере будет следующая цепочка пакетов: Squid+ClamAV+DansGuardian.
Squid - собственно, сам прокси-сервер, который и будет взят за основу при построении периметра защиты от вредоносного ПО.
ClamAV - антивирусный пакет, который выступит в роли сканера трафика, при этом будет поддерживаться в постоянном актуальном состоянии.
DansGuardian - система фильтрации контента, будет стоять между прокси-сервером и пользователем, тем самым обеспечивая контроль над расширениями файлов в трафике и контроль за пользователями, кроме прочего.
Итак, теперь можно приступить к реализации периметра. Как я уже говорил, за основу берется чистый прокси Squid на Ubuntu Server.
Установка ClamAV
Все операции мы будем производить от пользователя с правами sudo:
$ sudo apt-get install clamav-daemon clamav-freshclam
Этой командой мы установили сканер ClamAV и его дополнение freshclam, о предназначении которого можно догадаться по названию. Дефолтных настроек антивируса нам хватит вполне, учитывая, как я уже говорил выше, то, что наш офис - не горячая точка. Однако, если кому-то необходима особенная конфигурация и он знает, что делает - прошу в /etc/clamav/, тут у нас расположены конфигурационные файлы.
Далее переходим к дополнению freshclam, которое призвано содержать базы вирусных сигнатур сканера в актуальном состоянии. По дефолту обновления происходят каждый час, если надо их участить, то необходимо поправить конфиг. Открываем конфигурационный файл командой:
$ sudo nano /etc/clamav/freshclam.conf
В нем находим строчки:
# Check for new database 24 times a day Checks 24
Они нам говорят, что в течение каждых 24 часов базы обновляются 24 раза, т.е. 1 раз в час. Изменим checks на 48 и получим обновления каждые 30 минут.
Теперь все, оставляем ClamAV в покое на некоторое время.
Установка DansGuardian
Итак, переходим к пакету, который будет заниматься фильтрацией трафика. Устанавливаем:
$ sudo apt-get install dansguardian
Готово, теперь переходим к настройке системы в целом. Поскольку теперь с пользователями будет контактировать не Squid, а DansGuardian, нам необходимо настроить страницы ошибок и предупреждений. Для этого производим некоторые настройки в файле конфигурации пакета:
$ sudo nano /etc/dansguardian/dansguardian.conf
Находим следующую строку:
language = 'russian'
Она определяет язык отображаемых шаблонов. Если он не russian, то делаем его таковым. После этого нам необходимо править шаблоны страниц в соответствующем каталоге. Просматриваем его содержимое:
$ sudo ls /etc/dansguardian/languages/russian/
Теперь видим количество шаблонов. Следующий шаг - их редактирование. Делается это командой:
$ sudo nano /etc/dansguardian/languages/russian/template.html
Название файла шаблона меняем соответственно.
Теперь возвращаемся к конфигурированию и опять идем в:
$ sudo nano /etc/dansguardian/dansguardian.conf
Находим в тексте файла следующие строчки:
filterip = x.x.x.x filterport = 8080
Это настройки доступа к DansGuardian. Пункту filterip присваиваем IP-адрес нашего прокси-сервера. Порт оставляем как есть - дефолтное значение подойдет.
Далее переходим к строчкам:
proxyip = 127.0.0.1 proxyport = 3128 #contentscanner = '/etc/dansguardian/contentscanners/clamav.conf'
В proxyip указываем, опять же, IP-адрес нашего прокси, тут нужен адрес, на котором работает Squid. В proxyport указываем значение порта Squid, если при установке squid вы не меняли порт, то оставляем его 3128 - это дефолтное значение. Последняя строка указывает, что в качестве сканера для трафика будет использоваться ClamAV - убираем #, т.е. раскомментируем строку.
В завершении стоит убрать строчку "UNCONFIGURED - Please remove this line after configuration" в конце файла, это позволит приложению понять, что файл конфигурации отличается от стандартного.
Рестартим демон:
$ sudo /etc/init.d/dansguardian restart
Готово. Теперь все работает, однако можно еще более тонко настроить все. Каталог /etc/dansguardian/lists содержит все файлы конфигурации, которые относятся к фильтрации трафика. А каталог /etc/dansguardian/lists/contentscanners содержит исключения по расширениям для антивирусного сканера - также крайне важный элемент для тонкой настройки.
Настройка системы
В завершении хочу дать пару рекомендаций по настройке системы для работы с такой связкой. Рассмотрим два варианта:
- Система чистая и на ней был установлен только Squid, больше ничего не изменялось (до того, как мы вмешались).
- Система полноценно функционировала только с Squid, имеются определенные настройки.
Вариант первый - самый простой. Мы имеем "голую" систему, без настройки фильтра пакетов (сетевого экрана). Чтобы прикрыть "дыры" и не позволять "вольностей" пользователям прокси, надо активировать пакетный фильтр, закрыть все порты, кроме 8080, через который осуществляется взаимодействие пользователей с DansGuardian. Выполняем следующие команды:
$ sudo ufw default DENY
Все закрыли
$ sudo ufw ALLOW 8080
Открыли порт 8080
$ sudo ufw enable
Активировали пакетный фильтр. Все.
Второй вариант. Пользователи уже работают в сети через порт 3128, напрямую через Squid. Однако, чтобы трафик сканировался антивирусом и фильтровался DansGuardian, надо, чтобы порт 3128 был закрыт для всех (во избежание обхода фильтров трафика) и открыть порт 8080.
Выполняем две соответствующие команды:
$ sudo ufw ALLOW 8080 $ sudo ufw DENY 3128
Все готово.
Заключение
Итак, теперь мы имеем периметр защиты от вредоносного ПО, который отвечает требованиям обычного офиса в Беларуси. Мы настроили антивирусный сканер трафика, установили правила по загрузке контента и, кроме того, настроили сетевой экран, что немного повысило безопасность в области портов прокси-сервера.
Евгений КУЧУК,
www.sa-sec.org
Горячие темы