KnigaRead.com/

Михаил Флёнов - Linux глазами хакера

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Михаил Флёнов, "Linux глазами хакера" бесплатно, без регистрации.
Перейти на страницу:

DATA

Текст письма

.

Рассмотрим, что означают эти строки, которые на самом деле являются командами SMTP-сервера:

□ HALO mailserver.com — строка приветствия SMTP-сервера. Параметр maiiserver.com необходимо заменить на реальное имя сервера;

□ MAIL from: [email protected] — адрес отправителя письма;

□ RCPT ТО: [email protected] — получатель письма;

□ DATA — после команды идет содержимое письма.

Последняя строка в файле должна состоять только из одной точки, потому что SMTP-сервер символы <CR> и <LF> (конец строки и перевод каретки) воспринимает как конец письма. Когда вы нажимаете клавишу <Enter>, то в ОС Windows создается как раз такая пара символов. ОС Linux ограничивается только переводом каретки. Для нас главное, чтобы в тексте был переход на новую строку, а какой он, — не имеет значения, потому что файл будет передаваться в ASCII-режиме.

Этот файл загружаем на FTP-сервер и выполняем следующие две команды:

PORT 192,168,1,1,25

RETR filename

В первой строке мы просим сервер соединиться с компьютером, имеющим адрес 192.168.1.1. Для этого используется FTP-команда port, которой необходимо передать 5 чисел: первые 4 — это IP-адрес компьютера, последний параметр определяет порт. С помощью этой директивы можно производить сканирование портов на сервере вручную, но в данном случае у нас другая цель.

Вторая команда посылает на этот сервер файл с именем filename, который содержит SMTP-команды. Для SMTP-сервера все выглядит так, как будто FTP-сервер направляет ему директивы для отправки письма, которое он и отошлет. А получатель не сможет определить источник. Все параметры приведут его только к FTP-серверу. Получается, что злоумышленник может абсолютно анонимно отправить письмо, и его никто не найдет.

Таким способом могут рассылаться вирусы, троянские программы или даже спам. Есть еще один вариант использования почтовых сообщений — поместить на FTP-сервер большой файл и заставить бесконечно передавать его на SMTP-сервер. Если запустить несколько таких процессов, то при слабеньком канале SMTP-сервера получится полноценная DoS-атака.

Защититься от этой атаки на стороне SMTP-сервера можно только с введением обязательной авторизации. В этом случае хакеру необходимо будет знать реальные параметры учетной записи, которой разрешен доступ. На стороне FTP-сервера также защищаемся с помощью аутентификации. Никаких анонимных подключений быть не должно, тем более с правами на запись файлов.

10.8. Дополнительная информация

Я не стал описывать все директивы конфигурационных файлов, которые доступны в wu-ftp-сервере. Их слишком много, и мы остановились только на основных.

Для получения дополнительной информации можно выполнить команду man файл.

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

Помимо этого, можно почитать документы из директории /usr/share/doc/wu-ftpd-Х.X.Х, где X.Х.X — это номер версии установленного у вас wu-ftp-сервера.

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

При администрировании FTP-сервера вам помогут следующие команды:

□ ftpd — позволяет запустить сервер с особыми параметрами. Атрибутов очень много, поэтому для получения подробной информации о них можно обратиться к документации (выполнить команду man ftpd). Лично мне еще ни разу не приходилось прибегать к использованию ключей, потому что единожды настроив конфигурацию, сервер работает стабильно;

□ ftprestart — используется для перезапуска FTP-сервера;

□ ftpshut — корректно завершает работу сервера. Например, если вы хотите обновить программное обеспечение, то не стоит отключать сервис аварийно. Используйте эту команду со следующими ключами:

 • -l n — не принимать новые соединения за n минут до завершения работы FTP-сервера. Укажите приемлемое время, чтобы клиенты успели корректно завершить работу с сервером;

 • -d n — разорвать соединения за n минут до завершения работы FTP-сервера. Я рекомендую установить разрыв непосредственно перед завершением или указать 1 минуту;

 • время — задает момент завершения работы FTP-сервера и схож с аналогичным параметром в команде shutdown для Linux. Вы можете указать вместо времени ключевое слово now, чтобы завершить работу немедленно, но я рекомендую использовать ключ +n (где n — это количество минут до завершения работы) или указать точное время в формате HHMM (часы — минуты);

□ ftpcount — выводит количество подключенных по FTP пользователей. Когда в системе происходит что-то неладное, то я всегда проверяю, есть ли соединения клиентов по FTP. Если да, то следующим этапом нужно узнать, кто подключен;

□ ftpwho — возвращает список подключенных к FTP-серверу клиентов с указанием учетной записи, использовавшейся при подключении. Иногда одного взгляда достаточно, чтобы определить соединение злоумышленника. Например, имеется учетная запись человека, который не может быть в данное время на FTP;

□ ckconfig — проверяет конфигурацию FTP-сервера и выводит отчет для каждого конфигурационного файла wu-ftp-сервера.

10.9. Резюме

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

Главная проблема протокола FTP заключается в том, что он создавался как дружественный и удобный для пользователя. Вторая проблема — использование двух портов. Авторизация происходит только при подключении на 21 порт, а работа с каналом для передачи данных происходит без какого-либо подтверждения подлинности клиента.

Если во времена создания FTP-протокола он был действительно необходим для обмена данными, то в настоящее время от него следует избавляться. Если вы хотите дать пользователям возможность только скачивать информацию, то обратите внимание на HTTP-протокол. Он безопаснее, и с его помощью можно даже организовать загрузку файлов на сервер.

Если необходим обмен данными в локальной сети, то можно использовать Samba-сервер или опять же HTTP-протокол. Многие администраторы не хотят настраивать Web-сервер только ради обмена данными и устанавливать на него потенциально опасные сценарии. Но нельзя забывать, что FTP также может оказать медвежью услугу. Из двух зол нужно выбирать меньшее. Если у вас уже работает Web-сервер, то максимально используйте его возможности, и тогда можно будет закрыть 21 порт, тем самым оградив себя от вероятных ошибок, которые могут с ним прийти.

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

Глава 11

DNS-сервер

Каждый компьютер, подключенный к сети, должен иметь свой адрес, чтобы его легко можно было найти и обмениваться с ним данными. Это как телефонные аппараты. Чтобы кому-нибудь позвонить, нужно знать его номер телефона, иначе коммутатор не сможет понять, с кем вас соединить.

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

В эпоху зарождения сетей компьютеров в ней было мало, поэтому для адресации был выбран самый простой вариант — числа. С увеличением количества компьютеров сетевая общественность стала осознавать, что помнить больше 20 адресов невозможно, поэтому было принято решение найти какой- либо способ, упрощающий запоминание.

Изменять принцип нумерации поздно, да и выбранная IP-система очень удобна для обработки на программном уровне компьютерами и сетевыми устройствами. Немного поколдовав, умные люди придумали создать централизованную базу данных, устанавливающую соответствие IP-адресов и символьных имен. Таким образом, пользователь оперирует именами узлов, а программа уже по базе DNS находит нужный IP-адрес и по нему соединяется с компьютером/сервером.

Этот метод очень сильно упростил задачу. Раньше, чтобы найти сервер, нужно было четко знать его IP-адрес. Теперь в простой ситуации можно обойтись даже без поисковых систем типа yahoo или google. Например, если нужен сайт корпорации Microsoft, то можно попробовать набрать в браузере адрес www.microsoft.com. Таким образом, Web-серверы фирм можно найти просто по их имени, и не надо запоминать лишнюю информацию.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*