Вы находитесь на странице: 1из 3

21.11.

2018 LXF85:Ideco ICS — Linuxformat

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

Содержание [убрать] 
1 IDECO: Internet Control Server
1.1 Почему именно Firebird?
1.2 Установка и управление
1.3 Принцип работы
1.4 Внутреннее устройство

IDECO: Internet Control Server


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

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

Установить аппаратный маршрутизатор или Firewall + компьютер с программой обработки статистики и


Компоненты Ideco ICS
управления.
Использовать собственные разработки на базе Linux/FreeBSD. Linux 2.4.24 i686 SMP firebird 1.0.3.972-0.64IO
Использовать программы и службы под Windows.
poptop-1.2.1 iptables 1.2.9a-2
Развернуть комплексное решение, реализующее необходимые функции.
pppd 2.4.2 dnrd 2.17
С первыми тремя пунктами все ясно: все системные администраторы, так или иначе, имели с ними дело.
thttpd 2.23 dhcpd 3.0pl1-2
Последний пункт – самый заманчивый. Комплексных решений, тем более на базе ОС Linux, не слишком много, и
postfix 2.1.5 php 4.3.8
Ideco ICS является интересным представителем этой категории продуктов. В числе его возможностей:
фильтрация трафика, блокирование рекламы, интеллектуальная приоритизация трафика (QoS), удаленное teapop 0.3.8 vsftpd 1.1.3
подключение сотрудников и подразделений, почтовый сервер с антивирусом, корпоративный web-сервер, openssh-3.5 ntpd 4.1.1c
DHCP, шейпер трафика, FTP-сервер.
Если есть несколько вариантов, используются
При этом все компоненты Ideco ICS легко настроить. Интерфейс продукта можно назвать дружественно- наиболее компактные и простые компоненты, т.к.
интуитивным, поэтому Ideco ICS может настроить и человек, не знакомый с Linux. огромный функционал их собратьев-гигантов просто
не нужен. Хорошим примером может быть thttpd (77
Установка и управление Кб) или dnrd (50 Кб).

Установка происходит на чистый компьютер, т.к. Ideco не соседствует с другими ОС. Инсталляция происходит в Почему именно Firebird?
автоматическом режиме и не отнимает много времени. В результате получается уже настроенная система,
«Из всех открытых решений, в качестве базы данных
остается только произвести «доводку»: ввести пароль (по умолчанию – «servicemode») и получить доступ к
был выбран Firebird 1.0 (реализация Interbase). Эта
настройкам. В разделе «Конфигурирование сервера» вводятся IP-адрес, маска подсети, имя сервера, база данных версионного типа, и вся информация о
параметры VPN и DNS. транзакциях хранится прямо в БД, а не в
Управление сервером осуществляется с любой рабочей станции Windows с помощью Ideco ICS Manager или промежуточном журнале, поэтому в случае
аппаратного отказа, восстановление БД происходит
через web-интерфейс. Здесь создаются тарифные планы, происходит управление пулами IP-адресов,
очень быстро и в подавляющем большинстве случаев
добавление и удаление пользователей. Теперь, когда система работает, самое время узнать, как и почему.
без потерь. Firebird, по сравнению с MySQL, более
стабилен и изначально поддерживает хранимые
Принцип работы процедуры, что обеспечивает целостность данных. По
Сервер имеет два сетевых интерфейса: один интерфейс подключен к Интернету, а второй – к локальной сети функционалу Firebird ближе к таким БД, как
предприятия. Принцип работы хорошо известен: сервер подключается к Интернету и имеет реальный IP-адрес. PostgreSQL, но при этом не требует сопровождения.
Вся информация хранится в одном файле, что
Все остальные компьютеры получают доступ к сети через шлюз по технологии NAT (Network Address Translation)
уменьшает вероятность критических сбоев.Вообще,
и имеют «фиктивные» адреса, чаще всего, вида 192.168.x.y. В случае необходимости, сервера, расположенные
Firebird/Interbase оптимально подходит для
за периметром брандмауэра, могут получить через VPN реальный IP-адрес. Поддерживается и публикация
встраиваемых систем: например, он применяется в
серверов с помощью отображения портов DNAT. США в авиастроении и даже в бортовой системе
Пользователи подключаются к шлюзу с помощью технологии VPN, что позволяет ввести надежную схему американских танков». Марк Коренберг, ведущий
аутентификации. Учет трафика также ведется по пользователям, а не по компьютерам (IP-адресам). разработчик Ideco Software

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

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

http://wiki.linuxformat.ru/wiki/LXF85:Ideco_ICS 1/3
21.11.2018 LXF85:Ideco ICS — Linuxformat
В процессе установки системы жесткий диск будет разбит на четыре раздела. На одном из них стоит сервер, с него же
загружается система. Этот раздел не изменяем. На втором разделе содержатся данные: здесь находятся файл конфигурации и
база данных пользователей со статистикой. Однако, с этого раздела запрещено исполнять файлы.
Это сделано по соображениям безопасности. Вообще же безопасность в этой системе стоит на первом месте.

Посудите сами. В системе нет пользователя root, и даже администратор работает не от root и только в chroot-окружении. Многие
открытые компоненты, в том числе ядро Linux, подверглись переработке. Ядро Linux было пересобрано, и на него наложены
security-патчи (как стороннего, так и собственного производства), которые предоставляют дополнительные возможности. Эти
возможности активируются через ветку /proc/kmask. Перечислим наиболее интересные из них. Опции включаются записью
единицы в соответствующий файл. Отменить опцию невозможно – даже пользователю root.
Noexec – после установки этого параметра, все монтируемые разделы будут подключаться
с флагом noexec. Почему Ideco Software не использует новейшие
Nosuid – аналогично noexec, но запрещается создавать файлы c флагом suid. компоненты?
Nodev – запрет задания файлов устройств на разделе и запрет монтирования devfs.
«Главным принципом Ideco ICS является надежность. Не скорость,
Nounchroot – запрет пользователю root делать chroot на корневой каталог, то есть запрет
эффективность, малый размер и современность, а надежность и
выхода из chroot. стабильность. Можно провести аналогию с «допотопными»
Noproc – запрет монтирования procfs. космическими ракетоносителями, разработанными в 60-х годах – на
Noaddmount – запрет монтирования новых разделов. сегодня это самый надежный способ выхода в космос, проверенный
Capmask – дополнительная маска. После ее установки нельзя выйти за рамки годами.

возможностей, разрешенных этой глобальной capmask. Аналогично дела обстоят и с программным обеспечением. По нашему
мнению, главным фактором, определяющим надежность программного
Используется монолитное ядро, собранное без поддержки модулей – во избежание внедрения
компонента, является долгая активная работа на множестве серверов
руткитов.
по всему миру. Как только обнаруживается сбой, сообщение об этом
Особое внимание также уделяется защите системы и локальной сети от атак передается автору, и он исправляет ошибку. Таким образом,
злоумышленников. По умолчанию, все правила системного брандмауэра настроены на выпускаются небольшие «патчи», исправляющие данную конкретную
максимальную защиту и ни один порт сервера недоступен из Интернета. Используется уже проблему. В таких случаях изменения исходного кода минимальны и не
касаются всей программы в целом, а значит, не порождают новых
стандартная на сегодня политика типа «deny, allow», то есть все, что не разрешено явно,
ошибок. Кроме этого, мы выбираем только те разработки, исправлений
запрещается. При этом через пользовательский межсетевой экран нельзя создать правила,
по безопасности в которых уже не было более двух лет.
уменьшающие безопасность сервера Ideco ICS – только правила-ограничения для
Самые современные версии программ обладают новой
пользователей.
функциональностью и иногда даже базируются на новой архитектуре
Имеется функция фильтрации содержимого, позволяющая запретить загрузку из Сети или вообще созданы с нуля. Так или иначе, в новых исходных текстах
определенных типов файлов (например, MP3, AVI и др.) и рекламы. В брандмауэре можно содержатся новые ошибки. К тому же для наших целей не нужна новая
включить качественный шейпер с очередями, это позволяет ограничить ширину канала для функциональность – вполне хватает и стандартной. Таким образом, нет
конкретного пользователя или протокола. Такими возможностями сейчас никого не удивишь, ни одной причины использовать новейшие версии программ во
во всех современных шлюзах они должны быть. встраиваемых и необслуживаемых системах.
Конечно, когда нам понадобится новый функционал, придется
Права и возможности служб (capabilities) изменены и максимально ограничены, что уменьшает
использовать новую версию, но и при этом наши разработчики сначала
вероятность внедрения эксплойтов, т.к. с установленными значениями capabilities выполнить тщательно просмотрят изменения между версиями и только затем
запрещенные действия становится весьма затруднительно. начнут ее тестирование и использование».
Используя стандартные capabilities ядра Linux, можно гибко ограничивать возможности Марк Коренберг, ведущий разработчик Ideco Software
процессов, что особенно важно для приложений, работающих от имени root. Установка
производится либо для всех создаваемых процессов командой lcap, либо для каждого
процесса отдельно командой setpcaps. Администраторы Linux редко пользуются capabilities и, на взгляд разработчиков Ideco ICS – напрасно. Это стандартная
возможность ядра, которая значительно повышает защищенность системы в целом.
Для улучшения безопасности системы используется технология 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 его не используют.

http://wiki.linuxformat.ru/wiki/LXF85:Ideco_ICS 2/3
21.11.2018 LXF85:Ideco ICS — Linuxformat
В системе присутствует интеллектуальный модуль Quality
Коммерческий проект и сообщество Open Source – точка
of Service (QoS) для автоматического определения
взаимодействия
приоритета трафика.
«Чтобы исправить ошибки, зачастую принималось решение не изменять Для того, чтобы использовать очереди на входящий
исходный код, а, зная об этих недоработках, исправлять поведение
трафик, на ядро были наложены дополнительные патчи.
системы так, чтобы она не страдала от проблем открытых компонентов.
По словам разработчиков, из всех протестированных
Фатальных ошибок в программах мы пока не находили – только
патчей наиболее результативным показал себя IMQ,
неоптимальные и неэффективные алгоритмы. Сделанные нами
изменения касаются как ядра (iptables – модули psd, connlimit, string), так который создает hook в iptables-таблице mangle. Однако,
и приложений (pppd, postfix, thttpd). Пришлось писать новые модули для IMQ работает только при скоростях не более 10 Мбит, и,
доступа к БД Interbase для postfix и teapop, так как официальные коды чтобы очереди на базе IMQ работали при больших
поддерживают подключение к этой БД. В vsftpd добавлена возможность скоростях, необходимо перевести ядро в режим 1000Гц, а
контроля свободного места на диске, а в postfix, помимо прочего – netsheduler – в режим отсчета тиков от RTC-таймера
возможность контроля за размером каталога с письмами. вместо jiffies.
На практике оказалось, что разработчики Open Source, как правило,
Интеллектуальная приоритезация осуществляется маркировкой пакетов в зависимости от
реагируют на наши сообщения очень медленно и неохотно. Все дело в
скорости соединения и протокола. Когда пакет попадает в очередь HTB устройства IMQ, то
том, что мы имеем дело со очень специальными случаями, которые
проявляются при больших нагрузках. В обычных условиях то, на что мы на основе маркировки он помещается в свой класс, т.е. своего рода подочередь.
наткнулись, не проявляется, поэтому такие ситуации сложно выявить и Соответственно, пакеты высокоскоростных прожорливых соединений, например,
провести повторные эксперименты. скачивание файлов, не задавят более важные пакеты, например, ssh. Кроме этого,
Тем не менее, многие сообщения об ошибках были подтверждены и используется очередь sfq, и пакеты разных соединений, находящихся в очереди, выходят из
исправлены разработчиками. нее по принципу рулетки, что позволяет равномерно распределить канал между
пользователями и между приложениями.
Все изменения и патчи мы высылаем по запросу на e-mail в течение двух
дней, в соответствии с лицензией GPL». В Ideco ICS имеются и дополнительные сервисы: почтовый сервер Postfix с антивирусом
Марк Коренберг, ведущий разработчик Ideco Software ClamAV, web-сервер с поддержкой PHP и MySQL. Также присутствует FTP-сервер Vsftpd и
«служба точного времени» ntpd. Все службы запускаются в своих chroot каталогах.
Кто-то скажет, что все возможности Ideco ICS можно реализовать и на обычных дистрибутивах Linux. Это действительно так, и при должной квалификации
персонала задача реализуема, но сколько она отнимет сил и времени? В результате будет получено, хотя и оптимизированное под нужды конкретного предприятия,
но все же единичное решение – и в другой раз, возможно, придется все начинать с нуля. Ideco ICS, напротив, типовое решение, проверенное и работающее во
многих организациях.

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

http://wiki.linuxformat.ru/wiki/LXF85:Ideco_ICS 3/3