Чтение онлайн

ЖАНРЫ

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

Протокол TCP жестко прошивают в наши головы, и с ним сталкиваются любые пользователи, потому что TCP наиболее распространен. Протокол UDP по своим характеристикам схож с TCP, поэтому тут тоже особых проблем не возникает. А вот ICMP мало кому знаком и его даже бояться. Бытует мнение, что его проще и лучше полностью запретить, но это не так.

Протокол ICMP позволяет двум узлам в сети совместно использовать информацию об ошибках. Проходящие через него пакеты предназначены не определенной программе, а компьютеру в целом, поэтому у него нет портов. Зато есть тип и код. Эти параметры протокола можно увидеть, если выполнить команду:

ipchains -h icmp

Пакеты ICMP, чаще всего, рассылаются в ответ на нештатные ситуации. Основные

типы и коды, которые доступны для управления, можно увидеть в табл. 4.1.

Таблица 4.1. Основные коды и типы ICMP-пакетов

Тип Код Описание
0 0 echo-reply — такие пакеты используются для проверки связи с компьютером через утилиту ping
3 0–7 destination-unreachable — пакеты этого типа указывают на недоступность адресата. В зависимости от кода можно получить уточненные данные: • 0 — недоступна сеть; • 1 — недоступен компьютер; • 2 — недоступен протокол; • 3 — недоступен порт; • 4 — требуется фрагментация; • 6 — неизвестная сеть; • 7 — неизвестный компьютер
8 0 echo-request — такие пакеты используются при проверке связи с компьютером через утилиту ping и запрашивают ответ от хоста
9 и 10 0 Сообщения такого типа рассылают маршрутизаторы
12 1 Неправильный IP-заголовок
12 2 Требуемые опции отсутствуют

При создании правила тип ICMP-сообщения указывается так же, как и порт для TCP-протокола, а код — помещается после ключа

– d
. Например, следующая строка запретит ICMP-пакеты третьего типа с кодом 1:

ipchains -I output 1 -р icmp -s 192.168.8.1 3 -d 1 -j DENY

Некоторые администраторы уделяют недостаточное внимание ICMP-протоколу. Это ошибка, потому что таким путем было совершено уже достаточно много атак, к тому же хакер может с помощью сообщений ICMP передавать даже TCP-трафик, используя туннелирование.

4.11.7. Перенаправление

Все правила, которые мы описывали до сих пор, относятся только к доступу к компьютеру. В случае если компьютер используется как выделенный сетевой экран, то тут настройки изменяются, и в основном вы будете работать с forward-записями.

Сетевой экран, который защищает целую сеть, состоит, как минимум, из компьютера с двумя интерфейсами. Один из них (сетевая карта или модем) направлен в Интернет, а другой — в локальную сеть. Связь с Интернетом происходит через этот компьютер, поэтому сетевой экран будет заниматься перенаправлением трафика с одного интерфейса в другой, т.е. с сетевой карты на модем и обратно. Такой компьютер называют шлюзом. Пользователи не подключаются к самому шлюзу, а только используют его как средство переадресации пакетов.

Вы можете установить какие-либо сервисы прямо на сетевой экран, но я не рекомендую этого делать. Лучше, если они будут за пределами этого компьютера. Публичные сервисы лучше ставить со стороны Интернета, а закрытые — должны быть на серверах внутри вашей локальной сети (рис. 4.6).

Рис. 4.6. Расположение серверов с публичными и закрытыми сервисами

Подобная схема позволяет для публичных сервисов не прописывать разрешающие записи в сетевом экране, потому что он их и не защищает. Но на таком сервере можно применить локальную

политику доступа. Я вообще не рекомендую в своей сети использовать публичные сервисы. Существует множество хостинговых компаний, которые специализируются на предоставлении подобных услуг. Доверьтесь профессионалам, которые снимут часть забот с ваших плеч.

Если сервер с публичным сервисом расположить внутри сети, то в сетевом экране придется прописывать разрешения на доступ к нему для всех пользователей из Интернета. Мы уже рассмотрели подобные права (см. разд. 4.11.2), но это был только пример, а в реальной жизни все доступные сервисы необходимо вынести за пределы частной сети.

Каждое лишнее разрешение в сетевом экране — это дополнительная дверь внутрь локальной сети. Предположим, что вы сами содержите Web-сервер.

Если в нем или используемых на сервере сценариях будет найдена ошибка, то вся сеть окажется под угрозой. Нельзя допускать, чтобы незначительная погрешность стала причиной больших проблем.

Если вы все же решили самостоятельно обслуживать публичные серверы, то могу порекомендовать организовать сеть, как показано на рис. 4.7. Только в этом случае придется использовать дополнительный сервер для организации второго Firewall.

Рис. 4.7. Двойная защита сети

На данной схеме первый сетевой экран защищает Web-сервер. Его политика будет достаточно мягкой, потому что должна разрешить публичный доступ к некоторым портам сервера, например 80 для путешествий по Web-сайтам. Главное, чтобы фильтры открывали для всеобщего доступа исключительно адрес публичного сервера и только допустимые порты.

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

Я видел реально построенную схему, как показано на рис. 4.7, но помимо публичных серверов между двумя сетевыми экранами находились несколько компьютеров, которые создавали видимость сети. Это была бутафория из старых машин, которая должна была сбивать хакеров с толку. На этих компьютерах не было ничего ценного, зато были установлены различные средства обнаружения атак (об этом мы поговорим в гл. 12), которые сигнализировали администратору, если злоумышленник проникал в систему.

Построение сети из старых компьютеров до какой-то степени запутает хакера. На некоторых машинах можно открыть порты и накидать ненужных файлов, чтобы злоумышленник подольше искал необходимую информацию.

Есть еще один вариант — установить в компьютер три сетевые карты. Одна смотрит в Интернет, ко второй подключена приватная локальная сеть, а к третей — сеть с серверами, на которых работают открытые ресурсы (рис. 4.8). Получается защита в виде вилки. На один интерфейс мы можем перенаправлять любой трафик из Интернета, а другой интерфейс защищаем всеми возможными способами.

Рис. 4.8. Защита двух сетей одним сетевым экраном

С точки зрения безопасности схема, показанная на рис. 4.7, намного надежнее, потому что локальную сеть защищают сразу два сетевых экрана, и их легче конфигурировать. Второй вариант (рис. 4.8) проще и дешевле, т.к. не требует дополнительного компьютера для Firewall, но менее безопасен. Проникнув на компьютер с сетевым экраном, злоумышленнику потребуется меньше усилий, чтобы взломать приватную сеть.

Поделиться с друзьями: