#FORMAT citation III. Защита локальных вычислительных сетей образовательных учреждений от интернет-угроз .............................................................................................................................2 1. Введение.................................................................................................................................2 1.1. Информационная безопасность и Интернет............................................................................ 2 1.2. Понятие многоуровневой системы защиты сети образовательного учреждения................ 7 2. Программное обеспечение для защиты от вирусов и всех других типов вредоносных программ, а также от хакерских атак и спама (KlamAV+ClamAV, alterator- firewall) .....................................................................................................................................16 2.1. Антивирус ClamAV .................................................................................................................. 16 2.2. Графическая оболочка KlamAV .............................................................................................. 23 2.3. Межсетевой экран netfilter/iptables.......................................................................................... 31 3. Программное обеспечение для исключения доступа учащихся к интернет-ресурсам, несовместимым с задачами их воспитания (Squid и модуль сопряжения с федеральным сервером фильтрации контента) ............................................................................................65 3.1. Кэширующий прокси-сервер Squid......................................................................................... 65 3.2. Модуль сопряжения с федеральным сервером фильтрации контента................................. 78 Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 1 из 94 III. Защита локальных вычислительных сетей образовательных учреждений от интернет-угроз 1. Введение 1.1. Информационная безопасность и Интернет Классификация угроз при работе в сети Интернет Если ранее подавляющее большинство атак сводилось к проникновению на компьютер пользователя той или иной вредоносной программы, сегодня множество угроз – хакерская атака, реклама, фишинг, реализуются удаленно и не нуждаются в дополнительных модулях на компьютере-жертве. Поэтому, при проведении классификации угроз в первую очередь следует разделить угрозы на два больших подмножества: · угрозы, реализация которых требует внедрения программных компонентов на компьютере-жертве, иначе именуемых вредоносные программы: ü компьютерные вирусы; ü черви; ü троянские программы; ü потенциально опасное ПО – рекламные утилиты и т.д.; · угрозы, реализация которых внедрения программных компонентов не требует: ü спам; ü фишинг; ü внешняя, применительно к компьютеру, реклама, к примеру – баннеры и всплывающие окна; ü хакинг. Ущерб от вредоносных программ Для вредоносных программ характерны следующие формы вредоносных действий: · перегрузка каналов связи – вид ущерба, связанный с тем, что во время масштабных эпидемий по Интернет-каналам передаются огромные количества запросов, зараженных писем или непосредственно копий вредоносного кода; · DDoS (Distributed Denial-of-service) атаки, распределённые атаки «отказ в обслуживании» – вид вредоносного воздействия, выражающийся в одновременном Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 2 из 94 обращении большого количества, иногда до миллиона и более, инфицированных систем к определенному Интернет-ресурсу, что приводит к полному его блокированию; · потеря данных – поведение вредоносного кода, связанное с намеренным уничтожением определенных данных на компьютере пользователя; · нарушение работы ПО – из-за ошибок в самом вредоносном ПО, зараженные приложения могут работать с ошибками или не работать вовсе; · загрузка ресурсов компьютера – интенсивное использование ресурсов компьютера вредоносными программами ведет к снижению производительности как системы в целом, так и отдельных приложений. Помимо этого заражение компьютера и включение его в состав ботнета приводит к тому, что в журналах атакуемых систем как источник атаки значится именно этот компьютер, что может привести к судебным искам против владельца зараженного компьютера или блокированию доступа к Интернет-ресурсу с этого компьютера. Угрозы, не требующие внедрения программных компонентов Все угрозы этого класса, не считая хакерских, преимущественно используют методы социальной инженерии (социотехники) для достижения результата. Спам Спам – это анонимная массовая незапрошенная рассылка. Данное определение довольно хорошо соотносится с мировой практикой и определениями спама, положенными в основу американского и европейского законодательства о спаме. Кроме того, это определение можно эффективно использовать на практике. Анонимная рассылка: все страдают в основном именно от автоматических рассылок, со скрытым или фальсифицированным обратным адресом. В настоящее время не существует спамеров, которые не скрывали бы своего адреса и места рассылки. Массовая рассылка: именно массовые рассылки, и только они, являются настоящим бизнесом для спамеров и настоящей проблемой для пользователей. Небольшая рассылка, сделанная по ошибке человеком, не являющимся профессиональным спамером, может быть нежелательной почтой, но не спамом. Незапрошеная рассылка: очевидно, что подписные рассылки и конференции не должны попадать в категорию «спама» (хотя условие анонимности и так в значительной мере это гарантирует). Пять основных тематик покрывают около 50% всего потока спама, как в Рунете, так и в Интернете в целом. Состав тематических «лидеров» практически не менялся за Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 3 из 94 последние годы и не зависит от региона распространения спама. Лидирующие тематики спама следующие: · спам «для взрослых»; · здоровый образ жизни и медикаменты; · компьютеры и Интернет; · личные финансы; · образование. Очень большая часть спама не преследует рекламных или коммерческих целей. Существуют рассылки политического и агитационного спама, есть также «благотворительные» спамерские письма (призывающие помочь каким-нибудь несчастным). Отдельную категорию составляют мошеннические письма, а также письма, направленные на кражу паролей и номеров кредитных карт. Еще бывают так называемые «цепочечные письма», то есть письма с просьбой переслать их знакомым («страшилки», «письма счастья») и т. п. Есть также вирусные письма, содержащие завлекательный текст и вирусы под видом игрушек, картинок, программ. Сбор и верификация списков адресов Для рассылки спама необходимо иметь список адресов электронной почты потенциальных получателей («спам-базу», email database). Сбор адресов осуществляется следующими методами: · подбор по словарям имен собственных, «красивых слов», частых сочетаний «слово-цифра» (например, «john@», «cool@», «alex-2@»); · метод аналогий — если существует адрес Masha.Orlova@mail.ru, то вполне резонно поискать Masha.Orlova в почтовых доменах inbox.ru, gmail.ru, yandex.ru и т.п.; · сканирование всех доступных источников информации — веб-сайтов, форумов, чатов, досок объявлений, Usenet, баз данных Whois на сочетание « слово1@слово2.слово3» (при этом на конце такого сочетания должен быть домен верхнего уровня — com, ru, info и т.д.); · воровство баз данных сервисов, провайдеров и т.п.; · воровство персональных данных пользователей при помощи компьютерных вирусов и прочих вредоносных программ. При сканировании доступных источников информации (способ 3) можно пытаться определить «круг интересов» пользователей данного источника, что дает возможность получить тематические базы данных. В случае воровства данных у провайдеров Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 4 из 94 достаточно часто имеется дополнительная информация о пользователе, что тоже позволяет провести персонализацию. Фишинг Фишинг (англ. phishing) — вид Интернет-мошенничества, цель которого — получить идентификационные данные пользователей. Фишинг – это компьютерное преступление, мошенничество, основанное на принципах социотехники. Злоумышленником создается практически точная копия сайта выбранного Интернет- ресурса: банка, платёжной системы и т.п. Затем, при помощи спам-технологий рассылается письмо, составленное таким образом, чтобы быть максимально похожим на настоящее письмо от выбранной организации. Используются логотипы организации, имена и фамилии реальных руководителей. В таком письме, как правило, сообщается о том, что из-за смены программного обеспечения в системе оказания Интернет-услуг пользователю необходимо подтвердить или изменить свои учетные данные. В качестве причины для изменения данных могут быть названы выход из строя ПО или же нападение хакеров. Во всех случаях цель таких писем одна — заставить пользователя нажать на приведенную ссылку, а затем ввести свои конфиденциальные данные на ложном сайте. Как выглядят phishing-атаки? Мошенники со временем становятся все более изощренными, то же самое происходит и с phishing-сообщениями электронной почты и всплывающими окнами. Они часто используют официальные логотипы реальных организаций и другую идентифицирующую информацию, взятую непосредственно с надежного веб-узла. Ниже приведен пример phishing-сообщения электронной почты (Рис. 1.). Для придания phishing-сообщению еще более надежного вида мошенники могут поместить в него ссылку, на первый взгляд ведущую к надежному веб-узлу (1), хотя на самом деле она ведет на поддельный веб-узел мошенников (2) или вызывает всплывающее окно, которое выглядит так же, как официальный веб-узел. Эти фальшивые узлы называют также подложными веб-узлами. Попав на такой веб-узел, вы можете предоставить мошенникам личную информацию. Полученная информация чаще всего используется для приобретения товаров, получения новой кредитной карточки или хищения личных данных. В некоторых случаях злоумышленники размещают на подобных сайтах различные эксплойты уязвимостей MS Internet Explorer для побочной установки на компьютер пользователей каких-либо троянских программ. Появление в конце 2003 года экплойта уязвимости с подменой реального URL привело к появлению новой разновидности Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 5 из 94 фишинга, получившего название «спуфинг» (spoofing). В случае использования данной уязвимости атакуемый пользователь визуально может наблюдать настоящий адрес банковского сайта в адресной строке браузера, но находиться сам при этом будет на сайте поддельном. Успеху фишинг-афёр способствует низкий уровень осведомленности пользователей о правилах работы компаний, от имени которых действуют преступники. В частности, почти половина пользователей не знают простого факта: банки не рассылают писем с просьбой подтвердить в онлайне номер своей кредитной карты и её PIN-код. Для защиты от фишинга производители основных Интернет-браузеров договорились о применении одинаковых способов информирования пользователей о том, что они открыли подозрительный сайт, который может принадлежать мошенникам. Новые версии браузеров обладают такой возможностью. Рис. 1. Пример phishing-сообщения электронной почты со ссылкой на мошеннический веб-узел Реклама Реклама сегодня присутствует везде и постоянно – на улице, на телевидении, в журналах и газетах и, разумеется, в Интернет. Рекламу в Интернет можно разделить на внешнюю и внутреннюю применительно к компьютеру. Внутренней в этом случае будет самореклама программ, установленных на компьютере, реклама, демонстрируемая в качестве дополнения к основному функционалу загруженных из Интернет бесплатных программ, а также разного рода скрытые и полускрытые утилиты для демонстрации рекламы, установленные на компьютере. Последние три типа программ относятся к Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 6 из 94 категории adware и причислены к потенциально опасному ПО, так как, не нанося явного вреда системе, они, тем не менее, загружают канал передачи данных и отнимают время у пользователя. Внешней, применительно к целевому компьютеру, рекламой, обычно считаются всплывающие окна на сайтах, иногда без возможности закрытия и многочисленные банеры, показываемые в процессе интерактивной работы с Интернет, а также спамовые рекламные рассылки, уже рассмотренные ранее. В отличие от платного телевидения, покупка чистого от рекламы Интернета в настоящий момент не представляется возможной, а количество рекламы в Интернет постоянно возрастает, что автоматически поднимает вопрос о необходимости уменьшения этого количества. С рекламой, приходящей по электронной почте, очевидно, должны бороться антиспамовые фильтры, тогда как для уменьшения количества всплывающих окон и демонстрируемых баннеров нужны другие специальные средства. Хакерские атаки Под хакерскими атаками подразумевается два вида атак – с автоматическим внедрением вредоносных программ стандартными способами и реализуемые вручную, когда целью злоумышленника является взлом отдельной системы. Наилучшее средство борьбы с атаками второго рода – разработка и реализация правил безопасности, четко описывающих допустимые и недопустимые информационные потоки в сети. Для практической реализации политики безопасности в случае хакерских атак, как правило, используются пакетные фильтры, межсетевые экраны и системы обнаружения вторжений (Intrusion Detection System, IDS). 1.2. Понятие многоуровневой системы защиты сети образовательного учреждения Современные информационные системы имеют сложную структуру. Они содержат пользовательские приложения, работающие во взаимодействии с различными операционными системами, установленными на компьютерах, объединенных в локальную сеть, часто связанную тем или иным образом с сегментом глобальной сети. Обеспечение безопасности такой системы требует проведения целого комплекса мероприятий в соответствии с разработанной на предприятии политикой информационной безопасности. Существует два возможных направления политики информационной безопасности. В первом случае (ограничительная политика), пользователь имеет право использовать любые ресурсы, кроме тех, доступ к которым ограничен или закрыт. Во втором случае Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 7 из 94 (нормативная политика), пользователь имеет право использовать только те ресурсы, которые ему явным образом выделены. Первая схема политики безопасности применяется, как правило, на предприятиях с большим набором функционально различных групп достаточно квалифицированных пользователей. Вторая схема применима там, где производится много действий с одним и тем же набором приложений, причем круг этих приложений может быть очерчен заранее, а любое нестандартное действие рассматривается как попытка нарушения режима информационной безопасности. В соответствии с принятой терминологией, информационная безопасность обеспечена в случае, если для любых информационных ресурсов в системе поддерживается определенный уровень конфиденциальности (невозможности несанкционированного получения какой-либо информации), целостности (невозможности несанкционированной либо случайной ее модификации) и доступности (возможности за разумное время получить требуемую информацию). При этом должна учитываться не только вероятность нарушения какого-либо из аспектов безопасности в результате умышленных либо неумышленных действий пользователей, но и вероятность выхода из стоя каких-либо узлов информационной системы. В этом смысле средства повышения надежности также входят в комплекс информационной безопасности предприятия. Многоуровневая защита информационной системы Невозможно анализировать безопасность информационной системы без рассмотрения ее структуры, хотя бы в самом общем виде. Подобная структура достаточно хорошо описывается четырехуровневой моделью. Рис. 2. Четырехуровневая модель информационной системы Ниже приведена краткая характеристика каждого из уровней: Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 8 из 94 1. Внешний уровень определяет взаимодействие информационной системы организации с глобальными ресурсами и системами других организаций. Функционально этот уровень характеризуется, с одной стороны, информационными (главным образом, сетевыми) сервисами, предоставляемыми данной организацией, с другой стороны, аналогичными сервисами, запрашиваемыми из глобальной сети. На этом уровне должны отсекаться, как попытки внешних пользователей несанкционированно получить доступ к внутренним сервисам, так и попытки собственных пользователей осуществить подобные операции по отношению к внешним сервисам или несанкционированно переслать информацию в глобальную сеть. 2. Сетевой уровень связан с доступом к информационным ресурсам внутри локальной сети организации. Безопасность информации на этом уровне обеспечивается средствами проверки подлинности пользователей и разграничением доступа к ресурсам локальной сети (аутентификация и авторизация). 3. Системный уровень связан, прежде всего, с управлением доступом к ресурсам ОС. Именно на этом уровне происходит непосредственное взаимодействие с пользователями, запускаются приложения, и, самое главное, определяются «правила игры» между информационной системой и пользователем (задается либо изменяется конфигурация системы). В этой связи, естественно понимать защиту информации на данном уровне, как четкое разделение, к каким ресурсам ОС, какой пользователь и когда может быть допущен. Важность именно этого уровня можно проиллюстрировать тем фактом, что долгое время вопросы информационной безопасности сводились исключительно к рассмотрению защиты на уровне и средствами ОС. 4. Уровень приложений связан с использованием прикладных ресурсов информационной системы. Поскольку именно приложения на содержательном уровне работают с пользовательскими данными, для них, вообще говоря, нужны собственные механизмы обеспечения информационной безопасности. Многоуровневая защита с точки зрения сетевой архитектуры Концепция многоуровневой системы безопасности состоит в наращивании числа «линий обороны» с целью повышения степени защищенности охраняемого объекта. Такая система защиты многократно увеличивает затраты, необходимые для проведения атаки. Она воздвигает множество препятствий на пути злоумышленника. Эшелонированная оборона предотвращает как прямые атаки на критически важные системы, так и попытки «прощупывания» вашей сети. Кроме того, такое построение системы защиты Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 9 из 94 предполагает и реверсный эффект – предотвращение несанкционированных действий собственных пользователей по отношению к внешним ресурсам. С точки зрения сети образовательного учреждения такой подход представляется наиболее актуальным. При организации защиты от Интернет-угроз важным является понятие периметра – укреплённой границы сети. Периметр может состоять из различных подсистем, как представленных различными аппаратными и программными средствами, так и объединёнными в единый программно-аппаратный комплекс. Такими подсистемами обычно являются: · маршрутизаторы (routers); · межсетевые экраны (брандмауэры, firewalls); · прокси-серверы; · системы обнаружения вторжений (IDS); · средства создания виртуальных частных сетей (VPN); · антивирусные средства; · экранированные подсети. Пограничный маршрутизатор Маршрутизаторы (routers) осуществляют управление трафиком, поступающим в сеть, выходящим из сети или трафиком внутри самой сети. Пограничный маршрутизатор (border router) является последним маршрутизатором непосредственно перед выходом во внешнюю сеть. В силу того, что весь Интернет-трафик организации проходит через этот маршрутизатор, последний часто функционирует в роли первой и последней линии защиты сети, обеспечивая фильтрацию входящего и исходящего трафика. Межсетевой экран Межсетевой экран — комплекс аппаратных или программных средств, осуществляющий контроль и фильтрацию проходящих через него сетевых пакетов на различных уровнях модели OSI в соответствии с заданными правилами. Основной задачей межсетевого экрана является защита компьютерных сетей или отдельных узлов от несанкционированного доступа. Также межсетевые экраны часто называют фильтрами, так как их основная задача — не пропускать (фильтровать) пакеты, не подходящие под критерии, определённые в конфигурации. Некоторые межсетевые экраны также позволяют осуществлять трансляцию адресов — динамическую замену адресов назначения или источника – Network Address Translation (NAT). Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 10 из 94 Другие названия Брандма́уэр (нем. Brandmauer) — заимствованный из немецкого языка термин, являющийся аналогом английского firewall в его оригинальном значении (стена, которая разделяет смежные здания, предохраняя от распространения пожара). Интересно, что в области компьютерных технологий в немецком языке употребляется слово «firewall». Файрво́лл, файрво́л, файерво́л, фаерво́л — образовано транслитерацией английского термина firewall, эквивалентного термину межсетевой экран, в настоящее время не является официальным заимствованным словом в русском языке. Разновидности межсетевых экранов Межсетевые экраны подразделяются на различные типы в зависимости от следующих характеристик: · обеспечивает ли экран соединение между одним узлом и сетью или между двумя или более различными сетями; · происходит ли контроль потока данных на сетевом уровне или более высоких уровнях модели OSI; · отслеживаются ли состояния активных соединений или нет. В зависимости от охвата контролируемых потоков данных межсетевые экраны делятся на: · традиционный межсетевой экран — программа (или неотъемлемая часть операционной системы) на шлюзе (сервере передающем трафик между сетями) или аппаратное решение, контролирующие входящие и исходящие потоки данных между подключенными сетями; · персональный межсетевой экран — программа, установленная на пользовательском компьютере и предназначенная для защиты от несанкционированного доступа только этого компьютера. Вырожденный случай — использование традиционного межсетевого экрана сервером, для ограничения доступа к собственным ресурсам. В зависимости от уровня модели OSI, на котором происходит контроль доступа, существует следующее разделение межсетевых экранов: · функционирующие на сетевом уровне, когда фильтрация происходит на основе адресов отправителя и получателя пакетов, номеров портов транспортного уровня модели OSI и статических правил, заданных администратором; · функционирующие на сеансовом уровне (также известные как stateful) — отслеживающие сеансы между приложениями, не пропускающие пакеты нарушающих спецификации TCP/IP, часто используемых в злонамеренных операциях — Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 11 из 94 сканировании ресурсов, взломах через неправильные реализации TCP/IP, обрыв/замедление соединений, инъекция данных; · функционирующие на уровне приложений, фильтрация на основании анализа данных приложения, передаваемых внутри пакета: такие типы экранов позволяют блокировать передачу нежелательной и потенциально опасной информации, на основании политик и настроек. Некоторые решения, относимые к межсетевым экранам уровня приложения, представляют собой прокси-серверы с некоторыми возможностями межсетевого экрана, реализуя прозрачные прокси-серверы, со специализацией по протоколам. Возможности прокси-сервера и многопротокольная специализация делают фильтрацию значительно более гибкой, чем на классических межсетевых экранах, но такие приложения имеют все недостатки прокси-серверов (например, анонимизация трафика). В зависимости от возможности отслеживания активных соединений межсетевые экраны подразделяются на: · stateless (простая фильтрация), которые не отслеживают текущие соединения (например, TCP), а фильтруют поток данных исключительно на основе статических правил; · stateful, stateful packet inspection (SPI) (фильтрация с учётом контекста), с отслеживанием текущих соединений и пропуском только таких пакетов, которые удовлетворяют логике и алгоритмам работы соответствующих протоколов и приложений: такие типы межсетевых экранов позволяют эффективнее бороться с различными видами DoS-атак и уязвимостями некоторых сетевых протоколов, кроме того, они обеспечивают функционирование таких протоколов, как H.323, SIP, FTP и т.п., которые используют сложные схемы передачи данных между адресатами, плохо поддающиеся описанию статическими правилами, и, зачастую, несовместимых со стандартными, stateless межсетевыми экранами. Прокси-серверы Прокси-сервер (от англ. proxy — «представитель, уполномоченный») — служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой- либо ресурс (например, e-mail или веб-сайт), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси имеет свой кэш). В некоторых случаях запрос клиента или ответ сервера может быть изменён Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 12 из 94 прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак. Чаще всего прокси-серверы применяются для следующих целей: · обеспечение доступа с компьютеров локальной сети в Интернет; · кэширование данных: если часто происходят обращения к одним и тем же внешним ресурсам, то можно держать их копию на прокси-сервере и выдавать по запросу, снижая тем самым нагрузку на канал во внешнюю сеть и ускоряя получение клиентом запрошенной информации; · сжатие данных: прокси-сервер загружает информацию из Интернета и передаёт информацию конечному пользователю в сжатом виде, такие прокси-серверы используются в основном с целью экономии внешнего трафика; · защита локальной сети от внешнего доступа: например, можно настроить прокси-сервер так, что локальные компьютеры будут обращаться к внешним ресурсам только через него, а внешние компьютеры не смогут обращаться к локальным вообще (они «видят» только прокси-сервер). · ограничение доступа из локальной сети к внешней: например, можно запретить доступ к определённым веб-сайтам, ограничить использование интернета каким-то локальным пользователям, устанавливать квоты на трафик или полосу пропускания, фильтровать рекламу и вирусы; · анонимизация доступа к различным ресурсам: прокси-сервер может скрывать сведения об источнике запроса или пользователе; в таком случае целевой сервер видит лишь информацию о прокси-сервере, например, IP-адрес, но не имеет возможности определить истинный источник запроса, существуют также искажающие прокси-серверы, которые передают целевому серверу ложную информацию об истинном пользователе. Многие прокси-серверы используются для нескольких целей одновременно. Некоторые прокси-серверы ограничивают возможность использования только нескольких наиболее популярных протоколов: http - tcp/80, https – tcp/443 (шифрованное соединение http), ftp – tcp/20 и tcp/21. В отличие от шлюза, прокси-сервер чаще всего не пропускает ICMP-трафик (невозможно проверить доступность машины командами ping и tracert). Прокси-сервер, к которому может получить доступ любой пользователь сети интернет, называется открытым. Прозрачный прокси — это такой прокси-сервер, который принимает трафик от клиентов сети через маршрутизатор, способный различать какой трафик должен быть Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 13 из 94 направлен через прокси-сервер. То есть клиенту не нужно проводить конфигурацию ПО для работы через прокси-сервер, маршрутизатор сам направит трафик клиента на прокси- сервер. Системы обнаружения вторжений IDS (Intrusion Detection System) – система обнаружения вторжений выполняет роль охранной сигнализации сети и применяется для обнаружения и извещения обо всех сетевых пакетах, являющихся частью вредоносного или потенциально опасного трафика. Система, как правило, содержит множество детекторов различного типа, размещенных в стратегических точках сети. Детекторы IDS ищут заданные сигнатуры нежелательных событий и могут выполнять заранее предопределённые действия, подобно тому, как антивирус определяет наличие вируса в файле. Виртуальные частные сети VPN (Virtual Private Network) – виртуальная частная сеть представляет собой защищенный сеанс, для организации которого используются незащищенные каналы, например, Интернет. Антивирусные средства Антивирусные средства предназначены для борьбы с вредоносными программами и иными угрозами и, как правило, интегрируются с другими подсистемами сетевого периметра. Экранированная подсеть Представляет собой изолированную сеть, соединенную с определенным интерфейсом межсетевого экрана или другого фильтрующего трафик устройства. Сеть образовательного учреждения, защищённая с помощью продуктов из комплекта поставки СПО, может рассматриваться как экранированная подсеть. Организация многоуровневой защиты сети образовательного учреждения с использованием комплекта ПСПО В комплекте ПСПО поставляется несколько продуктов, предназначенных для построения защищённого периметра сети образовательного учреждения: · межсетевой экран netfilter/iptables; · модульный конфигуратор Alterator, используемый, в том числе, и для управления работой межсетевого экрана netfilter/iptables; · антивирус ClamAV; · графический интерфейс настройки и управления антивирусом KlamAV; · кэширующий прокси-сервер Squid; Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 14 из 94 · система контентной фильтрации (СКФ). Общая схема совместной работы указанных компонентов представлена на диаграмме: Веб-прокси Интернет клиент j Прокси-сервер l Netfilter Netfilter l Squid k k Антивирус СКФ ClamAV Рис. 3. Схема обработки исходящих запросов из сети образовательного учреждения Порядок взаимодействия компонентов в вышеприведённой схеме следующий: 1. Ученик обращается с компьютера, сконфигурированного как клиент прокси- сервера Squid к Интернет-ресурсу. 2. Межсетевой экран Netfilter принимает запрос и, опираясь на список своих правил, сформированных для внутреннего интерфейса, принимает решение о разрешении или запрете дальнейшей обработки запроса. При положительном решении запрос попадает к прокси-серверу Squid. 3. Прокси-сервер Squid, опираясь на собственный список правил, также принимает решение о возможности дальнейшей обработки запроса. В качестве критериев принятия решения выступают также ответы от антивируса и СКФ, к которым прокси-сервер Squid обращается в процессе обработки запроса. При положительном решении запрос перенаправляется на внешний интерфейс прокси- сервера. 4. Межсетевой экран Netfilter обрабатывает запрос, опираясь на список своих правил, сформированных для внешнего интерфейса. При положительном решении запрос передаётся в Интернет. Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 15 из 94 5. Обработка ответа происходит в обратном порядке. При этом, если антивирус обнаружит в ответе вредоносный код, он передаст отрицательный ответ прокси-серверу, и компьютер ученика не получит несущую угрозу информацию с Интернет-ресурса. 2. Программное обеспечение для защиты от вирусов и всех других типов вредоносных программ, а также от хакерских атак и спама (KlamAV+ClamAV, alterator-firewall) В предыдущем разделе была приведена схема совместного использования продуктов из комплекта ПСПО. Для её практического использования требуется установить и настроить каждый из компонентов. 2.1. Антивирус ClamAV Clam AntiVirus — это антивирусный набор с открытым исходным кодом (GPL) для UNIX, предназначенный, прежде всего, для сканирования электронной почты на почтовых шлюзах. Он предоставляет некоторое количество утилит, включая гибкий и масштабируемый многопоточный демон, сканер командной строки и продвинутый инструмент для автоматических обновлений баз данных. Ядром набора является антивирусный механизм, доступный в форме разделяемой библиотеки. Общие сведения Вот список основных возможностей: · сканер командной строки; · быстрый, многопоточный демон с поддержкой сканирования при доступе; · milter-интерфейс для sendmail; · модуль обновления баз сигнатур угроз с возможностью получения частичных обновлений и использованием цифровых подписей файлов обновлений; · C-библиотека вирусного сканера; · сканирование при доступе (Linux® и FreeBSD®); · вирусная база данных, обновляемая несколько раз в день (смотрите домашнюю страницу относительно общего числа сигнатур); · встроенная поддержка различных архивных форматов, включая Zip, RAR, Tar, Gzip, Bzip2, OLE2, Cabinet, CHM, BinHex, SIS и другие; · встроенная поддержка почти всех форматов почтовых файлов; Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 16 из 94 · встроенная поддержка выполняемых файлов ELF и Portable Executable, сжатых UPX, FSG, Petite, NsPack, wwpack32, MEW, Upack и замаскированных SUE, Y0da Cryptor и другими; · встроенная поддержка общераспространённых форматов документов, включая файлы MS Office и MacOffice, HTML, RTF и PDF. Принцип функционирования антивируса схематично изображён на следующем рисунке: Приложения sendmail clamdscan Squid clamscan freshclam Интерфейсы clamav- clamd milter Исполнительный Антивирусное механизм ядро (libclamav) База сигнатур Рис. 4. Принципиальная схема функционирования антивируса Процесс поддержания баз сигнатур угроз в актуальном состоянии База сигнатур угроз поддерживается в актуальном состоянии, не в последнюю очередь, благодаря помощи сообщества СПО. Группа создателей сигнатур старается не отставать от создателей и распространителей новых угроз, выпуская обновление базы сигнатур меньше, чем через час после начала распространения нового вредоносного кода. При обнаружении нового вируса, который не смог обнаружить ClamAV, необходимо заполнить форму на сайте http://www.clamav.net/sendvirus. Группа создателей сигнатур проверит полученную информацию и при необходимости обновит базу сигнатур. 2.1.1. Установка ClamAV Устанавливать приложения из комплекта ПСПО лучше всего с использованием менеджера пакетов Synaptic, т.к. это гарантирует совместимость всех программным модулей комплекта друг с другом. Если вы планируете произвести установку из rpm-пакетов, то обратитесь к документации разработчика: http://www.clamav.net/doc/latest/clamdoc.pdf Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 17 из 94 Для установки из репозитария необходимо запустить менеджер пакетов, выбрать пакет clamav и отметить его для установки. После чего применить изменения, и антивирус будет установлен. Если антивирус уже установлен, то этот шаг можно пропустить. По окончании установки в системе будут присутствовать следующие исполняемые файлы: · /usr/sbin/clamd – антивирусный демон, прослушивающий подключения к UNIX или TCP-сокетам и сканирующий каталоги по требованию; · /usr/bin/clamscan – утилита командной строки, предназначенная для проверки файлов и каталогов на предмет наличия вирусов; · /usr/bin/clamdscan – простой интерфейс к демону clamd, позволяет также сканировать файлы и каталоги, при этом используются те же параметры, что и в clamscan; · /usr/bin/freshclam – утилита автоматического обновления вирусной базы данных через Интернет, позволяющая держать ее в актуальном состоянии; · /usr/bin/sigtool – генерирует вирусную сигнатуру, используя внешний антивирусный сканер, который способен обнаружить вирус. Может создавать шестнадцатеричный дамп и формировать и распаковывать CVD-базу данных (ClamAV Virus Database). 2.1.2. Настройка ClamAV Для успешного функционирования исполняемых модулей, входящих в состав антивируса ClamAV, потребуется создать в системе учетные записи пользователя и группы с именем clamav. Именно эти учётные записи используются для доступа к директориям и файлам со служебной информацией. Их можно создать, например, с помощью следующей последовательности команд: # groupadd clamav # useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav Необходимо заблокировать несанкционированный доступ к вновь созданным учетным записям. Если антивирус был установлен из репозитария, то он уже настроен на использования учётной записи пользователя mail, входящего в состав группы mail. Антивирус ClamAV использует для настройки параметров функционирования своих компонентов два конфигурационных файла: clamd.conf для демона clamd и freshclam.conf для утилиты обновления баз сигнатур freshclam. Если установка производилась средствами менеджера пакетов Synaptic, то эти файлы будут расположены в директории /etc/clamav, и их редактирование без необходимости не требуется. Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 18 из 94 При установке из rpm-пакетов с параметрами по умолчанию конфигурационные файлы располагаются в директории /usr/local/etc и требуют обязательного первоначального редактирования. Редактирование заключается в комментировании строки со словом Example. Прочие параметры настраиваются по необходимости. Файл clamd.conf содержит следующие основные настройки: 1. User – имя учётной записи, используемой для работы демоном clamd, например: User clamav 2. LogFile – полный путь к файлу журнала демона clamd, например: LogFile /var/log/clamav/clamd.log Для правильного и корректного функционирования демона clamd необходимо вручную создать указанный файл и сделать его владельцем пользователя, указанного в параметре User. 3. DatabaseDirectory - полный путь к директории, в которой хранятся файлы базы сигнатур, например: DatabaseDirectory /var/lib/clamav Необходимо, чтобы пользователь, указанный в параметре User, имел доступ на чтение к указанной директории. 4. TemporaryDirectory - полный путь к директории, в которую демон clamd будет сохранять временные файлы, например: TemporaryDirectory /var/tmp Необходимо, чтобы пользователь, указанный в параметре User, имел доступ на чтение и запись к указанной директории. 5. LocalSocket - полный путь к файлу сокета, который демон clamd будет использовать для взаимодействия с другими программами, например: LocalSocket /var/lib/clamav/clamd.socket Для правильного и корректного функционирования демона clamd необходимо вручную создать указанный файл и сделать его владельцем пользователя, указанного в параметре User. 6. LogFileMaxSize – максимальный размер файла журнала, значение «0» означает отсутствие ограничений. Например: LogFileMaxSize 1M 7. TCPAddr – IP-адрес сетевого интерфейса компьютера, по которому демон принимает запросы на проверку файлов от внешних приложений, например: TCPAddr 192.168.10.1 По умолчанию запросы принимаются через любой интерфейс. Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 19 из 94 8. TCPSocket – порт протокола TCP, по которому демон принимает запросы на проверку файлов от внешних приложений, например: TCPSocket 3310 9. AlgorithmicDetection – указание использовать эвристический алгоритм для обнаружения вредоносного кода, например: AlgorithmicDetection yes 10. Указания проверять различные типы файлов, используя собственные алгоритмы анализа структуры соответствующих типов файлов. Например: ScanPE yes ScanELF yes ScanOLE2 yes ScanPDF yes 11. Указания проверять присутствие атаки фишинг в сообщениях электронной почты и способы реакции на такое событие: PhishingSignatures yes PhishingScanURLs yes PhishingRestrictedScan yes PhishingAlwaysBlockSSLMismatch no PhishingAlwaysBlockCloak no 12. ScanHTML – указание нормализовать HTML-заголовки с целью выявления злонамеренно модифицированных заголовков, например: ScanHTML yes 13. ScanArchive – указание проверять файлы архивных форматов, например: ScanArchive yes С прочими настройками можно ознакомиться в конфигурационном файле, созданном программой установки антивируса. В нём содержится полный список всех параметров и достаточно подробное описание синтаксиса и назначения каждого из них. Неиспользуемые параметры закомментированы. 2.1.3. Настройка получения обновлений антивирусных баз Обновление антивирусных баз может осуществляться в двух режимах: интерактивном – путём однократного запуска утилиты freshclam командной строки, и в автоматическом – путём запуска утилиты freshclam как демона. Утилита freshclam поддерживает возможность частичного получения обновлений антивирусных баз, что позволяет не передавать полный CVD-файл при каждом обновлении, а только изменения между текущим состоянием антивирусных баз на сервере и на обновляемом компьютере. Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 20 из 94 Для настройки утилиты обновления баз сигнатур freshclam используется конфигурационный файл freshclam.conf. Он располагается в той же директории, что и файл clamd.conf, и принципы его редактирования те же. Файл freshclam.conf содержит следующие основные настройки: 1. DatabaseDirectory - полный путь к директории, в которой хранятся файлы базы сигнатур, например: DatabaseDirectory /var/lib/clamav Путь к этой директории должен быть тем же самым, что и в файле clamd.conf. 2. DatabaseOwner – имя учётной записи, используемой для записи файлов в директорию, указанную в параметре DatabaseDirectory, например: DatabaseOwner clamav Этой учётной записи необходимо предоставить права чтения и записи в директорию, указанную в параметре DatabaseDirectory. Лучше использовать ту же учётную запись, что и в настройках демона clamd. 3. UpdateLogFile – полный путь к файлу журнала утилиты freshclam, например: UpdateLogFile /var/log/clamav/freshclam.log Для правильного и корректного функционирования утилиты freshclam необходимо вручную создать указанный файл и сделать его владельцем пользователя, указанного в параметре DatabaseOwner. С прочими настройками можно ознакомиться в конфигурационном файле, созданном программой установки антивируса. В нём содержится полный список всех параметров и достаточно подробное описание синтаксиса и назначения каждого из них. Неиспользуемые параметры закомментированы. Проверка правильности функционирования 1. Для проверки правильности функционирования утилиты freshclam необходимо в консольном окне выполнить команду: # freshclam Если всё настроено правильно, то утилита подключится к серверу обновлений и скопирует последние файлы сигнатур угроз. 2. Для запуска утилиты freshclam в режиме демона необходимо выполнить команду: # freshclam –d Проверить, что утилита успешно запустилась можно командой: # ps fealxw | grep freshclam Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 21 из 94 3. Для проверки возможности обнаружения вирусов с помощью утилиты сканирования нужно загрузить с сайта http://eicar.org тестовые образцы «вируса» Eicar в директорию /tmp. Затем выполнить команду: # clamscan -r -l scan.txt /tmp Антивирус должен найти тестовые файлы и сохранить результаты сканирования в файл scan.txt. 4. Для проверки работоспособности демона clamd необходимо запустить его и использовать команду clamdscan: # clamdscan -l scan.txt /tmp Обратите внимание, что сканируемые файлы должны быть доступны учетной записи демона clamd, иначе будет сгенерировано сообщение об ошибке при попытке доступа. Антивирусная проверка файлов при обращении Для организации расширенной обработки событий обращения к файлам со стороны процессов, исполняющихся в среде ОС Linux, был разработан дополнительный модуль Dazuko, который доступен для скачивания на сайте http://dazuko.org/. По сути, он выполняет функцию файлового монитора, перехватывающего обращения к файлам и передающего их на обработку сторонним программам, которые зарегистрированы у него как дополнительные обработчики данного события. Такие обработчики проверяют параметры запроса по своим правилам и возвращают своё решение о допустимости или недопустимости разрешить данное обращение. Текущая версия демона clamd позволяет встроиться в цепочку обработчиков события доступа к файлам в списке модуля Dazuko, тем самым реализуя совместно с ним функционал антивирусного монитора. Модуль Dazuko является экспериментальным и не обязательным для запуска и успешного функционирования демона clamd. Для взаимодействия с модулем Dazuko в демоне clamd используется специальный интерфейс – Clamuko, реализованный в форме отдельного потока. Этот поток принимает от модуля Dazuko сигнал о попытке получить доступ к файлу и передаёт информацию о файле основному потоку демона, который с помощью антивирусных баз проверяет файл на наличие вирусов. Если вирус не был обнаружен, то через интерфейс Clamuko передаётся положительное решение о доступе к файлу, в противном случае - отрицательное. Необходимо соблюдать следующие важные правила при интеграции демона clamd с модулем Dazuko: Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 22 из 94 · демон требуется останавливать корректно, т.е. используя команду SHUTDOWN или сигнал SIGTERM: в противном случае может произойти потеря доступа к файлам, которые проверялись в момент некорректного завершения работы демона, до перезагрузки системы; · не включать в список защищаемых демоном директорию, используемую почтовым сканером для распаковки вложений: доступ ко всем зараженным файлам будет автоматически заблокирован и сканер (включая clamd!) не сможет определить наличие вируса во вложении, как результат заражённое письмо может быть доставлено получателю. В качестве примера, для защиты полностью всей системы в файл clamd.conf должны быть добавлены следующие строки: ClamukoScanOnAccess ClamukoIncludePath / ClamukoExcludePath /proc ClamukoExcludePath /temporary/dir/of/your/mail/scanning/software 2.2. Графическая оболочка KlamAV KlamAV — программа KDE для обнаружения вирусов, которая позволяет осуществлять сканировать файлы и директории на наличие вирусов, в том числе и по расписанию, получать сведения о вирусах, обновлять антивирусную базу данных и антивирусное программное обеспечение. Другими словами, это графический интерфейс для взаимодействия с антивирусом ClamAV. Данный продукт, как и ClamAV распространяется по лицензии GNU GPL. Установку приложения KlamAV, как и антивируса ClamAV, необходимо осуществлять с использованием менеджера пакетов Synaptic. Название пакета: klamav. Перед началом работы с KlamAV необходимо указать два основных параметра: где будут располагаться карантин и антивирусная база данных (Рис. 5): Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 23 из 94 Рис. 5. Страница Мастера первоначальной настройки KlamAV Интерфейс Klamav состоит из ряда страниц-вкладок, каждая из которых имеет свое предназначение. Ниже приведен внешний вид и указано предназначение каждой из вкладок. На первой вкладке – «Проверка» (Рис.6.) настраиваются задачи проверки различных областей системы по требованию. Настраиваемые здесь действия аналогичны действию утилиты clamscan. Рис. 6. Закладка настройки задач проверки по требованию (антивирусного сканера) При необходимости регулярного выполнения настраиваемых действий можно создать расписание запуска созданных задач (Рис 7.). Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 24 из 94 Рис. 7. Настройка расписания запуска задач проверки по требованию Используя кнопку «Параметры» можно вызвать окно общих настроек антивируса (Рис. 8). Рис. 8. Настройка параметров проверки архивов В окне настроек можно сконфигурировать следующие параметры: · ограничения по проверке файлов архивов (Рис. 8.); · типы архивов, формат которых понимает и может проверить антивирус (Рис. 9); · типы файлов специального формата, которые должен обрабатывать антивирус (Рис. 10); · действия с объектами файловой системой, которые должны предваряться проверкой антивирусом запрошенных объектов (Рис. 11); · указание типов событий, которые должны фиксироваться в журнале (Рис. 12). Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 25 из 94 Рис.9.Настройка типов архивов, проверяемых антивирусом Рис.10.Настройка специальных типов файлов, проверяемых антивирусом Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 26 из 94 Рис.11. Настройка действий, при которых запускается проверка при доступе (антивирусный монитор) Рис.12. Настройка параметров ведения журнала На закладке «Автоматическая проверка» (Рис. 13) настраивается интерфейс Clamuko, а именно, за какими директориями вести постоянное наблюдение и какие действия предпринимать при обнаружении вируса. Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 27 из 94 Рис. 13. Закладка настройки автоматической проверки файлов (антивирусного монитора) Закладка «Обновить» (Рис. 14) служит для настройки процесса обновления антивирусных баз и модулей приложения. Здесь можно указать путь к директории, где должны располагаться антивирусные базы, параметры доступа к серверу обновлений через прокси-сервер, а также частоту проверки наличия обновлений. Т.е. производится настройка параметров модуля freshclam. Рис. .14. Закладка настройки задачи автоматического получения обновлений Закладка «Электронная почта» (Рис. 15) служит для выбора типа почтового клиента с целью интеграции с ним антивируса и запуска процесса проверки входящей/исходящей почты. Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 28 из 94 Рис. 15. Закладка настройки интеграции с клиентом электронной почты Закладка «Карантин» (Рис. 16) служит для указания директории, используемой в качестве хранилища, в которое перемещаются обнаруженные вредоносные объекты, и для работы с этими объектами. Рис. 16. Закладка настройки параметров карантина Закладка «Журнал» (Рис. 17) служит для просмотра событий и результатов выполнения задач, запущенных программой KlamAV. Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 29 из 94 Рис. 17. Закладка просмотра журнала работы KlamAV Закладки «Сведения о вирусах» (Рис. 18) и «О программе» (Рис. 19) позволяют посмотреть справочную информацию о вирусах, которые в состоянии обнаружить антивирус, в вирусной энциклопедии и информацию о самом продукте, в т.ч. на сайте проекта. Рис. 18. Закладка просмотра информации о вирусах, из числа имеющихся в вирусной базе, в вирусной энциклопедии Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 30 из 94 Рис. 19. Закладка просмотра информации о продукте KlamAV 2.3. Межсетевой экран netfilter/iptables Netfilter — межсетевой экран (брандмауэр), встроенный в ядро Linux версий 2.4 и 2.6. Iptables — название пользовательской утилиты (запускаемой из командной строки) предназначенной для управления netfilter. С её помощью администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов. Некоторые авторы под словом netfilter имеют в виду только те элементы межсетевого экрана, которые непосредственно являются частью стека протоколов ядра Linux, а всё прочее (систему таблиц и цепочек) называют iptables, другие под термином iptables подразумевают и сам межсетевой экран netfilter. Поэтому, из-за не совсем ясной терминологии, весь проект (внутриядерный межсетевой экран вместе с пользовательской утилитой) просто именуется netfilter/iptables. Межсетевой экран netfilter присутствует в ядре ОС изначально, а утилиту iptables возможно придётся инсталлировать отдельно. Как и раньше, инсталляцию лучше осуществлять с использованием менеджера пакетов Synaptic. Название пакета: iptables. Вопреки очень распространённому мнению, ни iptables, ни netfilter не производят маршрутизацию пакетов и никак ей не управляют. Netfilter только фильтрует и модифицирует (в том числе, для NAT) пакеты по правилам, заданным администратором через утилиту iptables. Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 31 из 94 История проекта Проект netfilter/iptables был основан в 1998. Автором является Расти Расселл (англ. Rusty Russell), он же автор проекта#предшественника ipchains. По мере развития проекта, в 1999 г. образовалась команда Netfilter Core Team (сокращено coreteam). Разработанный межсетевой экран получил официальное название netfilter. В марте 2000 г. он был включен в ядро Linux 2.3. Изначально разработка netfilter и iptables шла совместно, поэтому в ранней истории этих проектов есть много общего. Предшественниками iptables были проекты ipchains (применялась для администрирования файрвола ядрах Linux версии 2.2) и ipfwadm (аналогично для ядер Linux версий 2.0). Последний был основан на BSD-утилите ipfw. Iptables сохраняет идеологию, ведущую начало от ipfwadm: функционирование файрвола определяется набором правил, каждое из которых состоит из критерия и действия, применяемого к пакетам, подпадающим под этот критерий. В ipchains появилась концепция цепочек — независимых списков правил. Были введены отдельные цепочки для фильтрации входящих (INPUT), исходящих (OUTPUT) и транзитных (FORWARD) пакетов. В продолжении этой идеи, в iptables появились таблицы — независимые группы цепочек. Каждая таблица решала свою задачу — цепочки таблиц filter отвечали за фильтрацию, цепочки таблиц nat — за преобразование сетевых адресов (NAT), к задачам цепочки таблиц mangle относились прочие модификации заголовков пакетов (например, изменение TTL или TOS). Кроме того, была слегка изменена логика работы цепочек: в ipchains все входящие пакеты, включая транзитные, проходили цепочку INPUT. В iptables через INPUT проходят только пакеты, адресованные самому хосту. Такое разделение функционала позволило iptables при обработке отдельных пакетов использовать информацию о соединениях в целом (ранее это было возможно только для NAT). В этом iptables значительно превосходит ipchains, так iptables может отслеживать состояние соединения (сеанса) и перенаправлять, изменять или отфильтровывать пакеты, основываясь не только на данных из их заголовков (источник, получатель) или содержимого пакетов, но и на основании данных о соединении. Такая возможность файрвола называется stateful-фильтрацией, в отличие от реализованной в ipchains примитивной stateless-фильтрации. В будущем, разработчики netfilter планируют заменить iptables на nftables — инструмент нового поколения, пока находящийся в ранней стадии разработки. Архитектура Ключевыми понятиями iptables являются: Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 32 из 94 · критерий — логическое выражение, анализирующее свойства пакета и/или соединения и определяющее, подпадает ли данный конкретный пакет под действие текущего правила; · действие — описание единичной операции, которую нужно произвести над пакетом и/или соединением в том случае, если они подпадают под действие этого правила; · счётчик — компонент правила, обеспечивающий учет количества пакетов, которые попали под критерий данного правила, также счётчик учитывает суммарный объем таких пакетов в байтах; · правило — состоит из критерия, действия и счётчика, если пакет соответствует критерию, к нему применяется действие, и он учитывается счётчиком; критерия может и не быть — тогда неявно предполагается критерий «все пакеты», указывать действие тоже не обязательно: в отсутствие действия правило будет работать только как счётчик; · цепочка — упорядоченная последовательность правил, цепочки можно разделить на пользовательские и базовые; · базовая цепочка — цепочка, создаваемая по умолчанию при инициализации таблицы; каждый пакет, в зависимости от того, предназначен ли он самому хосту, сгенерирован им или является транзитным, должен пройти положенный ему набор базовых цепочек различных таблиц; кроме того, базовая цепочка отличается от пользовательской наличием «действия по умолчанию» (default policy), это действие применяется к тем пакетам, которые не были обработаны другими правилами этой цепочки и вызванных из нее цепочек; имена базовых цепочек всегда записываются в верхнем регистре: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING; · пользовательская цепочка — цепочка, созданная пользователем, может использоваться только в пределах своей таблицы; рекомендуется не использовать для таких цепочек имена в верхнем регистре, чтобы избежать путаницы с базовыми цепочками и встроенными действиями; · таблица — совокупность базовых и пользовательских цепочек, объединенных общим функциональным назначением; имена таблиц записываются в нижнем регистре, так как в принципе не могут конфликтовать с именами пользовательских цепочек: при вызове команды iptables таблица указывается в формате -t имя_таблицы, при отсутствии явного указания, используется таблица filter. Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 33 из 94 Описание функционирования Для понимания функционирования netfilter/iptables далее будет использоваться следующая схема обработки IP-пакета, наложенная на модель OSI: Сеансовый уровень OUTPUT INPUT Сетевой IP уровень ò FORWARD POSTROUTING PREROUTING Канальный уровень eth0 eth1 Рис. 20. Схема обработки IP-пакетов в стеке TCP/IP В рассматриваемой схеме на канальном уровне функционируют два сетевых интерфейса: через eth0 в систему поступает входящий трафик, а через eth1 исходящий трафик покидает систему. На сетевом уровне функционирует протокол IP и происходит принятие решения о маршрутизации входящего трафика. На сеансовом и более высоких уровнях функционируют прикладные протоколы, принимающие поступающие пакеты и генерирующие исходящие пакеты. Ключевым для понимания функционирования сетевого фильтра netfilter/iptables является понятие цепочки. Цепочка — это часть пути, проходимого пакетом в системе, где могут применяться те или иные правила обработки (фильтрации). На приведённой схеме цепочки изображены стрелками. Изначально в систему встроены пять типов цепочек, называемых базовыми цепочками: · PREROUTING — цепочка, предназначенная для обработки только что поступивших пакетов, по которым не принято никакого решения по маршрутизации, т.е. ещё неизвестно адресованы они процессу, функционирующему на данном компьютере или должны быть переданы обратно в сеть через другой сетевой интерфейс; Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 34 из 94 · INPUT — цепочка, предназначенная для обработки пакетов, адресованных процессу, функционирующему на данном компьютере (клиенту или серверу); · FORWARD — цепочка, предназначенная для обработки пакетов, адресованных процессу, функционирующему на другом компьютере, т.е. транзитных пакетов; · OUTPUT — цепочка, предназначенная для обработки пакетов, сгенерированных локальными процессами, независимо от того адресованы они процессу на этом же компьютере или будут переданы в сеть на другой компьютер; · POSTROUTING — цепочка, предназначенная для окончательной обработки исходящих пакетов, независимо от того транзитные это пакеты или сгенерированные на том же самом компьютере. Помимо понятия цепочки используется понятие таблица. Каждая таблица применяется для осуществления вполне определенных действий с пакетами и может быть частью тех или иных цепочек. Таблицы бывают четырёх типов: · таблица filter содержит правила, которые занимаются собственно фильтрацией пакетов, т.е. выполняет функции межсетевого экрана; этот тип таблиц может быть использован в трёх цепочках: INPUT, FORWARD и OUTPUT; · таблица mangle предназначена для внесения изменений в заголовки пакетов, например, для изменения параметров QoS, ToS, TTL, и нестандартных действий с пакетами, свойственных ОС Linux; этот тип таблиц может быть использован во всех пяти цепочках: PREROUTING, POSTROUTING, INPUT, FORWARD и OUTPUT; · таблица nat используется для преобразования IP-адресов по технологии Network Address Translation (NAT), что, вообще говоря, тоже является изменением заголовков, но поскольку это затрагивает адреса отправителя и получателя (а следовательно, непосредственно влияет на решение о маршрутизации), то вынесено в отдельную таблицу; этот тип таблиц может быть использован в трёх цепочках: PREROUTING, POSTROUTING и OUTPUT; · таблица raw существует для обработки пакетов без отслеживания IP- соединения, по которому они проходят и позволяет, соответственно, обрабатывать произвольные пакеты до передачи их системе определения состояний; ввиду узкой специфики использования эта таблица по умолчанию пуста; этот тип таблиц может быть использован в двух цепочках: PREROUTING и OUTPUT. Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 35 из 94 Порядок обработки сетевых пакетов Несмотря на то, что в netfilter используется несколько таблиц и цепочек, пакет не может параллельно обрабатываться ими всеми. Он проходит через таблицы и цепочки последовательно. Запомнить порядок прохождения таблиц несложно, т.к. он одинаков для любого типа цепочки: raw → mangle → nat → filter. В зависимости от типа цепочки не используются те типы таблиц, которые в них неприменимы (см. описание типов таблиц, приведённое выше). Обработка сетевого пакета может происходить по одному из трёх возможных сценариев: · пакет поступает на сетевой интерфейс компьютера и в качестве получателя выступает процесс этого же компьютера, т.е. пакет является входящим; · пакет передаётся в сеть через сетевой интерфейс компьютера и в качестве отправителя выступает процесс этого же компьютера, т.е. пакет является исходящим; · пакет должен быть передан с одного сетевого интерфейса компьютера на другой, т.к. и отправителем и получателем выступают процессы, функционирующие на других компьютерах, т.е. пакет является транзитным. Необходимо отметить, что когда происходит пересылка пакета между процессами одного и того же компьютера, то пакет уходит в интерфейс loopback и тут же из него появляется (в этом случае задействуются сразу и первый, и второй пункты приведённого списка). Последовательность обработки пакетов таблицами и цепочками, задействованными в каждом из сценариев, приведена в таблице: Таблица 1. Порядок использования таблиц и цепочек при обработке различных типов пакетов Таблица Цепочка Транзитные пакеты raw PREROUTING mangle PREROUTING nat PREROUTING mangle FORWARD filter FORWARD mangle POSTROUTING nat POSTROUTING Входящие пакеты mangle PREROUTING Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 36 из 94 nat PREROUTING mangle INPUT filter INPUT Исходящие пакеты raw OUTPUT mangle OUTPUT nat OUTPUT filter OUTPUT mangle POSTROUTING nat POSTROUTING Каждая таблица представляет собой упорядоченный набор (список) правил вида «если для пакета выполняется такое-то условие, сделать то-то», т.е. это просто пары «условие-действие». Принятие решения по пакету при прохождении его по цепочкам и таблицам осуществляется следующим образом: · пакет поступает на обработку в цепочку и последовательно проверяется на соответствие правилам всех включённых в цепочку таблиц; · если на основании какого-либо правила текущей таблицы по пакету было принято решение: отбросить, то любая дальнейшая обработка пакета немедленно прекращается, пакет уничтожается и никуда больше не передаётся; · если на основании какого-либо правила текущей таблицы по пакету было принято решение: пропустить, то обработка пакета данной таблицей немедленно прекращается, указанное в правиле действие применяется, и пакет передаётся следующей таблице текущей цепочки; · если список правил текущей таблицы был исчерпан и решение по пакету не было принято, то для базовых цепочек применяется действие по умолчанию, а для пользовательских цепочек никакого действия над пакетом не производится, и пакет передаётся следующей таблице текущей цепочки; · если в текущей цепочке больше нет таблиц, то пакет передаётся на обработку в следующую цепочку. Следует отметить, что не может сложиться ситуация, что к пакету не будет применено хотя бы одно правило, т.к. в базовых цепочках всегда будет применено действие по умолчанию - default policy. Т.о алгоритм обработки пакета сетевым фильтром netfilter/iptables может быть представлен так, как это изображено на рисунке (Рис. 21): Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 37 из 94 Рис. 21. Общая схема проверки пакета в netfilter Необходимо отметить, что пользовательская документация iptables рассматривает взаимосвязь таблиц и цепочек с точки зрения программной реализации, а именно, основной логической единицей является таблица, в которой записаны правила с указанием, в какой цепочке это правило применять. Это неудобно при планировании применения и настройке продукта. Поэтому правильнее говорить о цепочках таблиц, т.к. пакет обрабатывается правилами, помещёнными в таблицу, в пределах текущей цепочки. И невозможно перейти в другую цепочку принудительно, пока полностью не завершится обработка пакета правилами текущей цепочки. Эта концепция отражена и в приведённой выше схеме (Рис. 21). Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 38 из 94 Управление цепочками с помощью iptables Управление цепочками производится с помощью программы iptables. Для её использования привилегии суперпользователя (root). Чтобы посмотреть, какие правила действуют в настоящий момент в системе, необходимо выполнить команду: [root@mlinux ~]# iptables-save # Generated by iptables-save v1.3.7 on Tue Sep 22 14:36:40 2009 *filter :INPUT ACCEPT [2998:1441761] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [2617:220737] :stdin - [0:0] COMMIT # Completed on Tue Sep 22 14:36:40 2009 В приведённом примере никаких заданных администратором правил нет. Как строить правила Каждая строка, которую вы вставляете в ту или иную цепочку, должна содержать отдельное правило. Каждое правило - это строка, содержащая в себе критерии определяющие, подпадает ли пакет под действие данного правило, и действие, которое необходимо выполнить в случае выполнения критерия. В общем виде команда создания правила выглядит следующим образом: iptables [-t table] command [match] [target/jump] Нигде в документации не утверждается, что описание действия (target/jump) должно стоять последним в строке, однако, такая нотация наиболее удобна. Как бы то ни было, но чаще всего встречается именно такой способ записи правил. Если в правило не включается спецификатор -t table, то по умолчанию предполагается использование таблицы filter, если же предполагается использование другой таблицы, то это требуется указать явно. Спецификатор таблицы так же можно указывать в любом месте строки правила, однако стандартом считается указание таблицы в начале правила. Непосредственно за именем таблицы, должна стоять команда. Если спецификатора таблицы нет, то команда всегда должна стоять первой. Команда определяет действие для программы iptables, например: вставить правило, или добавить правило в конец цепочки, или удалить правило и т.п. Раздел match задает критерии проверки, по которым определяется подпадает ли пакет под действие данного правила или нет. Можно указать различные критерии: IP- Академия АйТи Установка и администрирование ПСПО. Лекции. Часть 3 Страница 39 из 94 адрес источника пакета или сети, IP-адрес получателя пакета, порт, протокол, сетевой интерфейс и т.д. Раздел target указывает, какое действие должно быть произведено при условии выполнения критериев, указанных в правиле. Межсетевой экран netfilter может передать пакет в другую цепочку правил, отбросить пакет, отправить источнику пакета сообщение об ошибке и т.п. Таблицы Опция -t указывает на используемую таблицу. По умолчанию используется таблица filter. Описание значений параметра –t и их назначение приведено в следующей таблице: Таблица 2. Таблицы Таблица Описание nat Таблица nat используется главным образом для преобразования сетевых адресов (Network Address Translation). Через эту таблицу проходит только первый пакет из потока. Преобразования адресов автоматически применяется ко всем последующим пакетам, поэтому не следует осуществлять какую-либо фильтрацию в этой таблице. В цепочке PREROUTING таблица используется для внесения изменений в пакеты на входе в брандмауэр. В цепочке OUTPUT таблица используется для преобразования адресов в пакетах, созданных приложениями внутри брандмауэра, перед принятием решения о маршрутизации. И в цепочке POSTROUTING - для преобразования пакетов перед передачей их в сеть. mangle Эта таблица используется для внесения изменений в заголовки пакетов. Примером может служить изменение полей TTL или TOS. В цепочке PREROUTING таблица используется для внесения изменений на входе в брандмауэр, перед принятием решения о маршрутизации. В цепочке POSTROUTING - для внесения изменений на выходе из брандмауэра, после принятия решения о маршрутизации. В цепочке INPUT - для внесения изменений в пакеты перед тем как они будут переданы локальному приложению внутри брандмауэра. В цепочке OUTPUT - для внесения изменений в пакеты, поступающие от приложений внутри брандмауэра. В цепочке FORWARD - для внесения изменений в транзитные пакеты после первого принятия