Содержание статьи
Сетевой шлюз. Как будешь поднимать его ты? Привыкнув к одному способу, зачастую начинаешь все делать по старинке, не замечая прогрессивные и современные решения. Это я знаю по себе. В результате костыльное решение — здесь, велосипед — там. В определенный момент мне надоело ковыряться в конфигах и чужих непонятных сборках. Было решено, наконец, подобрать для себя решение, которое я без опаски и мороки смогу использовать везде: дома и у своих клиентов. Так я открыл для себя Интернет-шлюз Ideco ICS.
Никогда бы не подумал, что смогу найти что-то полезное с помощью контекстной рекламы.
Но как-то нажав на рекламную ссылку в одном из блогов системного администратора (мне не сложно, а хорошему человеку за это — копеечка), я оказался на странице Ideco. Идея общаться с коммерческими решениями (то, что за продукт разработчики просят деньги — очевидно) меня не прельщала, но прикольный видеокаст про Добрыню все же заманил меня зайти в раздел загрузок. Неплохая идея разработчиков, чтобы упростить процесс тестирования — на сайте есть готовый проект для запуска Ideco ICS в виртуальном окружении с помощью VMware Player. Ну, раз так, то почему бы и не попробовать.
Сделать самому или поставить сборку?
Готовые решения на базе Linux, заточенные для управления интернетом, разрабатываются уже давно. Такие сборки а-ля «поставил и заработало » пользуются большой популярностью у админов, причем, по моим наблюдениям, как у самых матерых администраторов, так и у начинающих. Помнится, в бородатые времена я даже пользовался каким-то урезанным дистрибутивом фряхи, который запускался с дискеты :). Конечно, есть противники таких работающих решений из коробки, которые считают, что проще взять Слаку, Дебиан и незнамо что еще, а потом методично собирать все самому. Их право, но у меня возможности долго ковыряться с одним только шлюзом нет — время дороже. Другой вопрос, что есть целый ряд альтернативных решений, позволяющих развернуть шлюз, и они... бесплатны!
Несколько таких дистрибутивов мы совсем недавно рассматривали в статье «Сетевые регулировщики» из январского номера ][ (ищи PDF-версию статьи на диске). Ideco Control Server же — сугубо коммерческий продукт. Так за что хотят деньги разработчики при таком обилии бесплатных альтернатив? Может и платить не за что? 🙂 Вот с этим надо разобраться.
Сразу хочу оговориться, что для домашнего использования и обучения предлагается бесплатная лицензия на пять компьютеров. Чтобы ее получить, нужно лишь заполнить форму на сайте, указав правильный e-mail, на который придет заветный ключ. Поэтому Ideco можно даже называть условно бесплатной.
Что там внутри?
Начнем с технических моментов. Ideco ICS построен на ядре Linux 2.4 (ага, сразу запоминаем — могут быть проблемы с драйверами) и содержит ряд компонентов, распространяемых под свободными лицензиями: Apache, ClamAV, Courier, Cyrus, Postfix, MySQL и т.д.
Если перечислять включенные в состав демоны, то сразу становится ясно, что перед нами что-то гораздо большее, чем просто шлюз в инет. Сам посуди: в список серверов, которые можно поднять при помощи Ideco, входят VPN, DHCP, DNS, FTP, NTPD, Jabber и SMTP/POP3 и IMAP-демоны. Даже популярные движки вроде Joomla и phpbb — и те можно автоматически развернуть на веб-сервере. С одной стороны такой пакет «all in one» — это хорошо. Но на кой черт это все, если мне нужен просто шлюз? Прописная истина: чем больше сервисов, тем мощнее должен быть сервер, а это – лишние затраты на оборудование. И тут опять вспоминаем про ядро.
C веткой 2.4 можно легко упереться в потолок по поддержке свежих девайсов. Где прикажете искать дрова, например, для SkyStar3? Там и с веткой 2.6 не все так гладко, а уж с 2.4 ядром даже и начинать ковыряться не стоит. Говорю потому, что знаю: на одном из отдаленных предприятий используется спутниковый инет, и на сервере стоит именно эта DVB-карта. «Пфф, нашел экзотику», — возможно, возразишь ты. Но вспомни про 3G или WiMax-модемы, подключаемые по USB. Так вот, с их подключениями ты также пролетаешь. У бесплатного eBox (ebox-platform.com), который предлагает тот же набор предустановленных демонов, та же проблема — но он и бесплатен. При этом его совместимость с Ubuntu позволяет допилить до любой кондиции, было бы желание. C Ideco похоже придется ограничивать себя только тем, что предоставили разработчики, или искать обходные решения, например, поднять простенький роутер для WiMax или Yota.
Долго ли поднимать шлюз?
Справедливости ради скажу: а дорабатывать особо нечего. И, наверное, именно за это разработчики Ideco сделали продукт платным. В сборке есть все необходимое для организации доступа в интернет: NAT, прокси-сервер, учет трафика, балансировщик нагрузки каналов, firewall, блокировка протоколов, контентная фильтрация, антивирус и антиспам. Кстати говоря, защита от вирусов, спама и малвари осуществляется на основе решений лаборатории Касперского — хороший выбор для коммерческого решения. Все устанавливается вместе с системой и работает «из коробки» практически без необходимости какихлибо дополнительных настроек. Чтобы предотвратить возможные проблемы, установщик даже предлагает предварительно проверить оперативку memtest'ом. Когда бы еще дошли до этого руки? Интересно, если в саппорте провайдера первым делом просят выключить и включить соединение, то у Ideco — проверить оперативку? 🙂 Избалованный красивыми инсталляторами современного туска, я был слегка удивлен, увидев curses-интерфейс, хотя он полностью на русском языке.
Вообще качественная русификация радовала на всех этапах установки, настройки и эксплуатации разделов, и это классно.
Первый пикантный момент был связан с тем, что установщик не дает самому разбить диски, а только честно предупреждает, что все файлы будут потеряны. Так что установить Ideco ICS можно только на «чистый» компьютер. Минимально понадобится 1.5 ГГц CPU, 256 Мб RAM, с двумя сетевыми адаптерами – не так уж и мало. Ведь если локалка маленькая, то с маршрутизацией справится даже самый слабый сервер с фряхой на борту. После копирования файлов, с помощью все того же curses-интерфейса предлагается ввести локальный IP-адрес. На этом первичная настройка Ideco IСS завершена, вся дальнейшая конфигурация производится в специальном мастере, который запускается при первом старте веб-интерфейса. Просто открываешь в браузере IP'шник, который указал, и вводишь пароль (по умолчанию servicemode) в поле окна приглашения. Запустится специальный мастер, с помощью которого настраиваются основные параметры сервера, безопасность, сетевые интерфейсы. К счастью, если перепутаешь, какой интерфейс внутренний, а какой внешний, то это без проблем потом можно изменить.
Здесь же предлагается сразу настроить WAN. Это удобно, но разработчики не учли одного — возможности подключения через L2TP. Другие варианты — собственно, прямое Ethernet-подключения и PPPOE, VPN (PPTP) — пожалуйста, а L2TP — нет. Пришлось с ноутбука лезть за настройками PPTP на сайт провайдера. Для работы в сетях вроде ADSL и WiMAX придется использовать модемы с портом Ethernet, поскольку USB-устройства, как уже было сказано, Ideco не поддерживаются. В завершение установки осуществляется поиск компьютеров в сети: все найденные хосты можно добавить в группу «Моя организация» и указать для нее способ авторизации. Как оказалось, если воспользоваться этой возможностью, то уже после перезагрузки всем системам будет разрешен выход в инет, а на клиентах потребуется лишь указать адрес Ideco ICS в качестве шлюза и DNS. В целом неплохо, все установилось достаточно быстро, хотя современный графический интерфейс инсталлятора явно был бы больше к лицу коммерческому продукту.
Веб-интерфейс
Основные настройки производятся при помощи локализованного веб-интерфейса с поддержкой AJAX (в Opera почему-то не работает контекстное меню). В отличие от бесплатных решений, морда Ideco ICS заслуживает всяческих похвал: сразу видно, что ребята обращались к профессиональным дизайнерам и проектировщикам интерфейсов.
Все очень опрятно и продумано. Визуально интерфейс разделен на три части. Вверху находится главное меню, состоящее из шести основных пунктов, названия которых говорят сами за себя: «Пользователи», «Монитор» (мониторинг служб и аудит событий, графики загруженности, отчеты за месяц), «Безопасность», «Сервер», «Тарифы», «О Программе». Зато некоторые пункты меню вроде «Полный DNS» не могут не улыбнуть. К веб-интерфейсу имеет доступ не только администратор, но и рядовой пользователь.
Последнему доступна страница приветствия с рядом полезных ссылок: на веб-почту, FAQ, программу IdecoAgent, файлы для автоматической настройки VPN в Win98/2000/ XP/2003/Vista/7. Выбрав раздел «Полезные файлы», пользователь может скачать ряд приложений для работы в интернете — FireFox, IE, Opera, Miranda и Thunderbird. Отличное подспорье, чтобы приучить юзеров к хорошему.
Ничего подобного в бесплатных решениях я не видел.
Подключаем пользователей
Чтобы пользователь имел доступ во внешнюю сеть, ему необходимо создать учетную запись, с помощью которой он будет авторизоваться на сервере. Типы авторизации — на любой вкус, в том числе проверенные временем варианты: по IP, по связке IP+MAC, а так же учетным записям PPPoE и PPTP. Когда нужна еще большая гибкость (например, в универе) можно использовать для авторизации удобный клиент IdecoAgent, или же авторизовываться через веб. На случай, если в сети развернута Active Directory, то Ideco сможет с ней синхронизироваться (также поддерживается и LDAP).
Синхронизация работает, я проверял :). Управление юзерами осуществляется во вкладке «Пользователи». Куклу Вуду ты здесь не найдешь :). Зато для удобства управления учетные записи пользователей собраны в группы, причем группы могут быть вложенными, что позволяет задавать любую иерархию настроек. Можно извратиться и разделить все девушек-пользователей на блондинок и брюнеток. И дать брюнеткам небольшой бонус по скорости, им вроде как по жизни сложнее :). Важно, что создавать учетные записи для Вовы, Саши, Кати и Наташи вручную возможно даже не придется, если их компьютеры были найдены еще во время установки и добавлены в группу «Моя организация».
Новый пользователь автоматически наследует все параметры, установленные для группы — тип авторизации, использование NAT, разрешение на вход по VPN с внешнего интерфейса, баланс, тариф, пул адресов, данные для работы с Jаbber и e-mail и другие. Помимо этих стандартных возможностей для управления юзерами есть интересный инструмент — «Корзина». Этакая буферная зона, где некоторое время хранятся удаленные аккаунты. Видимо на тот случай, если ты захочешь восстановить удаленного в порыве гнева пользователя (ай-я-яй!).
Ограничения и тарифы
Когда я искал нужного пользователя, чтобы установить определенные ограничения, обнаружил интересную деталь — в дереве пользователей есть поиск по загадочному полю «Реквизит» :). Можно ввести, например, «чайник ». Толку — ноль :). Думал — баг, ан нет. Старые грамотные пользователи подсказали, что поле досталось по наследству от ICS Manager, ныне не поддерживаемого для продукта Ideco ICS. На кой черт? 🙂 Или вот еще одна любопытная деталь. В продукте существует возможность отправить сообщение потомкам, если в «Пользователях a Отправить сообщение» нажать соответствующую галочку.
Если трафик в локалке жестко лимитируется, то необходимо настроить тарифы. К счастью, в Ideco ICS применена гибкая система тарификации. Тарифные планы, пулы IP-адресов и правила для сетей и интерфейсов настраиваются во вкладке «Тарифы». После установки будет доступно два примера тарифов (обычный и с ограничением скорости). При создании нового тарифа указывается стоимость входящих и исходящих мегабайт, активируется блокировка при превышении лимита, скорость и количество трафика. Честно говоря, не особо изучал данную возможность, так как дома она мне не нужна, а типовой тариф и так подходит для большинства организаций. Наверное, кому-то это пригодится.
На вкладке «Ограничения» можно мстить пользователям. За них даже страшно становится. Пользователя можно лимитировать по типу IP-трафика (запрет на использование интернет-пейджеров, почты), запрещать ему посещение определенных IP-адресов, ограничивать время подключения. Найти особо провинившихся, непомерно сжирающих дорогой трафик, поможет вкладка «Статистика ». Здесь можно сделать выборку по времени, пользователям, подсетям. По отдельной ссылке выводятся данные логов Squid. Тут есть суммарный отчет за месяц «директору на стол», только почему-то он перебрасывает в «Монитор» — как-то это нелогично. Хотя сам отчет вполне ничего себе, с картинками, а директорам, как известно, картинки нравятся :).
Безопасность внутренней сети
Несмотря на пафосные обещания, безопасность, в общем-то, основана на стандартном наборе подходов: chroot основных сервисов и проверка контрольных сумм системных файлов. С другой стороны, аналогичная связка исполь зуется и в дистрибутиве Linux МСВС для российских военных (в нем, правда, есть еще ACL-листы и различные роли для пользователей), да и мы знаем, что им можно доверять.
Настройки всех компонентов, отвечающих за защиту ресурсов внутренней сети, собраны в меню «Безопасность» и состоят из 10 подпунктов. Чтобы разрешить доступ по SSH, надо установить соответствующий флажок в «Общих настройках». Здесь же устанавливаются ограничения на количество сессий и блокировка сканеров портов, указывается IP системы админа. Далее идут две группы правил firewall: системные (то есть общие для всех) и пользовательские, которые затем можно назначить пользователям. Все это сделано для того, чтобы самому не копаться в iptables.
В результате все задается в интуитивно понятной среде: IPадреса источника и назначения, протокол, порт, время действия, направление, интерфейс, скорость, действие. Список последних очень большой, от стандартных «Запретить/ Разрешить» до использования шейпера и фильтров. Чтобы просмотреть список фильтров, идем в подменю «Ключевые слова», где уже есть заготовки для 15 категорий. Причем никто не мешает тебе создать свой фильтр — достаточно взять за основу любой из уже имеющихся.
В целях повышения безопасности все встроенные сервисы по умолчанию отключены. Админ самостоятельно выбирает и активирует в разделе «Сервер» то, что ему действительно необходимо. Каждый раз, подключая новый сервис с помощью подобной сборки, я опасаюсь, что сейчас выйдет какой-нибудь сплойт, и придется заниматься обновлением вручную. В случае с Ideco все выполняется автоматически. Есть интересный момент. В разделе «Сервер -> Авт. Обновление», где администратору предлагаются расширенные настройки обновления сервера по расписанию, есть возможность «задержки установки обновления».
Наверное, для ожидания обновления для обновления :). Рядышком находятся настройки резервного копирования. Но если выбрать «Сервер -> Резервное копирование -> На CD» и нажать на ссылку «Записать на CD сейчас», выдается сообщение «Данная опция доступна только через локальную консоль сервера».
Так за что платить?
Конечно, есть недоделки. Но если посмотреть на тот же самый eBox и Ideco ICS, сразу видна разница между бесплатным решением и коммерческим продуктом. eBox — удачная сборка от энтузиастов, но местами собрана на коленке. На деле это, к сожалению, всплывает в самый неподходящий момент. Я до сих пор помню, как у меня отвалился подсчет трафика для некоторых пользователей, а любые действия в админке ни к чему не приводили. С грехом пополам, при помощи комьюнити баг все-таки удалось починить, но сколько времени я на это убил? В случае с платным продуктом я бы просто обратился в саппорт, причем в случае с Ideco — русскоязычный. Когда продукт платный, чувствуется, что кто-то ответственен за то, чтобы у тебя все работало, и есть с кого спросить. Можно еще, конечно, поставить в плюс гибкость, стабильность, простоту внедрения, но пусть это делает официальный сайт.
Я вижу только три вещи, за которые здесь можно платить: первое — все работает с полтычка и без напильника, второе — есть оперативный суппорт, третье — гарантированные обновления самого продукта, антивирусных баз и контентного фильтра. Возможно, плюсом будет также и то, что решение тиражное и используется во многих организациях. Не скажу, что я в восторге от коммерческой реализации интернет-шлюза — ничего сверхъестественного я не увидел. Но решением доволен: Ideco ICS закрывает много задач, и если кому-то нужна надежность, уверенность и поддержка от производителя, а начальство готово за это платить, то почему бы и нет. Ideco ICS будет для них хорошим выбором. В маленькой же локалке его вообще можно использовать бесплатно.
Links
Официальный сайт проекта Ideco ICS — ideco-software.ru