Stealthed против закрытого порта
Я читал сайт о разнице между скрытыми и закрытыми портами.
http://www.grc.com/faq-shieldsup.htm
Закрытый порт будет отображать пакет, если он закрыт. Однако скрытый порт не будет отвечать вообще.
Рекомендуется скрыть все порты, которые вы не используете? Если да, то как ты это делаешь?
6 ответов
Зависит от того, что ты пытаешься сделать. По сути, если вы не ответите пакетом, в котором говорится, что порт закрыт, то это сделает жизнь легитимных пользователей более трудной, но, возможно, также затруднит жизнь любым злоумышленникам, пытающимся проникнуть в систему. Это не помешает кому-то сканировать окно, чтобы узнать, какие порты открыты, но это может замедлить их. И это может снизить вероятность того, что кто-то узнает, что ваша система вообще существует.
Это система, предоставляющая услуги в известном мире порту? (например, веб-сервер). Тогда попытка "скрыть" ваши порты мало что даст. хорошо.
Это система, которая ничего не делает, о которой никто не должен знать? Действуй.
Вы не сказали, какую ОС и т. Д. Вы используете, поэтому ответ на вопрос, как это меняется. В Linux с iptables вы делаете "-j DROP" вместо "-j REJECT", в основном.
Некоторые операционные системы отвечают на запросы соединения (в случае TCP) или незапрошенные пакеты (в случае UDP) с пакетами, указывающими, что там ничего не прослушивается. Некоторые операционные системы могут быть настроены для отбрасывания входящих пакетов в порты, где ничего не прослушивается без ответа.
Для меня ни одно поведение не лучше, чем другое. Я считаю это простым: не запускайте ненужные программы, которые прослушивают входящие соединения / пакеты. Программы, которые вы должны запустить, должны быть настроены максимально надежно.
Мне кажется, что беспокоиться о том, что ваша коробка реагирует на сканирование портов, не хватает смысла. На мой взгляд, Стив Гибсон (управляющий GRC.com) немного псих. (Его страница с "нанозондами" все еще открыта?) Кажется, в некоторых своих работах он напуган.
Это немного сложно понять смысл этой страницы. Возможно это было написано детьми или кем-то, продающим бесполезный продукт. Итак, начнем заново.
Давайте просто обсудим 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 независимо от того, не прослушиваете ли вы этот порт вообще или запрещаете соединения из источника.
Это как раз тот тип вопроса безопасности, который должен включать модель угрозы, объяснение того, какие услуги вы предоставляете всем по сравнению с выбранными источниками, и либо политику безопасности, либо пояснение, что вам нужна помощь в определении политики безопасности. Дополнительная путаница вызвана введением новой терминологии без четкого определения.
Есть ли конкретная причина, по которой вы хотите скрыть свои порты? Это не сделает ваш компьютер невидимым (так как ваши открытые порты по-прежнему будут реагировать на сканирование портов), сделает для вас дополнительную работу и нарушит правила RFC 791 (TCP). Вы предмет частых сканирований портов или просто покупаете в паранойю Стива Гибсона;)
В любом случае Стив Гибсон отвечает на этот вопрос на странице, на которую вы ссылаетесь:
http://www.grc.com/faq-shieldsup.htm
Q ShieldsUP! показывает мои порты как "Закрыто", а не как "Стелс", но я хочу стелс! Как мне получить "Стелс"?
"Скрытые" порты, строго говоря, являются нарушением надлежащих правил поведения TCP/IP. Правильное поведение требует, чтобы закрытый порт ответил сообщением, указывающим, что открытый запрос был получен, но был отклонен. Это позволяет отправляющей системе узнать, что ее запрос на открытие получен, и ей не нужно повторять попытки. Но, конечно, это "утвердительное отрицание" также позволяет отправляющей системе знать, что система действительно существует на принимающей стороне.,, это то, чего мы хотим избежать в случае злонамеренных хакеров, пытающихся проверить наши системы.
Я придумал термин "Стелс", когда разработал технологию зондирования портов этого сайта, чтобы описать закрытый порт, который предпочитает оставаться полностью скрытым, не отправляя ничего назад на его попытки открывания, предпочитая вместо этого вообще не существовать.
Так как "Stealthing" - это нестандартное поведение для интернет-систем, это поведение, которое должно быть создано и применено с помощью какой-либо системы безопасности брандмауэра. Собственное программное обеспечение интерфейса TCP/IP, используемое персональными компьютерами, ВСЕГДА ответит, что порт закрыт. Следовательно, в компьютерную систему необходимо добавить дополнительное программное или аппаратное обеспечение в форме "скрытого брандмауэра", чтобы подавить ответы "закрытого порта".
Чтобы получить полный статус стелс-режима в вашей системе, я настоятельно рекомендую использовать совершенно БЕСПЛАТНЫЙ брандмауэр ZoneAlarm 2 от ZoneLabs, Inc. Посетите их веб-сайт по адресу www.ZoneLabs.com, чтобы узнать больше об этом превосходном и бесплатном брандмауэре, а затем загрузите последнюю версию.,
Настройте брандмауэр так, чтобы он молча отбрасывал их вместо ответа. У большинства брандмауэров есть способ сделать это. В прошлый раз, когда мне нужно было, я использовал ipf из OpenBSD, и это было "падение блока" против "возврата блока".
Для клиентских систем программный брандмауэр, настроенный правильно, должен сделать ваши порты "невидимыми". Я только что запустил свой персональный ящик, который открыт для интернета против Sheilds Up, и все мои порты перечислены как невидимые.
Когда я настраиваю брандмауэр, мне не нравится, когда закрытые порты передают информацию через брандмауэры, которую злоумышленник может использовать, чтобы узнать о моей среде, но наличие открытых портов, которые злоумышленник может использовать, намного хуже.