Вступление
Итак, однажды, взглянув на входящую почту нашего wwwtehnofil.ru и посоветовавшись с коллегами, я понял одну истину: чтобы стать хотя бы высокообразованным пользователем, а не просто чайником, необходимо иметь, как бы выразиться, "необходимый минимум" знаний, без которых стать хакером или в крайнем случае опытным пользователем просто нельзя! В связи с этим решено написать цикл статей, которые в доступной фоме должны объяснить и рассказать вам данный минимум, который знает далеко не каждый. Зато, если будете знать вы - препятствий работы в сети, с хакерскими программами и проблем с защитой своего компьютера у вас не будет! Между прочим, аналогов данного цикла статей в сети нет, потому что все дают начальную пользовательскую информацию либо очень размыто, либо не уделяют внимания ей, поскольку считают её уже известной пользователю (кстати делают абсолютно правильно, однако раз решено написать статью, так решено). А уважаемые коллеги-хакеры тоже для развития и обновления своих знаний могут почитать статью - вещь крайне полезная!
1. Интернет и его свойства (уровень первый).
Интернет в современном виде появился в 1991 году, когда сформировалась современная система национальных доменов (см. дальше). Рассмотрим, что это такое и как работает. В сущности - Интернет - большая локальная сеть, т.е. какое-то количество компьютеров, соединённых между собой. Следовательно возникает необходимость обмена информацией между ними, иначе зачем их нужно было объединять? Как это сделать? Решение было найдено более 20 лет назад рабочей группой военного американского проекта ARPA, создавшей систему IP-адресов и концепцию ARPANET - родоначальника INTERNET. Эта концепция разрабатывалась для общения между военными компьютерами, даже в случае разрушения части сети связи или уничтожения части её компонентов (вот почему и сейчас довольно сложно что-либо "сломать" в сети). IP-адрес - четыре числа от 0 до 255, разделённые точками (к примеру: 158.206.36.107), обозначающими сетевой "адрес" компьютера (как номер дома - есть только один дом номер 1 и нет второго такого же - сеть не разрешит вход в неё машин с одинаковыми IP). К примеру, ваш компьютер имеет IP: 123.45.67.89. Чтобы получить мою статью, ваш компьютер обращается к сайту с этой статьей, размещенному на сервере, у которого IP 76.45.208.205, с запросом отправить необходимую вам информацию на ваш IP.
Сервер - основной элемент Интернет - постоянно (24 часа в сутки, 365 дней в году и т.д.) включённый и подключённый к Интернет компьютер, содержащий нужный вам сайт и ждущий команд удалённых пользователей, т.е. вашу команду. Запрашиваемый сайт её отправляет... В процессе передачи информации компьютеры обмениваются данными и подтверждениями об их правильной передаче, скорости связи и т.д. Вот уже получилась сеть из компьютеров, не зависящая от скорости связи ее отдельных составляющих или от их физического выхода из строя. Все компьютеры в Интернет соединены меду собой множеством независимых каналов связи, проходящих через разные узлы, страны, континенты.
Пока компьютеров в сети было не слишком много, можно было обходится просто несколькими, хоть и громоздкими, но привычными цифровыми IP. Поскольку количество серверов постоянно растёт, естественно увеличивается и количество их IP-адресов. Не каждый человек может запомнить с 10 - 100 IP-адресов с огромным количетвом символов. Для удобства пользователей и сокращения времени получения информации решили, что каждый компьютер может иметь личное имя, к примеру - tehnofil, которое могло бы соответствовать определённому IP-адресу. Но и это не решило проблему - такое решение стало не эффективным в современном Интернет, ведь вашему компьютеру пришлось бы сейчас опросить "всего" 10 000 000 - 100 000 000 машин и узнать имя каждой + некоторые из них могут быть одинаковыми. Следовательно и отклик пришлось бы ждать слишком долго.
Решение снова нашлось - создали "национальные домены" - RU, COM, NET и т.д. Национальный домен грубо говоря - своеобразный "адресный стол" - организация (т.е. несколько компьютеров), которая за отдельную плату регистрирует у себя поддомен, к примеру tehnofil.ru. Почему поддомен - если вы домен, кто тот, кто "ходит под вами" ? Теперь вам не нужно запоминать длинный числовой адрес, ибо строка: tehnofil.ru, условно говоря, передаст домену RU просьбу указать IP компьютера tehnofil. Заодно и решили проблему с дублированием имён компьютеров, т.к. такое имя может быть только одно. Хотя хакеры начнут сразу ругаться, что что-то я опустил, но это мелочи, на которые отвлекаться вам пока рано.
Так, хорошо, а как узнать IP национального домена? Просто! Как вы выходите в сеть? Через модем или с помощью выделенной линии, верно? Та организация, к которой вас подключает ваш канал связи, называется провайдером, т.е. вы платите не владельцам сайтов, за то, что заходите к ним на сайты, а провайдеру за то, что он арендует помещения, компьютеры, канал связи, через который он подключен к пространству интернет, точнее к одному из многих миллионов его каналов связи. Вот этот самый провайдер, помимо остального предоставляет вам сервера DNS (с понятиями серверов мы разберёмся позже), т.е. подключившись к компьютеру провайдера, ваша машина запрашивает у его DNS (домен найм сервер, что и ихнего переводится как вроде как хозяин имён серверов) все данные, необходимые для работы с интернет. Значит набирая в браузере tehnofil.ru вы запрашиваете информацию об IP не у национального домена, а у днс сервера провайдера, который узнаёт эту информацию уже у национально домена и дублирует её внутри себя, чтобы лишний раз не запрашивать на будущее национального домена. Вот и всё! Таковы основные принципы работы современного интернет. Да простят меня хакеры, за столь подробный рассказ и за некоторые неточности - надо постепенно погружать пользователя в сетевые технологии.
Итак, систему имён и адресов построили, что дальше? Надо разработать специальные программы, которые давали бы возможность удаленным пользователям беспрепятственно (или наоборот) получать информацию с вашего компьютера, не разрешая в общем случае лазать по вашему компьютеру. Для этих целей был создан HTTP протокол связи. Т.е. он предусматривает в общем случае возможность передавать на запрос удаленного компьютера какую-либо информацию, однако это загрузка информации на удалённую машину по нему возможна в случае передачи её специальной программе - скрипту, который выполнит с ней соответствующие действия.
Вкратце о протоколе HTTP.
Итак, ваш компьютер обратился к сайту tehnofil.ru по протоколу HTTP, для этого вы могли написать tehnofil.ru или http://tehnofil.ru, в любом случае ваш браузер - программа, которая получает информацию от tehnofil.ru, по умолчанию установит связь именно по этому протоколу, т.к. он является ключевым в интернет (обозначение протокола - http:// перед адресом). Tehnofil.ru, получив запрос от вашей машине в зависимости от настроек отправит вашему браузеру ГИППЕРТЕКСТОВЫЙ документ, имеющий обычно название index.html (index.htm). Гиппертекстовый документ - обычный текст, написанный, к примеру, в обычном текстовом редакторе, снабженный специальными машинными кодами, которые изменяют цвет, размер текста, цвет и рисунок фона и т.д. Ваш браузер представит в зависимости от его представлений о данных кодах эту самую страницу вашему взгляду. Особенностью протокола HTTP является то, что если сайт не отправит вам первую страницу сайта (гиппертекстовый документ) или в её теле (на ней) нет ссылок на другие файлы, которые, предположим, тоже находятся на удалённом сервере вы ни какими методами, кроме перебора возможных названий документов и т.д. не сможете узнать их имена. Иными словами данный протокол связи не предусматривает возможности показывать внутреннюю структуру самого сайта, одновременно показывая сообщение об ошибке, если запрашиваемый документ не найден. Это конечно рано вам пока знать, однако в контексте возникших вопросов не могу не заметить. Дело в том, что существуют специальные программы, написанные в программном (т.е. содержащем какие-либо команды) текстовом коде, которые способны по записанным в них командам изменять текст, вставлять картинки и т.д. в страницы, отправляемые пользователю, а также изменять содержимое этих страниц в зависимости от времени, введённой пользователем информации в какую либо форму и т.д. Если кто-то из читателей данной сатьи сидит в танке - посню: скрипт отправит вам результат своих действий (картинку, документ и т.д.), а себя. Эти программы (скрипты) способны и загружать файлы с компьютера пользователя, правда только с его разрешения и если это предусмотрено их кодом. Независимо от типа скрипта и его языка написания (php, perl ...) вам в любом случае отправится обычный гиппертекстовый документ (или картинка) вне зависимости от того, создал его человек или только что специально для вас удалённые сервер.
Что такое электронная почта и как она работает?
На заре интернет, когда уже была создана система доменных имён (на самом деле электронная почта появилась как только 2 компьютера были соединены в сеть на заре сетей как таковых, в Америке, и первое сообщение состояло только из заглавных букв, обозначающих имя его изобретателя), возникла необходимость обмениваться тестовой информацией, а поскольку это можно было делать крайне быстро, развитие электронной почты пошло крайне бурно. Сейчас электронная почта работает в общем виде так: написав письмо, вы отправляете его тому почтовому серверу, на котором у вас расположен почтовый ящик, в случае tehnofil.ru это - mail.tehnofil.ru. Почтовый сервер отличается от вашего компьютера, как мы уже говорили, тем, что подключен к сети постоянно и в случае если по каким-либо причинам удалённый почтовый сервер (тот, на котором расположен почтовый ящик того, кому вы писали) в данный момент не доступен, письмо будет доставлено тогда, как только удалённый сервер снова подключится или в общем случае сразу - если соединение завершилось успешно и письмо принял удалённый сервер. Вот так-то. А если вам ответили, а ваш компьютер выключен и не подключён к интернет? Всё будет хорошо, пользователь отправит текст письма своему почтовому серверу, а тот доставит его вашему. Ваш же сервер будет его сохранять до тех пор, пока вы не заберёте почту... Иными словами у вас есть почтовый адрес user@tehnofil.ru, вы написали письмо на vasya@mail.ru. Это значит, что вы отправили текст письма почтовому серверу tehnofil.ru, тот в свою очередь свяжется с почтовым сервером mail.ru и передаст сообщение для пользователя vasya. Пользователь Vasya, ответив, передаст текст письма почтовому серверу mail.ru, сервер установит связь с почтовым сервером tehnofil.ru и передаст текст письма для пользователя user. Вот и всё. Надеюсь не нужно объяснять, как зарегистрировать почтовый ящик?
Уровень второй: расширяем свои возможности?
Итак, почту, как правило, можно читать как в веб-интерфейсе, т.е. скрипты на почтовом сайте будут создавать вашему браузеру, страницы, с помощью которых производится чтение/написание и т.д. писем.
А можно по-другому?
Можно! Дело в том, что почта, как таковая это не веб интерфейс, а работа 2 почтовых протоколов свзи: pop3 и smtp. Протокол imap - редко используемый аналог pop3. Для чего они нужны? В случае, если у вашего почтового сервера отсутствует веб-интерфейс или вам просто лень ходить в него, если вам нужно читать/отправлять много почты - это для вас. Дело в том, что забирать почту с почтового сервера можно специальных почтовых программ (Оатлок экспресс, Бат и др.), они забирают и отправляют почту с вашего и на ваш почтовый сервер самостоятельно, не привлекая веб-интерфейс.
Подробнее о pop3 smtp протоколах можно почитать тут: http://tehnofil.ru/?id=34.
Что такое порты?
А как вы думаете, логично было бы в друшлаке делать только одно отверстие? Нет, конечно! Помните я говорил, о различных протоколах связи. Почему различных? Потому, что они используют различные команды связи, обмена данными. Тут-то наша арпа постаралась: дело в том, что один IP адрес может открыть до 65536 потов. Зачем? Для различных протоколов связи, конечно! Из известных вам на данный момент: HTTP - 80, pop3 - 110, smtp - 25, imap - 143. Старые добрые программы - нюкеры, способны подать некорректный запрос на один из них и повесить сервер, однако все современные машины давно защищены от подобного рода программ.
Какие ещё есть протоколы связи?
Пожалуй из часто встречающихся - не больше 10.
# FTP протокол связи.
Порт протокола - 21. В зависимости от прав, предоставленных вам администратором сервера вы можете: материалы, которые я просматриваю, предназначены только для моего личного использования, и я не буду демонстрировать их лицам, не достигшим 21 года;
1. Ничего.
2. Скачивать файлы.
3. Скачивать и загружать файлы.
4. Загружать файлы, удалять файлы и т.д.
Главным отличием от HTTP протокола является то, что вы видите содержимое папки, к которой вы работаете, как будто перед вами обычных диск... протокол обозначается ftp://, т.е. набрав адрес ftp://masterhost.ru, к примеру, ваш браузер свяжется по 21 ftp протоколом связи. Однако, не зная логина и пароля вы не войдёте на фтп сервер. Некоторые фтп сервера просто открыты для всех пользователей, некоторые - нет.
Ну и ещё несколько: telnet - 23, FINGER - 79, UDP - 53. Про алгоритмы анализа удалённой системы и протоколы связи можно почитать тут: http://tehnofil.ru/?id=47.
Вернёмся к поддоменам.
Что по вашему значит http://www.tehnofil.ru? Рассмотрим алгоритм поиска данного сайта (т.е. под сайтом подразумевается как правило только веб-содержимое, а под понятием сервер - все службы - pop3, smtp, http, ftp + исполняемые скрипты). Обращение сначала, условно говоря, пойдёт к домену RU, тот отправит нас на IP нашего tehnofil.ru, а tehnofil.ru - отправит нас по IP нашего поддомена wwwtehnofil.ru. Механизм подобного запроса, порты, которые используются для него и другие технические подробности оставим пока до следующей статьи. Кстати довольно часты случаи, когда домен и его поддомены имеют одинаковый IP и их обслуживает один и тот же сервер. Ибо мы передаём имя требуемого нами ресурса определённому IP, а тот может либо, если таковой сайт на нём зарегистрирован, отправить нам его стартовую страницу, либо отбросить сообщение об ошибке, если данное имя он не обслуживает. Количество поддоменов может быть неограниченным. Но следует иметь ввиду, что поддомен wwwuser.com и user.com, к примеру обычно показывают одно и тоже содержимое. Однако эти параметры, конечно могут меняться... Кстати адрес сайта user.chat.ru (wwwuser.chat.ru) и wwwchat.ru - поддомены одного и того же chat.ru, просто настроенные по-разному.
И на последок - алиас (т.е. когда одно и тоже содержимое одного и того же сервера видны по разным адресам) www был придуман в том - же знаменательном 1991 г., и переводится с английского как единая всемирная паутина (сеть).
Источник: http://tehnofil.ru/