Linux глазами хакера
Шрифт:
Сетевой экран должен уничтожать любые пакеты с TTL, равным 1. Это защищает сеть, но явно указывает на наличие Firewall. Пакет с реальным значением TTL дойдет до адресата, а если команда
Для выполнения трассировки в ОС Linux нужно выполнить команду
В ОС Windows есть аналогичная
Итак, на экране начнут появляться адреса промежуточных маршрутизаторов, через которые проходит пакет. Например, результат может быть следующим:
Если сетевой экран допускает ICMP-пакеты, то сканирование можно провести с помощью
Для сканирования сети за пределами Firewall достаточно выполнить команду соединения с компьютерами внутри сети с TTL, равным 19. Во время трассировки мы увидим первые 17 ответов, 18 пропадет, а 19 пройдет дальше в сеть, потому что на сетевом экране такой пакет появится с TTL=2 и не будет удален, а вот в локальной сети первый же маршрутизатор вернет ошибку.
Но в реальности ICMP-пакеты запрещены, поэтому такой метод редко приносит злоумышленнику пользу.
С другой стороны, если мы увидели полный путь к компьютеру назначения, это еще не значит, что сетевого экрана нет. Он может просто не запрещает ICMP-трафик.
Внутреннюю сеть можно просканировать и через DNS-сервер, если он находится внутри нее и доступен для всеобщего использования.
4.13.4. Дополнительная защита
Помимо фильтров на основе определенных, администратором правил в сетевом экране может быть реализовано несколько дополнительных защитных механизмов, которые работают вне зависимости от вашей конфигурации или могут включаться специальными опциями. Рассмотрим наиболее интересные аспекты такой защиты.
Одним из популярных методов обхода Firewall и проведения атаки является фальсификация IP-адреса отправителя. Например, у хакера может быть адрес 100.1.1.1, но с него запрещено подключаться к сервису FTP. Чтобы получить доступ, хакер может послать пакеты, в которых в качестве отправителя указан, например, 100.2.2.2.
Но это еще не все. Просто воспользовавшись чужим именем, ничего хорошего не получится.
Рис. 4.9. Подмена IP-адреса
Чтобы хакер смог получить ответ на свой запрос, в IP-пакет должна быть добавлена специальная информация, по которой сервер найдет реальный адрес хакера 100.1.1.1.
Современные сетевые экраны (в том числе и поставляемые с Linux) легко определяют подделку и блокируют такие пакеты.
4.14. Запрет и разрешение хостов
Работа с ipchains или iptables (см. разд. 4.11 и 4.12) может показаться сложной, потому что требует знания необходимых портов, но этот способ наиболее надежный, и для построения реальной защиты рекомендуется использовать именно его. А вот для решения простых задач (например, временная защита) есть другой метод — использование файлов /etc/hosts.allow и /etc/hosts.deny. Первый файл содержит записи хостов, которым разрешен доступ в систему, а во втором прописаны запреты.
При подключении к серверу файлы проверяются следующим образом:
1. Если для компьютера нет ни одной записи в файлах, то доступ по умолчанию разрешен.
2. Если соответствие обнаружено в файле hosts.allow, то доступ разрешен и файл hosts.deny не проверяется.
3. Если в файле hosts.deny найдена запись, то доступ запрещен.
Удобство использования этих файлов заключается в том, что в них нужно указывать сервисы, требующие ограничения доступа. Это делается в виде строк следующего вида:
Строка состоит из двух параметров, разделенных двоеточием. Первым указывается имя сервиса (или список, разделенный запятыми), доступ к которому нужно ограничить. Второй — это адреса (для файла /etc/hosts.allow разрешенные, а для /etc/hosts.deny — запрещенные), разделенные запятыми. В качестве параметров можно использовать ключевое слово
Рассмотрим пример конфигурирования файла. Для начала закроем любой доступ. Для этого в файле /etc/hosts.deny нужно прописать запрет для всех пользователей на любые сервисы. Для этого добавляем строку