Назад | Перейти на главную страницу

Скрытый против закрытого порта

Я читал веб-сайт о разнице между скрытыми и закрытыми портами.

http://www.grc.com/faq-shieldsup.htm

Закрытый порт отобразит пакет, если закрыт. Однако скрытый порт вообще не отвечает.

Рекомендуется ли скрывать все порты, которые вы не используете? Если да, то как вы это сделаете?

Некоторые операционные системы отвечают на запросы соединения (в случае TCP) или незапрошенные пакеты (в случае UDP) пакетами, указывающими, что там ничего не слушает. Некоторые операционные системы могут быть настроены на отбрасывание входящих пакетов на порты, где ничего не слушает без ответа.

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

Мне кажется, что беспокоиться о том, что ваш ящик реагирует на сканирование портов, упускается из виду. На мой взгляд, Стив Гибсон (который управляет GRC.com) немного псих. (Его страница «нанозонды» все еще открыта?) Кажется, что некоторые из своих работ он внушает страх.

Зависит от того, что вы пытаетесь сделать. По сути, если вы не ответите пакетом о том, что порт закрыт, вы усложните жизнь законным пользователям, но, возможно, также усложните жизнь любым злоумышленникам, пытающимся взломать ящик. Это не помешает кому-то сканировать коробку, чтобы узнать, какие порты открыты, но может замедлить их работу. И это может снизить вероятность того, что кто-то вообще обнаружит, что ваша система существует.

Это система, предоставляющая услуги на известном в мире порту? (например, веб-сервер). Тогда попытка «скрыть» ваши порты мало что даст. хорошо.

Это система, не делающая ничего, о чем нужно знать? Действуй.

Вы не сказали, какую ОС и т. Д. Вы используете, поэтому ответ на вопрос, как это сделать, варьируется. В Linux с iptables вы в основном используете "-j DROP" вместо "-j REJECT".

Есть ли особая причина, по которой вы хотите скрыть свои порты? Это не сделает ваш компьютер невидимым (так как ваши открытые порты по-прежнему будут реагировать на сканирование портов), сделает для вас дополнительную работу и нарушит правила RFC 791 (TCP). Вы часто являетесь объектом сканирования портов или просто принимаете паранойю Стива Гибсона;)

В любом случае Стив Гибсон отвечает на этот вопрос на странице, на которую вы ссылаетесь:

http://www.grc.com/faq-shieldsup.htm#STEALTH

Q ShieldsUP! показывает мои порты как «Закрытые», а не «Стелс», но я хочу скрытность! Как мне получить «Стелс»?

«Скрытые» порты - это, строго говоря, нарушение надлежащих правил поведения TCP / IP. Правильное поведение требует, чтобы закрытый порт ответил сообщением о том, что открытый запрос был получен, но был отклонен. Это позволяет отправляющей системе знать, что ее открытый запрос был получен, и ей не нужно повторять попытки. Но, конечно, это «утвердительное отрицание» также позволяет системе-отправителю знать, что система действительно существует на принимающей стороне. . . чего мы хотим избежать в случае попыток злонамеренных хакеров проникнуть в наши системы.

Я ввел термин «Стелс», когда разрабатывал технологию зондирования портов на этом сайте, чтобы описать закрытый порт, который предпочитает оставаться полностью скрытым, ничего не отправляя обратно в свою попытку открытия, предпочитая вместо этого казаться не существующим вообще.

Поскольку «Stealthing» - это нестандартное поведение для Интернет-систем, это поведение должно быть создано и обеспечено с помощью какой-либо системы безопасности межсетевого экрана. Программное обеспечение собственного интерфейса TCP / IP, используемое персональными компьютерами, ВСЕГДА отвечает, что порт закрыт. Следовательно, в компьютерную систему необходимо добавить дополнительное программное или аппаратное обеспечение в форме «скрытого межсетевого экрана», чтобы подавлять ответы «закрытого порта».

Чтобы получить полный статус скрытого режима вашей системы, я настоятельно рекомендую использовать полностью БЕСПЛАТНЫЙ межсетевой экран ZoneAlarm 2 от ZoneLabs, Inc. Посетите их веб-сайт по адресу www.ZoneLabs.com, чтобы узнать больше об этом отличном и бесплатном межсетевом экране, а затем загрузите последнюю версию. .

Настройте брандмауэр, чтобы он автоматически отбрасывал их вместо ответа. У большинства брандмауэров есть способ сделать это. В последний раз, когда мне это было нужно, я использовал ipf из OpenBSD, и это было «отбрасывание блока» против «возврата блока».

http://www.openbsd.org/faq/pf/filter.html#syntax

http://www.openbsd.org/faq/pf/options.html#block-policy

Разобраться в этой странице немного сложно. Возможно, это написали дети или кто-то продавал бесполезный товар. Итак, начнем сначала.

Давайте пока просто обсудим TCP.

Когда кто-то пытается подключиться к TCP-порту (отправляет SYN-пакет), к которому вы не хотите разрешать подключение, у вас есть несколько вариантов ответа:

1) Ответьте пакетом RST, если вы не слушаете этот порт, соответствующий протоколу TCP. Обычно вы называете это «закрытым» портом. Было бы разумно назвать этот порт «скрытым», если вы запускаете на нем какую-то службу, которая разрешает соединения из других источников.

2) Подтвердите подключение и немедленно отключите их (RST или FIN). Обертки TCP исторически имели такое поведение для заблокированных соединений.

3) Игнорировать пакет. Это довольно распространенное явление. Было бы разумно называть этот порт "скрытым" портом, если вы запускаете на нем какую-то службу, которая разрешает соединения из других источников.

4) Примите соединение и игнорируйте дальнейшие пакеты для этого соединения. Это может раздражать злоумышленника, хотя, вероятно, не добавляет реальной безопасности.

5) Ответьте разумной ошибкой ICMP. Обычно это делается маршрутизаторами (включая межсетевые экраны), но не так, как это обычно делается "межсетевыми экранами" на основе хоста.

6) Ответьте необоснованной ошибкой ICMP. Просто рассердить / запутать злоумышленника

7) Отвечайте непоследовательно и беспорядочно. Это может раздражать злоумышленника, но, вероятно, не добавляет реальной безопасности.

То, как вы ответите, зависит от ваших целей. Если вы хотите, чтобы машина казалась недействительным узлом, вы должны игнорировать пакет независимо от того, запущена ли у вас служба (которая разрешает соединения из других источников) или нет. Но если вы собираетесь вообще отвечать на любой трафик, это не поможет скрыть ваше существование.

Если вы хотите просто запретить соединение и не пытаетесь скрыть, что ваш IP-адрес является активным, лучше всего будет ответить пакетом RST, независимо от того, слушаете ли вы этот порт или нет. Это скрывает, есть ли у вас на этом порту служба, которая разрешает соединения с некоторых адресов, или на этом порте не запущена никакая служба.

Выбор №4 или №7 может разочаровать кого-то, кто использует сканер портов, но может вызвать у вас время от времени операционные неудобства. На самом деле это не так уж и полезно для адреса, который вы действительно используете, но может быть интересным для приманки.

Вариант №2 является обычным, потому что некоторые популярные программы фильтрации (например, TCP Wrappers) требуют, чтобы соединение было принято, чтобы получить адрес источника, чтобы определить, должно ли оно быть разрешено. Это основано на исторических ограничениях ОС, которые могут не иметь отношения к новой установке с современными операционными системами.

Ваш выбор будет зависеть от ваших требований. Это включает в себя, есть ли у вас какие-либо порты, к которым вы разрешаете соединение с каждого адреса, и есть ли у вас какие-либо порты, к которым вы разрешаете соединение с некоторых адресов.

Если вы не разрешаете входящие соединения от какого-либо источника, вы также можете отбросить все запрещенные пакеты. Это скрывает существование вашей машины, что снижает вероятность того, что случайные злоумышленники поверит, что это действительный адрес.

Если вы разрешаете входящие соединения от любого источника на одних портах и ​​из определенных источников на других портах - очень распространенная конфигурация - у вас есть несколько разумных вариантов выбора. Если вы отправляете обратно RST для портов, которые совсем не слушаете, но ведете себя по-разному для портов, которые намеренно запрещаете, вы показываете, к каким портам вы разрешаете соединения из выбранных источников. Я считаю, что лучший выбор - отправить обратно RST независимо от того, не слушаете ли вы этот порт вообще или запрещаете соединения от источника.

Это именно тот вопрос безопасности, который должен включать модель угроз, объяснение того, какие услуги вы предоставляете каждому по сравнению с избранными источниками, а также политику безопасности или пояснение, что вам нужна помощь в определении политики безопасности. Дополнительную путаницу вызывает введение новой терминологии без четкого определения.

Для клиентских систем правильно настроен программный брандмауэр должен сделайте ваши порты «невидимыми». Я только что запустил свой личный компьютер, доступный в Интернет, против Sheilds Up, и все мои порты указаны как скрытые.

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