Linux глазами хакера
Шрифт:
•
□
□
□
10.9. Резюме
Протокол FTP и серверы различных производителей за время своего существования имели множество проблем с безопасностью. Если сложить ошибки FTP и программы Sendmail, то результат может затмить даже потери от внедрения вирусов.
Главная проблема протокола FTP заключается в том, что он создавался как дружественный и удобный для пользователя. Вторая проблема — использование двух портов. Авторизация происходит только при подключении на 21 порт, а работа с каналом для передачи данных происходит без какого-либо подтверждения подлинности клиента.
Если во времена создания FTP-протокола он был действительно необходим для обмена данными, то в настоящее время от него следует избавляться. Если вы хотите дать пользователям возможность только скачивать информацию, то обратите внимание на HTTP-протокол. Он безопаснее, и с его помощью можно даже организовать загрузку файлов на сервер.
Если необходим обмен данными в локальной сети, то можно использовать Samba-сервер или опять же HTTP-протокол. Многие администраторы не хотят настраивать Web-сервер только ради обмена данными и устанавливать на него потенциально опасные сценарии. Но нельзя забывать, что FTP также может оказать медвежью услугу. Из двух зол нужно выбирать меньшее. Если у вас уже работает Web-сервер, то максимально используйте его возможности, и тогда можно будет закрыть 21 порт, тем самым оградив себя от вероятных ошибок, которые могут с ним прийти.
Если вам лично необходим доступ к серверу для работы с файлами удаленно, то советую использовать пакет SSH и встроенный SFTP-протокол, который шифрует данные, такое соединение перехватить намного сложнее.
Глава 11
DNS-сервер
Каждый компьютер, подключенный к сети, должен иметь свой адрес, чтобы его легко можно было найти и обмениваться с ним данными. Это как телефонные аппараты. Чтобы кому-нибудь позвонить, нужно знать его номер телефона, иначе коммутатор не сможет понять, с кем вас соединить.
Когда вы хотите получить Web-страничку с сервера, то необходимо знать его адрес. В запросе нужно указать свои координаты, чтобы сервер знал, куда вернуть требуемую страничку. Здесь просматривается аналогия с почтой. Вы отправляете письмо на определенный адрес, и если хотите, чтобы вам ответили, то должны указать обратный адрес.
В эпоху зарождения сетей компьютеров в ней было мало, поэтому для адресации был
Изменять принцип нумерации поздно, да и выбранная IP-система очень удобна для обработки на программном уровне компьютерами и сетевыми устройствами. Немного поколдовав, умные люди придумали создать централизованную базу данных, устанавливающую соответствие IP-адресов и символьных имен. Таким образом, пользователь оперирует именами узлов, а программа уже по базе DNS находит нужный IP-адрес и по нему соединяется с компьютером/сервером.
Этот метод очень сильно упростил задачу. Раньше, чтобы найти сервер, нужно было четко знать его IP-адрес. Теперь в простой ситуации можно обойтись даже без поисковых систем типа yahoo или google. Например, если нужен сайт корпорации Microsoft, то можно попробовать набрать в браузере адрес www.microsoft.com. Таким образом, Web-серверы фирм можно найти просто по их имени, и не надо запоминать лишнюю информацию.
11.1. Введение в DNS
В первое время преобразование IP-адресов в имена происходило с помощью простого текстового файла, по которому и проводилось сопоставление параметров. В Linux за это отвечает файл /etc/hosts. Несмотря на его слабости и неудобства в сопровождении, в малых сетях возможностей такого файла достаточно.
С расширением сети понадобился новый способ хранения соответствий. На смену файлам пришла доменная система имен (DNS, Domain Name System), предназначенная для преобразования символьного имени в IP-адрес и наоборот. Ее преимущества могут проявляться не только в Интернете, но и в локальных сетях с достаточно большим количеством компьютеров.
Внедрение DNS выявило еще одно преимущество этой системы — под одним и тем же IP-адресом может скрываться несколько узлов. Например, хостинговые компании на одном сервере могут содержать несколько сайтов.
Сервер DNS — это большая база данных, в которой хранятся сведения о соответствии имен узлов и IP-адресов. Самое главное, что эта информация децентрализована, и в Интернете существуют тысячи таких серверов.
База данных имеет иерархическую структуру, вершиной которой является точка ".". Это наподобие знака "/" в файловой системе Linux, обозначающего корневую директорию. На первом уровне идут домены типа COM, ORG, NET, GOV, RU, DE и т.д. Ниже находятся имена доменов второго уровня. Пример описанной структуры приведен на рис. 11.1.
Рис. 11.1. Иерархия доменов
Допустим, что нужно найти IP-адрес сервера www.cydsoft.com. Имя разбирается справа налево. Сначала направляется запрос к корневому DNS-серверу, который должен указать, кто обслуживает домен com. Затем на найденном сервере по запросу осуществляется поиск домена с именем cydsoft. Если такой найден, то мы получим адрес DNS-сервера, который обслуживает cydsoft.com. И уже ему направляется запрос на получение адреса домена www.cydsoft.com. Результатом будет IP-адрес сервера/компьютера, которому присвоено имя www.cydsoft.com.