Шаг 21 - Понимание портов

Одним из важных понятий при работе в интернете и с сокетами является порт. Для доступа к каким-нибудь функциям сервера у нас есть его адрес и номер порта. Можно воспринимать их по аналогии с адресом дома и номером квартиры. Для того, чтобы что-то получить от сервера мы должны обязательно указать и адрес порта. Например, если хотим получать HTML документы по протоколу HTTP, то порт должен быть 80. Сколько всего портов ??? Всего 65535. Из них первые 1024 зарезервированы под всякие стандартные вещи. Какие ??? Они оговорены в RFC 1700, кто должен какой порт занимать. Остальные порты на ваше усмотрение. Ну и что, скажете Вы ??? А вот что. На любом сервере есть куча портов. Многие порты Вы не знаете и не используете. А через них можно попасть на сервер. Каждый порт сторожит какая-то программа. То есть при обращении к порту она берет управление. Например, порт 80 для HTTP может сторожить Interner Information Server или еще кто-то. А некоторые порты может никто не сторожить :-)))) Это может быть очень приятно. Даже если порты сторожат, то у каждой этой программы есть бреши. Есть какие-то ситуации, при которых можно получить доступ или дополнительную информацию. Итак. Адрес интернет - это дом, а порт номер двери. У двери сторож. Он разный может и спать :-))))) С чего начинается исследование сервера ??? А с чего начинается исследование дома ??? С выяснения дверей. То есть первой задачей является узнать все порты, которые поддерживает сервер. Зная это можно выяснять подробности. Способов наверно много и самый простой перебрать все порты. Это будет написано в следующем шаге. Ну, портами можно пользоваться не только для того, чтобы принести другим беды. Вы можете написать программу, которая, например, будет использовать порт 22222 для доступа к внутренней сети. Чтобы послать сообщение например. Или еще что-то. Естественно, что с помощью Exploler'a не попадешь. Вы должны будете на сервере написать программу, которая свяжет порт с сокетом и клиента, который будет знaть, что этот порт есть и как с ним работать. Это нормальная технология. Даже если вы подцепите к этому порту тот же IIS, то просто так туда не попадут. Но помните, что порты можно просканировать и узнать о них. Еще одно полезное применение. Это написать своего клиента, который будет использовать нестандартный порт, даже который работает как HTTP. Но это Ваш клиент. И для того, чтобы зайти на сервер нужен именно он. Плюс к этому в сам HTTP можно встроить защиту. Вот Вам и борьба с монополией Exploler'a. Если у Вас магазин в интернете, то почему, например, на обычной странице не поместить клиента, которого надо закачать для работы. А если Банк ??? Встраивайте в вашего клиента PGP и пусть они там ловят пакеты и делают, что хотят :-)))) Только порт защитите.

Выводы.

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


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 13.02.2001