Open Way | Systems | Distro | Shell | Desktop | Applications
Network | Development | Download | OfftopicКарта сайта
FreeNotesФорум POSIX.ru
На главную страницу

IDECO Internet Control Server

Михаил Журухин
2007.03.19
Впервые опубликовано: LinuxFormat, 2006, 85

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

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

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

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

Сегодня организация, столкнувшаяся с проблемой учета трафика и контроля доступа при использовании Интернет-канала, может пойти несколькими путями: Установить аппаратный маршрутизатор или Firewall + компьютер с программой обработки статистики и управления. Использовать собственные разработки на базе Linux/FreeBSD. Использовать программы и службы под Windows. Развернуть комплексное решение, реализующее необходимые функции.

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

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

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

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

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

Сервер имеет два сетевых интерфейса: один интерфейс подключен к Интернет, а второй к локальной сети предприятия. Поэтому работа этой системы проста: сервер подключается к интернет и имеет реальный IP-адрес. Все остальные компьютеры получают доступ к Интернету через шлюз с реальным IP-адресом. Шлюз выполняет NAT (сетевое преобразование адреса), при котором компьютеры нашей сети «думают», что они по-настоящему общаются с узлами интернет, а последним кажется, что они общаются только с нашим шлюзом. То есть шлюз перезаписывает заголовки IP-пакетов, заменяя фиктивный IP-адрес любого узла нашей сети на свой собственный (реальный адрес) и отправляет пакет в интернет.

Когда пакет приходит обратно, он опять перезаписывает IP-адрес и отправляет этот пакет определенному компьютеру нашей сети. В случае необходимости, сервера, расположенные за периметром брандмауэра, могут получить через VPN реальный IP-адрес. Поддерживается и публикация серверов с помощью отображения портов DNAT.

Пользователи подключаются к шлюзу с помощью технологии VPN, что позволяет ввести надежную схему аутентификации. Учет трафика также ведется по пользователям, а не по компьютерам (IP-адресам). Иногда у пользователей локальной сети, находящихсяв другом городе или просто вне здания организации, возникает потребность обратиться к ресурсам родной локальной сети. Любому пользователю 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, подсчетом баланса и синхронизацией с базой данных, а также сборщик и агрегатор статистики.

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

Посудите сами. В системе нет пользователя root, и даже админист- ратор работает не от root и только в chroot-окружении. Многие откры- тые компоненты, в том числе ядро Linux, подверглись переработке.

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

Noexec – после установки этого параметра, все монтируемые разде- лы будут подключаться с флагом noexec.

Nosuid – аналогично noexec, но запрещается создавать файлы c флагом suid.

Nodev – запрет задания файлов устройств на разделе и запрет мон- тирования devfs.

Nounchroot – запрет пользователю root делать chroot на корневой каталог, то есть запрет выхода из chroot.

Noproc – запрет монтирования procfs.

Noaddmount – запрет монтирования новых разделов.

Capmask – дополнительная маска. После ее установки нельзя выйти за рамки возможностей, разрешенных этой глобальной capmask.

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

Используя стандартные capabilities ядра Linux, можно гибко ограни- чивать возможности процессов, что особенно важно для приложений, работающих от имени 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 работает как виртуальный администратор: следит за работой системы, останавливает и перезапускает «подвисшие» про- цессы, при необходимости осуществляет «мягкий» перезапуск систе- мы и посылает сообщения администратору.

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

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

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


Лечение и отдых в Литве - Карловы Вары лечение. Курорты Чехии - здоровье и отдых. . ip телефония москва . . ip телефония москва .