Безопасность и проект Linux Router
Автор: © Mark Fevola
|
Дыры в ядре делаются примерно так же часто, как и обновляется код ядра. Ну да ладно, возможно, не это главное. Тем не менее, уязвимыми местами изобилует любая ОС, вне зависимости от аппаратной платформы. Проект Linux Router (да и вообще, любой маршрутизатор, базирующийся на Linux) обладает некоторыми уникальными пробелами в защите, которых нет в Cisco или других аппаратных маршрутизаторах. Это следует из природы ПК и ядра Linux. Как пример можно указать переполнение буфера в Linux, неизвестный феномен для аппаратных маршрутизаторов. Администратор LRP, вынужден следить за этим и при необходимости - бороться. Аппаратные решения. С одной стороны, для каждого типа соединения, как-то: ISDN, Ethernet, frame relay T1, xDSL, PPP, ..., даже кабельный модем, имеем: роутер с портмаппингом, Ethernet хаб со стильным графическим HTML интерфейсом, и т.д. - то есть, необходимо отдельное устройство. Каждое устройство специально сделано для определенных и специализированных задач. Кроме того, исходный код и аппаратная часть являются закрытыми и патентованными. С другой стороны, у нас имеется x86 процессор общего назначения, который может делать что угодно, лишь бы было соответствующее ПО, а проект Linux Router - отличная программа. Он представляет из себя открытую альтернативу аппаратным маршрутизаторам, так же как и Linux, усилиями масс, стал альтернативой коммерческих Унихов. Проект LR базируется на свежем ядре Linux, настроенном специально для решения задач маршрутизации, и легко адаптируем для сетей со следующими требованиями:
Традиционно, фаерволл и роутер - это разные устройства. И каждый сервис, будь-то прокси или еще что-то, имеет свое аппаратное обеспечение, специально разработанное для той функции, которую он (сервис) выполняет. В наше время, такое аппаратное обеспечение имеет тенденции комбинировать свои функции, так же как и интерфейс ATA IDE сейчас встраивается в материнскую карту, тогда как не более чем 4 года тому, это была отдельная ISA карта. В конечном итоге, такие многоцелевые устройства, создают новое направление в теории безопасности. А под безопасностью мы понимаем огромное количество вещей. Это и физическая безопасность, и внутренняя, и сетевая, и .. и так еще много "и". И если производство решает уйти от использования аппаратуры закрытой архитектуры, оно должно переосмыслить свою систему безопасности. Вот набросок плана:
I. Физическая безопасность
II. Безопасность уровня ядраУязвимые места у ядра Linux и у аппаратных маршрутизаторов отличаются. Данные группы CERT, свидетельствуют, что самые распространенные типы атак - это "отказ сервиса" (DoS) и сканирование. Атаки типа DoS легко выполнимы и, в то же время, от них тяжело защитится. Атаки, ориентированные на переполнение буфера (нестандартные), и DoS атаки (обычные) возможны в обоих случаях. Сканирование портов может происходить как изнутри, так и снаружи. Однако, сканирование, не являсь атакой как таковой, может вызвать повышенное число пересоединений в сети, и даже отказ сервиса, в зависимости от интенсивности сканирования. Для того, что бы лучше с этим разобраться, надо посмотреть несколько прецедентов. Мы решаем эти проблемы ядра при помощи патчей безопасности и nmap. Из главных клонов LRP, ядра Oxygen включают патч Openwall --фактически Oxygen постоянно обновляется. Если вы находите прокол в защите, можете отдыхать спокойно - это последний Oxygen. Согласно Дэвиду Дауситту (David Douthitt), интеллект спрятанный в Oxygen, позволяет ядру защищаться "от IP спуфинга, необычной адресации (martians), и отклонять переадресации и эхо-запросы IСMP." --Но даже в этом случае, стандартная фильтрация (сетевая безопасность, см. ниже) должна так же включать эти правила. nmap: Я называю это "наследник SATAN". Это программа, на которую нужно равняться остальным. nmap сканирует любые наборы TCP и UDP портов по любым IP адресам и ищет уязвимости в вашей сети. nmap обнаруживает лишние сервисы, которые работают на вашей машине с проектом LR. Такие сервисы есть (например discard, daytime, time). Быстрый экскурс по ecurityFocus.com или Rootshell.com объяснит вам, как этим пользоваться. Форум CERT не обсуждает проблемы защиты от собственных пользователей в собственной сети, такие, например, как безопасность файловых систем или перехват пакетов (sniffing). Утилиты файловой системы, такие как fdisk, mke2fs или fstab здесь обсуждаться не будут (хотя я надеюсь, что разработчики проекта LR включат команду chattr в будущие релизы LR, которые будут позволять не-root'овый вход в систему), а перехват пакетов вас не будет волновать, если вы будете регистрироваться с консоли. О-о-опс, а консоли-то нету... Значит, таки будет волновать. Перехват пакетов вещь весьма опасная. Во многих случаях, возможен перехват пакетов из разных логических сетей, например в случае использования кабельных модемов. Вырусы, сканирование и каждый из тысяч "UNICODE багов" уже настолько распространены, что мы можем ожидать более широкого использования перехвата пакетов - вплоть до получения отдельной категории в отчетах CERT, если только оно уже не получило... Очень интересно, как недостаток IP адресов облегчает атаки... Шифрование и аутентификация (ssh, ssl, smime, PGP) защитит вас от перехвата. Но учитывая, что любой шифр рано или поздно можно взломать, большее, на что мы можем надеяться, это то, что данные потеряют ценность к тому времени, когда их расшифруют. Важно защитить данные от самых больших из возможных дырок - таких как сессия telnet. Кого волнует, если кто-то расшифрует сессию год спустя? Очень многие маршрутизаторы, зависят от идентификации паролем, а это первая цель при грубых атаках. Проект LR тут в выигрыше - он поддерживает ssh.
III. Сетевая и внешнемаршрутизационная безопасностьФизическая безопасность и безопасность уровня ядра, несмотря на специфичность в отношении к проекту LR может и должна применяться в любой ситуации. Далее следует список основных правил безопасности, очень универсальных и на LRP-специфических. Я включил их здесь, для полноты изложения типов безопасности и не буду вдаваться в подробности.Схема для типичного маршрутизатора бизнес-организации:
Короткий ответ: "Блокировать все." Разрешать доступ только к тем портам, где запущены сервисы, т.е. к порту 80 на вебсервере, к порту 22 для ssh. Прячьте и выполняйте chroot всюду, где это возможно (например, BIND). Ни в коем случае не запускайте X-сервер на машинах, к которым есть доступ из Internet. Возвращаясь к маршрутизации. Это не легкая задача для новичка, потому есть HTML интерфейсы для маршрутизаторов Circuit City и других. И еще есть Windows(tm). Для других - есть LRP. Текстовое меню, дает доступ к привычно прокомментированным /etc/conf.files файлам, просто для пользователей Linux (Unix, Freenix), но устрашающе, как таинственная командная строка, для остальных. Другие маршрутизаторы имеют тот же недостаток, заключающийся в изучении всяких изгибов и команд. В то же время, проект LR сближает магическое слово "маршрутизация" и обыкновенного обывателя тем, что его команды привычны. В отличие от команды Cisco 'conf term', конфигурация и команды LRP не стареют если их не трогать даже год. Для неглупых людей выбор между тысячедолларовым маршрутизатором и LRP превращается в выбор между деньгами и временем. Так что вы
можете купить специализированный маршрутизатор, или
же вы можете покопать ваш доисторический ПК,
добавить необходимые функции, скомпилировать модули
в ядро и настроить. LRP заменяет ПЗУ флоппиком, а
встроенное аппаратное обеспечение - ядром: только
помните о некоторых нюансах безопасности.
|
Copyright © 2001, Mark Fevola. Copying license http://www.linuxgazette.com/copying.html Published in Issue 67 of Linux Gazette, June 2001 |
Вернуться на главную страницу |