Михаил Фленов СанктПетербург бхвпетербург 2010 удк 681 06 ббк 32. 973. 26018. 2 Ф69
Скачать 3.69 Mb.
|
Сетевой экран Мы достаточно подробно рассмотрели управление доступом к файлам, но на этом распределение прав не заканчивается. Сейчас уже невозможно работать без соединения с локальной сетью или Интернетом, поэтому прежде чем наш сервер начнет функционировать, нам необходимо ограничить доступ извне к компьютеру и его определенным портам. Для защиты компьютера от вторжения по сети используется сетевой экран (Firewall). Некоторые службы Linux также имеют свои настройки прав, но их мы будем рассматривать отдельно, когда дойдем до соответствующего сер- виса . И все же, я не советую сильно доверять такому управлению. Не забы- вайте , что ошибки есть во всех программах, и если сетевой экран будет дуб- лировать права, прописанные в сервисе, хуже от этого не будет. Глава 4 142 Сетевой экран является основой безопасности и первым редутом защиты от вторжения извне. Хакеру необходимо сначала получить доступ к компьюте- ру , и только если это удалось, он попытается двигаться дальше и будет про- бираться до уровня файлов. Там уже действует вторая линия обороны — права доступа к файлам и директориям. Почему же тогда мы рассматриваем сетевой экран после прав доступа на файлы ? Да потому, что Firewall защищает только от сетевых вторжений, а правильная регламентация доступа предохраняет и от локальных хакеров или недобросовестных пользователей, которые получили возможность поль- зоваться непосредственно терминалом. Оба уровня защиты очень важны. В сфере безопасности вообще нет ничего несущественного, вы должны уде- лять внимание каждой мелочи. Сетевой экран позволяет ограничить доступ к компьютеру в целом или к от- дельным портам, на которых работают сервисы, но не является 100% защи- той от вторжения. Это всего лишь проверка пакетов на соответствие прави- лам , которая не может гарантировать, что пользователь является реальным отправителем Простейший способ обхода сетевого экрана — подделка IP-адреса. Напри- мер , мне приходилось работать в сети, где простым пользователям запреща- лось использовать почтовые протоколы SMTP и POP3 (подключение на 25 и 110 порты соответственно). Я относился к этой категории и не мог ни по- лучать , ни отправлять почту, но доступ был у моего начальника. Использова- ние WEB-интерфейса для работы с почтовыми сервисами также блокирова- лось на уровне прокси-сервера. Однажды мне очень нужно было срочно отправить письмо. Для этого я выполнил следующее: 1. Дождался , когда начальник выйдет из кабинета. 2. Выключил его компьютер. 3. Сменил свой IP-адрес на установленный на его компьютере. 4. Спокойно отправил почту и вернул свой старый IP-адрес. Когда начальник вернулся, он подумал, что компьютер просто завис, и ниче- го не заподозрил, а я без проблем смог воспользоваться сервисом, который был мне запрещен. Есть множество способов обхода сетевых экранов (не считая ошибок в про- граммах ), и все же правильная конфигурация сможет обеспечить спокойный сон администратора и специалиста по безопасности. В ОС Linux в качестве Firewall выступает программа, которая фильтрует ин- формацию на основе определенных правил, в которых должно быть четко прописано , какие пакеты могут обрабатываться или отправляться в сеть, Управление доступом 143 а какие нет. Благодаря этому большинство атак захлебнутся уже на входе в компьютер, потому что сетевой экран не позволит сервисам даже увидеть потенциально опасные пакеты. Сетевой экран может быть установлен на каждом компьютере в отдельности (защищать его в зависимости от выполняемых задач) или на входе в сеть (рис. 4.2). Во втором случае Firewall реализует общие настройки безопасно- сти для всех компьютеров в сети. Internet Firewall Рис . 4.2. Firewall для защиты сети Если в вашей сети очень много компьютеров, то управлять ими и обновлять политику безопасности становится затруднительным. Установка единого сервера с Firewall позволяет упростить эти процедуры. Лучше всего, если компьютер с сетевым экраном выступает как шлюз или как анонимный про- кси -сервер для доступа в Интернет остальных участников сети. В этом случае хакер изначально будет видеть только этот компьютер, а остальные как бы прячутся за занавеской. Чтобы проникнуть на любую машину в сети, зло- умышленник должен будет сначала получить доступ к компьютеру с Firewall. Таким образом, защита целой сети упрощается. Подробней о прокси- серверах вы можете узнать в главе 9. Так как ОС Linux уже идет с сетевым экраном в поставке, то нет смысла его отключать только потому, что есть корпоративный на границе между Интер- нетом и вашим компьютером. Лишнего сетевого экрана не бывает. Глава 4 144 Но во всех сетевых экранах есть одно слабое звено — они программные и используют ресурсы сервера. Современные маршрутизаторы тоже могут решить большинство проблем, которые возлагаются на сетевые экраны Linux. С другой стороны, Linux тоже очень часто используют в качестве маршрутизатора в целях удешевления системы за счет применения старого железа 4.10.1. Фильтрация пакетов Итак , основной, но не единственной задачей сетевого экрана является фильт- рация пакетов. В Linux уже встроен Firewall, и вам его не надо устанавливать отдельно . Точнее сказать, их даже два: iptables и ipchains. Второй немного устарел и является уже историей, но первый жив и прекрасен. Сетевые экраны позволяют контролировать трафик, который проходит через компьютер по протоколам TCP (Transmission Control Protocol, протокол управления передачей), UDP (User Datagram Protocol, пользовательский про- токол датаграмм) и ICMP (Internet Control Message Protocol, протокол управ- ляющих сообщений в сети Интернет). Так как TCP является транспортом для всех основных протоколов Интернета: FTP (File Transfer Protocol, протокол передачи файлов), HTTP (Hypertext Transfer Protocol, протокол передачи ги- пертекстовых файлов), POP3 (Post Office Protocol, почтовый протокол) и др., то фильтрация TCP позволяет защищать все эти сервисы. Все запросы, которые поступают из Интернета или направляются туда, про- ходят через сетевой экран, который проверяет их по внутренним правилам. И если соответствие установлено, то пакет пропускается. Если какой-либо параметр нарушает хотя бы одно правило, то пакет может быть удален: без предупреждений (deny, запрет); с посылкой на компьютер отправителя сообщения об ошибке (reject, от- клонение ). Я бы не выбирал последний вариант, потому что незачем направлять хакеру лишние пакеты. Лучше оставить действие без внимания, и злоумышленник будет думать, что сервис просто недоступен. Но в этом случае легальные пользователи могут ощутить неудобства при наличии просчета в конфигури- ровании сетевого экрана. Допустим, что вы по ошибке заблокировали доступ к 80 порту. Если пользователь обратится к WEB-серверу, то программа, не получив ответа о запрете, будет находиться в состоянии ожидания до истече- ния Timeout . Для некоторых программ это значение может быть бесконеч- ным , и они зависнут. Исправив ошибку в конфигурировании сетевого экрана, вы дадите возможность пользователям работать корректно. Управление доступом 145 К тому же, отправка сообщений с ошибками идет по протоколу ICMP и уве- личивает трафик. Хакер может использовать эти особенности для реализации атаки DoS (Denial of Service, Отказ от обслуживания) и переполнить ваш ка- нал ненужными ответами. Атака DoS может быть направлена не только на трафик . Хакеру достаточно в цикле запускать запросы на установку соедине- ния с запрещенным портом, а ваш компьютер будет тратить ресурсы на про- верку пакетов и отправку ICMP-ответов. Если пакеты будут идти слишком часто , то сервер может не справиться с нагрузкой и перестать отвечать на запросы авторизованных пользователей. При настройке правил можно использовать два варианта фильтра: 1. Разрешено все, что не запрещено. 2. Запрещено все, что не разрешено. Наиболее безопасным методом является второй, потому что всегда следует отталкиваться от запрета. Изначально необходимо запретить абсолютно все, а потом по мере надобности открывать доступ определенным пользователям к необходимым им сервисам. Именно этой политики вы должны придержи- ваться , когда настраиваете правила для входящих пакетов. Если двигаться от разрешения, то по умолчанию все позволено. Администра- тор может забыть или просто не закрыть некий вид доступа и увидеть свою ошибку только после того, как злоумышленник проникнет в систему. 4.10.2. Параметры фильтрации Основными параметрами пакета, по которым производится фильтрация, являются номер порта источника или приемника, адрес отправителя или назначения и протокол. Как мы уже знаем, сетевым экраном поддерживаются три базовых протокола — TCP, UDP и ICMP, на основе которых строится все остальное (FTP, HTTP, POP3...). Обращаю ваше внимание, что фильтровать можно пакеты, идущие в обе сто- роны . Проверка пакетов, приходящих извне, позволяет на самом раннем эта- пе отсеять любые попытки взломать систему или вывести ее из строя. А зачем фильтровать то, что уходит из сети? На первый взгляд, это бессмыс- ленно , но резон есть, и он достаточно велик. Исходящий трафик могут от- правлять и враги, я их перечислю: троянские программы, которые могут отправлять в сеть конфиденциаль- ную информацию, или сами соединяются с хакером или с его сервером и берут команды с какого-нибудь файла; специализированные программы для обхода правил. Допустим, что вы запретили доступ к определенному порту извне. Хакер может поместить Глава 4 146 на сервере программу, которая будет перенаправлять трафик с разрешен- ного порта на запрещенный, наподобие туннелирования OpenSSL (Open Secure Sockets Layer, Открытый протокол защищенных сокетов). Профес- сионалу написать такую утилиту — дело пяти минут; если запретить компьютерам извне инициировать соединения с вашим, то хакер может попытаться заставить ваш компьютер инициировать соеди- нение со своим. Возможных лазеек для проникновения очень много, и ваша задача закрыть максимальное их количество. Для этого под контролем должен быть трафик в обоих направлениях. Протоколы TCP используется как базовый протокол передачи данных для таких прото- колов , как HTTP, FTP и др. Запрещать его не имеет смысла, потому что это основа , без которой вы лишитесь всех удобств, предоставляемых нам все- мирной сетью. Для передачи данных по протоколу TCP сначала устанавлива- ется соединение с удаленным хостом, и только потом происходит обмен информацией . Благодаря этому подделка IP-адреса любого участника соеди- нения усложняется, а иногда и становится невозможной. Протокол UDP находится на одном уровне с TCP, но передает данные без установки соединения. Это значит, что пакет просто посылается в сеть на определенный адрес, и нет гарантии, что он дошел до адресата. Здесь нет ни- какой защиты от подделки IP-адреса, поэтому в качестве отправителя зло- умышленник может указать что угодно, и наш сервер не увидит подвоха. Если нет особой надобности (ни одна установленная у меня программа не использует UDP), то я запрещаю прохождение таких пакетов в обе стороны. Протокол ICMP используется для обмена управляющими сообщениями. Че- рез него команда ping проверяет соединение с компьютером, а оборудование или программы сообщают друг другу об ошибках. Если этот протокол ис- пользовать только по назначению, то он очень удобен. Но в нашей жизни все далеко от идеала, и ICMP уже не раз становился объектом для DoS-атак. Найдите любые способы, чтобы запретить этот протокол. Если обмен управ- ляющими сообщениями необходим используемой вами программе, попро- буйте найти другую, но избавьтесь от использования ICMP. Фильтрация портов Первое , на что надо обратить внимание, — это, конечно же, порты. Допус- тим , что у вас есть WEB-сервер, к которому имеют доступ все пользователи. Предположим , что на нем работают абсолютно безопасные сценарии, или Управление доступом 147 статические документы HTML. Помимо этого, все программы содержат са- мые последние обновления и не имеют уязвимостей. Получается, что сервер безопасен ? Да, но до поры до времени. Для обновления содержимого необ- ходим какой-то доступ для закачки файлов, ведь бегать с дискетами к WEB- серверу никто не будет. Чаще всего для работы с файлами открывают FTP- сервис , а вот это уже дыра. Для доступа по FTP можно установить наиболее защищенные программы и самые сложные пароли, но хакер рано или поздно сумеет взломать этот сервис . Пароль можно подобрать, украсть с компьютера пользователя или заставить самого сказать через социальную инженерию, существуют и другие методы . Любой канал, через который хакер может проникнуть в систему, становится уязвимым, потому что именно его будет взламывать злоумыш- ленник , и как раз на это будут потрачены все усилия. Да, у одного не полу- чится , у второго, а сотый случайно войдет с первого раза и уничтожит все, что попадется под руку. Таким образом, можно использовать на сервере такую политику, при которой на порт 80 будут приниматься все подключения, а FTP-сервис (порт 21) будет запрещен для всех, кроме определенного IP-адреса. После этого злоумыш- ленник может хоть годами подбирать пароль, любой его трафик будет обре- заться , если он не знает нужного IP-адреса и не сможет его подделать. Вы должны запретить все порты и после этого открыть только то, что необ- ходимо . На сервере, который охраняет целую сеть, это сделать сложно, по- тому что разные компьютеры требуют различные сервисы. Открыть их все — значит , разрешить работать со всеми портами на любой машине. Конечно же, можно помимо портов использовать в правилах IP-адреса, но дополнитель- ным вариантом защиты будет использование сетевого экрана на каждом компьютере внутри сети. В этом случае каждый из них будет охраняться в зависимости от выполняемых задач. Если это WEB-сервер, то из Интернета будет виден только порт 80, если FTP — то порт 21 и т. д. Фильтрация_адресов'>Фильтрация адресов Исходя из предыдущих соображений видно, что для фильтрации можно ис- пользовать и IP-адрес, хотя максимальный эффект достигается именно в со- четании параметров (порт и адрес). Допустим , что в вашей сети находятся два WEB-сервера. Такое бывает очень часто . Один сервер делают доступным для всех посетителей из Интернета, а второй — только для своих пользователей (внутрикорпоративный сайт). Вполне логичным будет разделение информации, тогда на закрытый сервер Глава 4 148 можно пускать трафик только из локальной сети, независимо от порта. Хакеры из Интернета вообще не должны иметь доступа к внутрикорпоративному серверу Рассмотрим еще один пример. Допустим, что у вас есть интернет-магазин, который обслуживает заказы пользователей. Вы доставляете товары только по своему городу и не занимаетесь рассылкой. В этом случае имеет смысл разрешить доступ к серверу только с IP-адресов вашего города, а остальным запретить . Но эта задача достаточно сложна в реализации. Разделение по сетям выглядит красиво, но не всегда эффективно. Нет, я не говорю о подделке адресов, и что хакер может выдать себя за другого. Он сам может стать другим. Что я хочу сказать? Хакер может захватить один из компьютеров доверенной сети, установить на него троянскую программу и использовать для проникновения на запрещенный сервер. Различные компании, работающие в сфере безопасности, приводят различ- ные данные и пугают нас тем, что очень много компьютеров в Интернете на- ходятся под контролем хакеров. Это действительно было так, но очень давно. На данный момент эти цифры не превышают и 10%. Фильтрация нежелательных адресов Несколько лет назад сервис www.regnow.com (который выступает посредни- ком для производителей Shareware-программ, получая деньги от клиентов и обеспечивая безопасность платежей) попытался ограничить доступ с со- мнительных IP-адресов. Это вполне логично. Некоторые страны кишат хаке- рами , и при этом число добропорядочных пользователей программ в них стремится к нулю. К таким государствам отнесли Африку и некоторые ре- гионы Восточной Европы, включая развивающуюся, но любящую халяву Россию Этот шаг оправдан тем, что в некоторых из этих стран очень сильно была развита технология кардинга, когда по ворованным кредитным картам за- казывался в Интернете товар. Чтобы кардинг стал недоступным, сервис за- претил доступ по целым группам IP-адресов. Впоследствии выяснилось, что обойти эту систему очень просто. Хакеру достаточно воспользоваться анонимным прокси-сервером в США или Канаде, чтобы проскочить пре- граду . А вот у добропорядочных пользователей возникли серьезные про- блемы , и они лишились возможности использовать сервис для оплаты необходимых услуг. Из -за этих серьезных недостатков данный фильтр был снят, и разработчики regnow.com больше не пытаются его использовать. Просеивать все возмож- Управление доступом 149 ные прокси-серверы слишком затруднительно, и это дает малый эффект, а репутацию можно потерять навсегда. Так что иногда приходится выбирать между безопасностью и удобством использования. Фильтрация неверных адресов Был случай, когда один сервис неправильно обрабатывал адрес получателя. Если серверу приходил неверный пакет, то он отвечал отправителю сообще- нием о некорректности данных. Проблема заключалась в том, что злоумыш- ленник мог послать на сервер такой пакет, в котором в качестве отправителя стоял адрес получателя, то есть и в том, и в другом случае использовался IP- адрес сервера. Конечно же, сервис пытался отослать сообщение об ошибке, и отправлял его сам себе, и снова видел ошибочный пакет. Таким образом процесс зацикливался. Если злоумышленник направит тысячи таких пакетов, то сервер только и будет посылать сообщения об ошибках. О подобных погрешностях я уже давно ничего не слышал, но нет гарантии, что они не появятся снова. Существует множество адресов, которые надо фильтровать и не пропускать в сеть. Помимо этого, я советую не пропускать пакеты c адресами, которые зарезер- вированы или не могут использоваться в Интернете. Рассмотрим диапазоны этих адресов: в качестве отправителя стоит адрес 127.0.0.1. Из Интернета пакет с таким адресом прийти не может, потому что он всегда используется для указа- ния на локальную машину (localhost); от 10.0.0.0 до 10.255.255.255 — зарезервирован для частных сетей; от 172.16.0.0 до 172.31.255.255 — зарезервирован для частных сетей; от 192.168.0.0 до 192.168.255.255 — зарезервирован для частных сетей; от 224.0.0.0 до 239.255.255.255 — зарезервирован для широковещатель- ных адресов, которые не назначаются компьютерам, поэтому с них не мо- гут приходить пакеты; от 240.0.0.0 до 247.255.255.255 — зарезервирован для будущего использо- вания в Интернете. Все эти адреса нереальны для Интернета, и никакие пакеты с такими пара- метрами не должны проходить из внешней сети через сетевой экран, стоящий между Интернетом и вашей локальной сетью. Однако если сетевой экран установлен на компьютере пользователя, то все, кроме первого должно быть разрешено , иначе пользователи вашей локальной сети не смогут обратиться к вашему компьютеру. Дело в том, что зарезервированные адреса использу- ются и должны использоваться в локальных сетях. |