Журнал LinuxFormat - перейти на главную

LXF85:Ideco ICS

Материал из Linuxformat
Перейти к: навигация, поиск

О SmoothWall, IPCop и Astaro Security Firewall слышали многие. Сегодня Михаил Журухин расскажет вам об отечественной разработке – Ideco Internet Control Server

Содержание

IDECO: Internet Control Server

LXF85-Ideco-1.png

Все крупные фирмы, которые сейчас присутствуют на IT-рынке, когда-то были всего лишь start-up компаниями и начинали с малого. Обратное, к сожалению, неверно – по данным информационного агентства «Курсор», в первом полугодии 2006 г. закрылось более половины новых «start-up’ов»! Молодые компании нестабильны, подвергаются большому давлению со стороны конкурентов и… закрываются. Но некоторым удается выжить. Так, в 2002 г. небольшой коллектив единомышленников – сотрудников УГТУУПИ (г. Екатеринбург), рискнул выйти на рынок со своей разработкой – комплексным решением по контролю доступа в Интернет, подсчету трафика и защите локальной сети и серверов предприятия. Проект участвовал в конкурсе «Старт» Российского государственного фонда развития и предпринимательства в научно-технической сфере (фонд Бортника) и получил грант на коммерциализацию продукта.

В 2005 уже сформировавшийся продукт Ideco Internet Control Server получил золотую медаль на выставке в ВВЦ(ВДНХ) (г. Москва), а также был представлен и на крупнейшей в России выставке программного обеспечения Softool’2005. Сейчас Ideco ICS успешно развивается, и, как утверждают разработчики, уже бросил вызов Microsoft ISA Server.

В последнее время на рынке все чаще и чаще стали появляться готовые коммерческие решения на базе ОС Linux. Это и брандмауэры, и маршрутизаторы, почтовые шлюзы и прочие системы класса «поставил и забыл». Обычно такие системы стоят где-нибудь в углу серверной комнаты и работают круглосуточно, передавая пакеты из локальной сети в Интернет и обратно.

Ideco ICS относится к классу подобных систем и является Интернет-шлюзом, который предоставляет доступ в сеть всем пользователям. Сегодня организация, столкнувшаяся с проблемой учета трафика и контроля доступа при использовании Интернет-канала, может пойти несколькими путями:


С первыми тремя пунктами все ясно: все системные администраторы, так или иначе, имели с ними дело. Последний пункт – самый заманчивый. Комплексных решений, тем более на базе ОС Linux, не слишком много, и Ideco ICS является интересным представителем этой категории продуктов. В числе его возможностей: фильтрация трафика, блокирование рекламы, интеллектуальная приоритизация трафика (QoS), удаленное подключение сотрудников и подразделений, почтовый сервер с антивирусом, корпоративный web-сервер, DHCP, шейпер трафика, FTP-сервер.

При этом все компоненты Ideco ICS легко настроить. Интерфейс продукта можно назвать дружественно-интуитивным, поэтому Ideco ICS может настроить и человек, не знакомый с Linux.

Установка и управление

Установка происходит на чистый компьютер, т.к. Ideco не соседствует с другими ОС. Инсталляция происходит в автоматическом режиме и не отнимает много времени. В результате получается уже настроенная система, остается только произвести «доводку»: ввести пароль (по умолчанию – «servicemode») и получить доступ к настройкам. В разделе «Конфигурирование сервера» вводятся IP-адрес, маска подсети, имя сервера, параметры VPN и DNS.

Управление сервером осуществляется с любой рабочей станции Windows с помощью Ideco ICS Manager или через web-интерфейс. Здесь создаются тарифные планы, происходит управление пулами IP-адресов, добавление и удаление пользователей. Теперь, когда система работает, самое время узнать, как и почему.

Принцип работы

Сервер имеет два сетевых интерфейса: один интерфейс подключен к Интернету, а второй – к локальной сети предприятия. Принцип работы хорошо известен: сервер подключается к Интернету и имеет реальный IP-адрес. Все остальные компьютеры получают доступ к сети через шлюз по технологии NAT (Network Address Translation) и имеют «фиктивные» адреса, чаще всего, вида 192.168.x.y. В случае необходимости, сервера, расположенные за периметром брандмауэра, могут получить через VPN реальный IP-адрес. Поддерживается и публикация серверов с помощью отображения портов DNAT.

Пользователи подключаются к шлюзу с помощью технологии VPN, что позволяет ввести надежную схему аутентификации. Учет трафика также ведется по пользователям, а не по компьютерам (IP-адресам).

Иногда у пользователей локальной сети, находящихся в другом городе или просто вне здания организации, возникает потребность обратиться к ресурсам родной локальной сети. Любому пользователю Ideco ICS можно разрешить доступ из Интернета к локальной сети; при этом VPN-канал, разумеется, шифруется.

Внутреннее устройство

LXF85-Ideco-2.png

В основе Ideco Internet Control Server лежит Red Hat Linux 9.0, однако, за время своего существования продукт был практически полностью переделан. Система включает в себя такие компоненты, как ядро 2.4.24 i686 SMP, poptop-1.2.1 (открытая реализация протокола PPTP, используется для создания VPN), база данных Firebird (открытый аналог Interbase) и другие. В системе присутствуют и модули собственной разработки: основной демон управления в реальном времени, который управляет подключением-отключением пользователей, правилами iptables, подсчетом баланса и синхронизацией с базой данных, а также сборщик и агрегатор статистики.

В процессе установки системы жесткий диск будет разбит на четыре раздела. На одном из них стоит сервер, с него же загружается система. Этот раздел не изменяем. На втором разделе содержатся данные: здесь находятся файл конфигурации и база данных пользователей со статистикой. Однако, с этого раздела запрещено исполнять файлы.

Это сделано по соображениям безопасности. Вообще же безопасность в этой системе стоит на первом месте.

Посудите сами. В системе нет пользователя root, и даже администратор работает не от root и только в chroot-окружении. Многие открытые компоненты, в том числе ядро Linux, подверглись переработке. Ядро Linux было пересобрано, и на него наложены security-патчи (как стороннего, так и собственного производства), которые предоставляют дополнительные возможности. Эти возможности активируются через ветку /proc/kmask. Перечислим наиболее интересные из них. Опции включаются записью единицы в соответствующий файл. Отменить опцию невозможно – даже пользователю root.


Используется монолитное ядро, собранное без поддержки модулей – во избежание внедрения руткитов.

Особое внимание также уделяется защите системы и локальной сети от атак злоумышленников. По умолчанию, все правила системного брандмауэра настроены на максимальную защиту и ни один порт сервера недоступен из Интернета. Используется уже стандартная на сегодня политика типа «deny, allow», то есть все, что не разрешено явно, запрещается. При этом через пользовательский межсетевой экран нельзя создать правила, уменьшающие безопасность сервера Ideco ICS – только правила-ограничения для пользователей.

Имеется функция фильтрации содержимого, позволяющая запретить загрузку из Сети определенных типов файлов (например, MP3, AVI и др.) и рекламы. В брандмауэре можно включить качественный шейпер с очередями, это позволяет ограничить ширину канала для конкретного пользователя или протокола. Такими возможностями сейчас никого не удивишь, во всех современных шлюзах они должны быть.

Права и возможности служб (capabilities) изменены и максимально ограничены, что уменьшает вероятность внедрения эксплойтов, т.к. с установленными значениями capabilities выполнить запрещенные действия становится весьма затруднительно.

Используя стандартные capabilities ядра Linux, можно гибко ограничивать возможности процессов, что особенно важно для приложений, работающих от имени root. Установка производится либо для всех создаваемых процессов командой lcap, либо для каждого процесса отдельно командой setpcaps. Администраторы Linux редко пользуются capabilities и, на взгляд разработчиков Ideco ICS – напрасно. Это стандартная возможность ядра, которая значительно повышает защищенность системы в целом.

LXF85-Ideco-3.png
LXF85-Ideco-4.png
LXF85-Ideco-5.png
LXF85-Ideco-6.png

Для улучшения безопасности системы используется технология chroot. Chroot – это всего-навсего каталог, содержащий миниатюрную копию файловой системы Linux. Поддерево chroot содержит только те файлы, которые необходимы для работы нашей службы. Служба, запущенная в chroot, не влияет на корневую файловую систему, и другие программы, которые выполняются не в chroot-окружении, не могут повлиять на работу службы. В Ideco ICS используется специальный усиленный chroot – root не может выйти за его пределы, поэтому, если будет найдена уязвимость в одной из служб, это не приведет к нарушению безопасности всей системы.

При старте службы ей устанавливается приоритет. Службы, отвечающие непосредственно за передачу пакетов, имеют наивысший приоритет, а, например, агрегатор статистики – наименьший.

Так как root в системе отсутствует, некоторые административные операции производятся через модуль обработки системных команд – execd. Все подобные задачи: отправка уведомлений, перезагрузка сервера, создание резервных копий и т.п., становятся в очередь сообщений POSIX. Execd читает данную очередь и выполняет задачи последовательно. Довольно необычный подход, в Linux традиционно используется sudo; однако здесь администратор находится в chroot, и sudo не поможет.

Статистика в Ideco ICS собирается демоном собственной разработки. Демон работает с приоритетом реального времени через интерфейс ulog и сохраняет статистику в файлы, которые затем в два этапа обрабатываются агрегатором.

В сервер встроена возможность периодического резервного копирования БД и конфигурационного файла на CD-диск. Стоит отметить, что вся конфигурация сервера находится в одном файле, что упрощает восстановление при аппаратных сбоях или переносе системы на другой компьютер.

Для повышения надежности и отказоустойчивости системы используется Watchdog.

Watchdog работает как виртуальный администратор: следит за работой системы, останавливает и перезапускает «подвисшие» процессы, при необходимости осуществляет «мягкий» перезапуск системы и посылает сообщения администратору.

Для отслеживания состояния служб Watchdog использует PID-файлы в каталоге /var/run. Если PID-файл службы есть, а процесс не найден, то служба перезапускается. Для всех процессов проверяется объем используемой памяти и потребление процессорного времени. Если процесс превысил установленные лимиты, то он уничтожается. Также Watchdog проверяет свободное место на диске и другие критические параметры, и в случае необходимости предупреждает администратора или, в крайнем случае, переводит систему в runlevel 2 – своего рода SAFEMODE.


При загрузке система проводит самотестирование: проверяет параметры оборудования, состояние файловой системы и базы данных, а также сверяет контрольные суммы всех исполняемых файлов. Раздел с исполняемыми файлами монтируется в режим ro, а после загрузки всем исполняемым файлам выставляется атрибут Immutable и общий системный флаг Immutable. После этого даже root не может изменить системные файлы. Веьма разумный подход; удивительно, почему популярные дистрибутивы Linux его не используют.

В системе присутствует интеллектуальный модуль Quality of Service (QoS) для автоматического определения приоритета трафика.

Для того, чтобы использовать очереди на входящий трафик, на ядро были наложены дополнительные патчи. По словам разработчиков, из всех протестированных патчей наиболее результативным показал себя IMQ, который создает hook в iptables-таблице mangle. Однако, IMQ работает только при скоростях не более 10 Мбит, и, чтобы очереди на базе IMQ работали при больших скоростях, необходимо перевести ядро в режим 1000Гц, а netsheduler – в режим отсчета тиков от RTC-таймера вместо jiffies.

Интеллектуальная приоритезация осуществляется маркировкой пакетов в зависимости от скорости соединения и протокола. Когда пакет попадает в очередь HTB устройства IMQ, то на основе маркировки он помещается в свой класс, т.е. своего рода подочередь. Соответственно, пакеты высокоскоростных прожорливых соединений, например, скачивание файлов, не задавят более важные пакеты, например, ssh. Кроме этого, используется очередь sfq, и пакеты разных соединений, находящихся в очереди, выходят из нее по принципу рулетки, что позволяет равномерно распределить канал между пользователями и между приложениями.

В Ideco ICS имеются и дополнительные сервисы: почтовый сервер Postfix с антивирусом ClamAV, web-сервер с поддержкой PHP и MySQL. Также присутствует FTP-сервер Vsftpd и «служба точного времени» ntpd. Все службы запускаются в своих chroot каталогах.

Кто-то скажет, что все возможности Ideco ICS можно реализовать и на обычных дистрибутивах Linux. Это действительно так, и при должной квалификации персонала задача реализуема, но сколько она отнимет сил и времени? В результате будет получено, хотя и оптимизированное под нужды конкретного предприятия, но все же единичное решение – и в другой раз, возможно, придется все начинать с нуля. Ideco ICS, напротив, типовое решение, проверенное и работающее во многих организациях.

Какая польза сообществу Open Source от подобных коммерческих проектов? В результате внимательного тестирования Linux и использования его в типовых решениях выявляются уязвимости и ошибки. Исправления для них передаются разработчикам соответствующих открытых проектов. Кроме этого, проводится своего рода «селекционный отбор», и в коммерческие решения попадают только самые проверенные и зрелые разработки. Таким образом, это не просто эксплуатация Linux в коммерческих продуктах, это тесное сотрудничество, позволяющее совершенствовать Open Source и продвигать Linux на корпоративный рынок.

Персональные инструменты
купить
подписаться
Яндекс.Метрика