Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Открытие портов
Показать сообщение отдельно

Ветеран


Сообщения: 2029
Благодарности: 704

Профиль | Отправить PM | Цитировать


Цитата Pe4eNkA199:
Проблема заключена в том что я не могу никак открыть порты »
Если позволите, я бы хотел добавить небольшое замечание. Я понимаю, что Вам оно будет не интересно, но вопросы аналогичные Вашему появляются с завидной регулярностью.

Дело в том, что "открыть порты", вообще говоря нельзя. Что такое открытый порт? Это способность сетевого интерфейса компьютера принимать пакеты одного из протоколов транспортного уровня в которых определены номера портов (TCP/UDP) адресованные на этот порт.
Сам по себе этот интерфейс, за редкими исключениями, примет и поместит в TCP/IP стек любой пакет. В этом плане можно считать, что при первоначальном получении пакета все порты являются открытыми.
Дальше, по мере прохождения по сетевому стеку, первым делом к этому пакету будут применены правила межсетевого экрана. Межсетевой экран может закрыть какие-то порты. То есть не пропустить направленные на этот порт пакеты. Но не открыть их. Думаю, что это достаточно понятно. Брандмауэр либо отбрасывает пакеты, либо разрешает их похождение (еще он может делать многие другие вещи, такие как переадресация или иная модификация заголовков пакетов, но это мы для простоты пока не рассматриваем).
Поэтому, попытка "открыть порты" применением IP фильтра заведомо обречена на провал - фильтр, пропускающий все пакеты, эквивалентен полному отсутствию фильтра.
Но прошедший через брандмауэр пакет должен быть получен каким-то процессом и этот процесс должен ответить на полученный пакет. Ведь если ответа не последует, то откуда отправитель узнает, что данный порт открыт?
К примеру, сетевой сканер может "слушать" интерфейс и получать абсолютно все поступающие пакеты.
Но отправитель пакета об этом не знает и считает порты закрытыми.
Итак, поступивший пакет должен быть диспетчеризован приложению, слушающему этот порт, и это приложение должно ответить.
Понятно, что ни одно пользовательское приложение на маршрутизаторе порты обычно не слушает (можно открыть маршрутизатор для обмена http или ntp пакетами, но это частный случай).
Поэтому за запросы из сети обычно отвечает приложение исполняющееся не на маршрутизаторе, а на пользовательском ПК. Для того, чтобы оно могло это сделать, необходимо настроить на маршрутизаторе переадресацию портов (port forwarding). О подобной возможности мы упоминали парой абзацев выше.
Хотя с формальной точки зрения это действие не входит в обязанности межсетевого экрана (firewall), на практике в недорогих маршрутизаторах оба эти действия выполняются одним и тем же модулем ядра, набор правил для которого устанавливается пользовательской утилитой iptables (поскольку практически все такие маршрутизаторы работают под управлением Linux).

Итак, чтобы из сети порт сканировался как открытый, необходимо выполнение ряда условий:
1. Этот порт не должен быть закрыт межсетевым экраном маршрутизатора
2. На маршрутизаторе должна быть настроена переадресация пакетов, поступающих на данный порт, на порт сетевого интерфейса ПК (это называет DNAT - destination NAT, в отличие от привычного всем NAT, который модифицирует не адрес назначения в заголовке пакета, а а адрес отправителя: SNAT - source NAT).
3. Порт назначения не должен быть закрыт межсетевым экраном ПК. При этом номер порта данном пункте может отличаться от номера порта на который был отправлен исходный пакет, поскольку DNAT позволят подменять не только IP-адрес получателя, но и номер порта назначения (или исходящий номер порта и IP-адрес отправителя для пакетов следующих в обратном направлении).
4. На ПК должен исполняться сервер (приложение, способное принимать входящие соединения) слушающий данный порт и отвечающее на поступающие пакеты.

Еще раз извиняюсь за длинное сообщение, но у меня складывается впечатление, что не всем уважаемым участникам форума очевидны описанные в нём моменты.

-------
Господа! Убедительная просьба не обращаться за консультациями в ЛС. Поверьте, создать ветку в соответствующем разделе форума гораздо эффективнее.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:34, 07-06-2013 | #8

Название темы: Открытие портов