6

Я новичок в TCP/IP и стараюсь изучить основы. Что ж, мне действительно интересно узнать о правилах входящего и исходящего трафика брандмауэра и концепции порта адреса источника, порта адреса назначения.

Например, я исследую порт 80. Я знаю, что Http использует порт 80. Но когда я пытаюсь прослушать трафик, я вижу, что мой браузер не использует порт 80. Как видно из изображения, используется только целевой порт 80, а "целевой" должен быть сервером, на котором размещаются веб-страницы. А также нет используемого порта 80 на исходном порту, "источником" должен быть мой компьютер.

Мой браузер использует некоторые другие порты в качестве источника и идет на порт сервера 80. Исходя из этого, я понимаю, что порт 80 моего компьютера не используется для Http, только серверные компьютеры, на которых размещены веб-страницы, используют порт 80, но если я закрою порт 80 моего компьютера из правил исходящих сообщений, Интернет не будет работать. Но, как я понял ранее из образа, порт 80 не используется на моем компьютере.

Действительно смущен. Кто-нибудь может уточнить это для меня?

3 ответа3

7

Итак, давайте углубимся в детали IPv4. Каждый IP-пакет имеет IP-адрес и порт источника, а также IP-адрес и порт назначения. IP-адрес предназначен для всего компьютера, поэтому IP-адреса достаточно, чтобы доставить пакет с компьютера A на компьютер B. Если на одном компьютере запущены две службы, такие как электронная почта и веб-сервер, то IP-пакеты должны достигать нужной службы. Выбор правильного сервиса осуществляется на основе портов.

Если клиент хочет подключиться к серверу, такому как веб-сервер или почтовый сервер, клиент должен знать IP-адрес сервера. В веб-браузере вы вводите DNS-имя или IP-адрес сервера. В почтовом клиенте также вы указали имя почтового сервера. Поэтому, когда клиент хочет подключиться к серверу, единственное, чего не хватает, это порт. Чтобы упростить это, существуют стандарты, которые определяют, какой порт используется / зарезервирован для какой службы. Для http например порт 80 зарезервирован. Веб-сервер только прослушивает порт 80, но игнорирует любые другие порты.

Если вы хотите, вы можете настроить веб-сервер для прослушивания любого порта, который вы хотите, это также может быть, например, порт 12345. Но тогда клиенты должны будут ввести http://ip:12345/ чтобы веб-браузер знал, через какой порт связаться с веб-сервером. Просто указание http://ip/ было бы кратким сокращением для http://ip:80/ .

Итак, как вы видели, сервер работает с четко определенным портом, он получает пакеты, отправленные по адресу destination = server-ip:server-port, и отправляет пакеты с source = server-ip:server-port. Со стороны Cient операционная система открывает новый сокет для каждого нового соединения и назначает уникальный (еще не использованный) порт для сокета. Какой порт используется, не имеет значения. Клиент - это тот, кто инициирует соединение, он отправляет пакеты с source = client-ip:client-port на сервер. Сервер может посмотреть на источник пакета и теперь знает, кто его соединяет и куда он должен отправить ответы.

Каждый четырехместный server-ip:server-port:client-ip:client-port однозначно идентифицирует соединение.

Клиенты рассматривают соединения как исходящие, серверы видят их как входящие. Межсетевые экраны могут иметь исходящие правила (отправка пакетов), и они могут иметь входящие правила (получение пакетов). Если вы хотите заблокировать http-соединения с / на ваш компьютер, единственное, что вы знаете, это порт, который использует сервер. Поэтому, когда вы хотите заблокировать веб-браузеры на вашем компьютере, вы должны определить правило запрета исходящего межсетевого экрана для destination = port 80. Если вы хотите заблокировать другие компьютеры, чтобы они не могли подключиться к веб-серверу, который вы используете на своем компьютере, вы должны определить правило запрета входящего брандмауэра для назначения = порт 80.

Еще несколько вещей, которые вы не просили:

  • Не у каждой службы есть назначенный / зарезервированный IP-порт.
  • Существуют также протоколы для специальных процедур обнаружения услуг.
  • (16 бит) диапазон портов разделен на две части. Номера портов 1-1024 зарезервированы для процессов администратора / системы, в то время как более высокие номера портов могут использоваться любым.
2

Вы закрываете исходящие соединения на порт 80, вы должны помнить, что исходящие соединения идут на серверы, такие как Google, StackOverflow и другие веб-сайты / что угодно.

Ваш браузер устанавливает соединения с другими серверами через порт 80, и вы блокируете, что вы останавливаете свой браузер, устанавливая это соединение.

Скажем, кто-то подключился к вашему IP через браузер, который будет классифицироваться как входящий трафик через порт 80 (или 443 для https) TCP, если вы заблокируете этот порт для входящего трафика, он не сможет подключиться к нему.

Допустим, вы подключились к записи IP или DNS через браузер, которая будет классифицироваться как исходящий трафик на порте 80/443 TCP. Блокировка этого порта на исходящем не приведет к установлению соединения с этим сервером.

1

Объяснение порта

2 общих порта для веб-серверов: 80 и 443 (для безопасного HTTPS-соединения).

Порты 0 - 1024 являются «зарезервированными» портами, которые используются для часто используемых функций, в этом случае 80 и 443 для HTTP и HTTPS. Эта запись Wiki показывает список всех этих портов и их «обычное» использование. Вы можете переопределить эти порты для собственного использования, но часто это не рекомендуется. Примечание: вики проходит до 65536, но зарезервированный порт (только от 0 до 1024)

Если вы установите для параметра «Брандмауэр для правил OUTBOUND» значение «Порт BLOCK 80», то любое исходящее соединение с портом 80 будет заблокировано, поэтому любые запросы HTTP будут заблокированы. Порт 80 используется для выхода. И вы заблокировали это. Но если вы проверяете защищенные сайты (сайты, использующие HTTPS), он все равно будет работать, если только вы не заблокируете порт OUTGOING 443.

Объяснение браузера

Ваш браузер НЕ является веб-сервером, поэтому у вашего браузера нет открытого порта 80, к которому другие могут подключиться. Если у вас открыт порт 80 на вашем компьютере, вы можете проверить, что вы используете веб-сервер. Если вы сознательно не используете веб-сервер, но порт 80 открыт, лучше всего проверить свой компьютер на наличие шпионского / вирусного / рекламного ПО.

Причина, по которой ваш браузер использует эти, казалось бы, случайные номера портов, заключается в том, что ОС требуется способ идентифицировать каждое другое соединение, которое выходит. Таким образом, ОС назначает случайный номер порта выше 1024 (или некоторый произвольный номер, обычно более 10000) для каждого исходящего соединения, выполняемого программным обеспечением на вашем ПК. Причиной назначения порта является идентификация входящих данных, возвращаемых веб-сервером или любым другим сервером, к которому вы подключаетесь. Операционная система должна знать, куда возвращать данные, идет ли речь о вашем браузере Chrome или каком-либо другом программном обеспечении, для которого требуется доступ в Интернет.

Как только номер порта поднимется до 65536, он просто вернется к 1025 (или, может быть, к некоторому произвольному произвольному числу, установленному ОС) и снова поднимется.

Я надеюсь, что это прояснит для вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .