Действительно ли изменение номера порта по умолчанию повышает безопасность?

69

Я видел совет, согласно которому вы должны использовать разные номера портов для частных приложений (например, интрасеть, частная база данных, все, что не будет использовать ни один посторонний).

Я не совсем уверен, что это может улучшить безопасность, потому что

  1. Существуют сканеры портов
  2. Если приложение уязвимо, оно остается независимо от номера порта.

Я что-то пропустил или ответил на свой вопрос?

Сэм
источник
30
Одна вещь, которую я сделал, - это использование определенных портов по умолчанию (например, SSH-порт 22) в качестве медовых баков. Любой, кто пытается подключиться к этим портам, полностью блокируется на xнекоторое время. Он доказал свою эффективность против сканирования портов. Конечно, это всего лишь один инструмент в наборе инструментов безопасности.
Бельмин Фернандес
Общий вопрос о безопасности через неизвестность задается здесь: security.stackexchange.com/questions/2430/…
Тони Мейер,
ну, это может быть препятствием для "сценаристов детей"
Лукаш Мадон
1
@BelminFernandez, «один инструмент в наборе инструментов безопасности» ? Нет, это для снижения нагрузки на сервер (производительности) и не имеет ничего общего с безопасностью, кроме простой иллюзии этого. С точки зрения безопасности, это совершенно не нужно, если сервер уже силен, и если сервер уязвим, это не делает его более безопасным.
Pacerier
@Pacerier, согласился с тем, что усилия должны быть направлены на реализацию более надежных методов обеспечения безопасности. Тем не менее, нет никаких причин, почему вы не можете сделать оба.
Бельмин Фернандес

Ответы:

68

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

Однако перемещение SSH из порта по умолчанию 22 предотвратит некоторые нецелевые и любительские атаки типа детского сценария. Это относительно неискушенные пользователи, которые используют сценарии для одновременного сканирования больших блоков IP-адресов, чтобы определить, открыт ли порт 22, и когда они найдут один, они начнут какую-то атаку на него (грубая сила, атака по словарю, и т.д). Если ваша машина находится в этом блоке сканируемых IP-адресов и не использует SSH на порте 22, она не будет отвечать и, следовательно, не будет отображаться в списке машин для атаки этого сценария. Поэтому существует некоторая защита низкого уровня, но только для этого типа оппортунистической атаки.

Например, если у вас есть время - войдите в систему на вашем сервере (при условии, что SSH находится на порту 22) и извлеките все уникальные неудачные попытки SSH, которые вы можете. Затем уберите SSH с этого порта, подождите некоторое время и снова зайдите в журнал. Вы, несомненно, найдете меньше атак.

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

JDW
источник
3
Согласовано. Я видел очень похожее падение при экспериментировании с перемещением SSH на нестандартный порт. К счастью, с отключенной аутентификацией пароля, это действительно не проблема.
EEAA
3
Лучший ответ здесь пока. Все сводится к тому, кто атакует. Однажды я помог администратору системы, которая пострадала от атаки нулевого дня от сканирующего ребенка. Предположительно в MS-RDP, поскольку IIS не был открыт брандмауэром. Наш хост не позволил бы нам изменить порт RDP (управляемый хостинг), поэтому нам пришлось сидеть там, пока они работали над новым шаблоном для их фильтрации IDS / IPS. Хотя это может не очень помочь для более устоявшихся серверов, таких как SSH, которые, кажется, имеют меньше проблем с безопасностью, чем некоторые продукты MS.
Мэтт Молнар
9
Определенно согласен. Безопасность - все о слоях, и чем больше у вас есть, тем более вы безопасны. Это может быть слабый слой, но все же слой. Пока это не полагается исключительно, это может только добавить к безопасности.
Пол Крон
1
Другой момент перемещения SSH из порта 22 заключается в том, что большое количество попыток SSH плюс службы, поскольку Fail2Ban может иногда занимать ценное время ЦП. Это может быть незначительным в верхней части линейного оборудования, но некоторые старые серверы могут испытывать скачки ЦП. Его процессорное время, память и пропускная способность вы можете использовать для других вещей.
artifex
Я сделал то же самое с RDP на Server 2003 - это существенно сократило количество неудачных записей аутентификации в Event Viewer.
Моше
43

Очень полезно содержать логи в чистоте.

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

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

Томас Бонини
источник
8
замечательное различие
ZJR
3
+1 Это лучший аргумент для изменения номеров портов, который я когда-либо слышал, и пока единственная вещь, которая
побудила
2
+1 Это отличный момент. Целевые угрозы намного более опасны, чем случайные проверки (сценаристы просто переходят к более простым целям, если у вас есть приличная безопасность). Целевой злоумышленник может знать намного больше о конкретных уязвимостях или даже шаблонах паролей. Хорошо иметь возможность распознавать эти атаки за пределами роя спама в порту 22.
Стивен Т. Снайдер,
1
Это неверно Я видел, как минимум один сервер был взломан при сканировании нестандартного порта SSH. Не существует внутренней причины, по которой злоумышленник не сможет сканировать и другие порты.
Свен Слотвег,
@SvenSlootweg, правда, особенно когда компьютеры становятся быстрее и дешевле, сканирование, которое занимает 65535 раз больше, больше не намного .
Pacerier
28

Нет, это не так. На самом деле, нет. Термин для этого - Безопасность от Obscurity, и это не надежная практика. Вы правы в обоих ваших пунктах.

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

Сделайте себе одолжение и оставьте свои порты настроенными правильно, но примите надлежащие меры предосторожности, заблокировав их с помощью надлежащего межсетевого экрана, авторизаций, ACL и т. Д.

squillman
источник
17
По моему скромному мнению, проекция (надежных) паролей и шифрования в идею безопасности с помощью мрака немного растянута ...
squillman
5
При использовании только 8 символов с полным диапазоном буквенных и цифровых символов (и даже без учета специальных символов) количество возможных комбинаций составляет 62 ^ 8 (218 340 105 5 584 896). 65535 даже не находится в той же вселенной, что и эта, даже при использовании детекторов сканирования портов. Обратите внимание, я обесцениваю слабые пароли.
squillman
3
Опять же , «дело не в том, что нестандартный порт - это весь аппарат безопасности». Каждый немного помогает. Это 10-секундный твик, который, если ничего больше, не даст вашему серверу появиться кому-то, ищущему SSH, чтобы начать стучать в двери.
ceejayoz
8
Мех. Отслеживать нестандартные порты не стоит в моей книге. Я согласен не соглашаться ни с кем ... Добавление дополнительных контрмер помимо смены порта, безусловно, является частью уравнения, и я бы предпочел оставить все до тех частей головоломки.
squillman
6
Из того, что я видел, нестандартные порты стали вполне стандартными. 2222 для SSH, 1080, 8080, 81, 82, 8088 для HTTP. В противном случае это становится слишком неясным, и вы задаетесь вопросом, какой сервис находится на порту 7201 и почему вы не можете подключиться к ssh на 7102.
BillThor
13

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

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

sysadmin1138
источник
2
+1 за более сложную конфигурацию и проблему поддержки. Заставляет вас тратить время, которое можно потратить на охрану двери (вместо того, чтобы искать, где вы положили ее в своем доме).
Мак
12

Как уже отмечали другие, изменение номера порта не дает вам большой безопасности.

Я хотел бы добавить, что изменение номера порта на самом деле может нанести ущерб вашей безопасности.

Представьте себе следующий упрощенный сценарий. Взломщик сканирует 100 хостов. Девяносто девять из этих хостов имеют службы, доступные на этих стандартных портах:

Port    Service
22      SSH
80      HTTP
443     HTTPS

Но затем есть один хост, который выделяется из толпы, потому что они, владелец системы, пытались запутать свои услуги.

Port    Service
2222    SSH
10080   HTTP
10443   HTTPS

Теперь это может быть интересно взломщику, потому что сканирование предлагает две вещи:

  1. Владелец хоста пытается скрыть номера портов в своей системе. Возможно, владелец считает, что в системе есть что-то ценное. Это может быть не заурядная система.
  2. Они выбрали неправильный метод для защиты своей системы. Администратор допустил ошибку, поверив в запутывание портов, что указывает на то, что они могут быть неопытными администраторами. Возможно, они использовали обфускацию портов вместо надлежащего брандмауэра или надлежащей IDS. Они могли также совершать другие ошибки безопасности и могли быть уязвимы для дополнительных атак безопасности. Давайте исследуем немного дальше, не так ли?

Если бы вы были взломщиком, вы бы предпочли взглянуть на один из 99 хостов, на которых запущены стандартные сервисы на стандартных портах, или на этот хост, который использует обфускацию портов?

Стефан Ласевский
источник
14
Я бы посмотрел на 99 хозяев, если опыт не научил меня иначе. Кто-то, кто перемещает порты, вероятно, с большей вероятностью исправит и защитит, если вы спросите меня.
ceejayoz
4
Я бы посмотрел на один выделенный хост, если не считать, что некоторые PFY подумали: «Если я поменяю номера портов, я неуязвим!» но пароль root установлен на «пароль».
Андрей
3
@Ceejayoz, полностью согласен. Я запускаю SSH на 2222, никакой ценности безопасности, но сокращает количество сценариев. Я бы подумал, что они, скорее всего, меня тоже проигнорируют, потрудились сменить порт, возможно, приняли и другие меры. Очевидно, что это не вся конфигурация по умолчанию ...
Крис S
1
Я понимаю, что не все согласны с моим мнением. Но по моему опыту, было много владельцев систем, которые использовали бы обфускацию портов, но они допускали ошибки, такие как не обновлять OpenSSH после того, как были обнаружены некоторые критические уязвимости безопасности, или использовали бы незашифрованные ключи SSH из общей университетской системы и т. Д. Некоторые из эти системы были сочные цели.
Стефан Ласевский
3
Расширение: переход на нестандартный порт, вы, скорее всего, не одобряете детишек сценариев, но также чаще заинтриговывает опытного хакера. Возникает вопрос: на кого вы больше боитесь быть мишенью?
Позднее
9

Я собираюсь пойти против общей тенденции, хотя бы частично.

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

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

Чтобы победить эту систему, потребуется либо удача (удар по правильному порту перед блокировкой), либо распределенное сканирование, которое вызывает другие меры, либо очень длительное время, которое также будет замечено и выполнено.

Джон Гарденье
источник
Объедините это с замечанием Андреаса Бонини о целевых атаках, и это сильный аргумент в пользу использования альтернативных портов.
ДживанАмара
5

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

Некоторые примеры:

  • «Он очищает журналы» - тогда у вас есть проблема с тем, как вы обрабатываете журналы.
  • «Это снижает накладные расходы на соединение» - накладные расходы либо незначительны (как и большинство сканирований), либо вам нужна какая-то фильтрация / снижение уровня обслуживания, выполняемое в восходящем направлении
  • «Это снижает уязвимость приложения» - если ваше приложение не может противостоять автоматическому сканированию и эксплуатации, тогда ваше приложение имеет серьезные недостатки безопасности, которые необходимо устранить (т. Е. Сохранить их исправленными!).

Реальная проблема административная: люди ожидают, что SSH будет в 22, MSSQL будет в 1433 и так далее. Перемещение это еще один уровень сложности и необходимой документации. Очень раздражает сидеть в сети и использовать nmap просто для того, чтобы выяснить, куда все было перенесено. Дополнения к безопасности в лучшем случае эфемерны, а недостатки не являются незначительными. Не делай этого. Исправьте настоящую проблему.


источник
2

Вы правы, что это не принесет особой безопасности (так как диапазон портов TCP-сервера имеет только 16 бит энтропии), но вы можете сделать это по двум другим причинам:

  • как уже говорили другие: злоумышленники, пробующие много входов в систему, могут загромождать ваши файлы журналов (даже если атаки по словарю с одного IP могут быть заблокированы с помощью fail2ban);
  • SSH нуждается в криптографии с открытым ключом для обмена секретными ключами для создания безопасного туннеля (это дорогостоящая операция, которую в нормальных условиях не нужно выполнять очень часто); повторные соединения SSH могут привести к потере мощности процессора .

Примечание: я не говорю, что вы должны изменить порт сервера. Я просто описываю разумные причины (IMO) для изменения номера порта.

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

curiousguy
источник
Файлы журнала могут быть легко загромождены с надлежащими фильтрами. Если вы говорите о производительности сервера из-за уменьшения количества журналов, то мы больше не говорим о безопасности. Производительность - это совершенно другая тема.
Pacerier
Не тогда, когда компьютер становится непригодным для использования из-за чрезмерного использования диска.
любопытный парень
Да, это проблема производительности. Производительность определенно важна, но этот конкретный поток специально обсуждает только безопасность. (Для целей этой темы просто представьте, что вы размером с Google, и Google действительно хочет эти данные для анализа и / или продажи.)
Pacerier
1

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

Я сам запускаю sshd на альтернативном порте на своих частных машинах, но это в основном для удобства, чтобы не загромождать беспорядок в /var/log/auth.log. В многопользовательской системе я действительно не считаю, что небольшая гипотетическая польза от безопасности, представленная выше, является достаточной причиной для дополнительных хлопот, вызванных отсутствием sshd в стандартной части.

andol
источник
Сценарий будет действителен только в том случае, если все администраторы не будут бездействовать с этим «дополнительным временем», когда-либо ходить на обед и т. Д.
Pacerier
1

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

Кроме того, как указывал другой автор, в то время как попытки войти в порт 22, могут быть невежественными сценаристами, зомби-троянами или даже настоящими пользователями, которые неправильно набрали IP-адрес. Попытка войти в порт 12345 почти наверняка будет либо подлинным пользователем, либо серьезным злоумышленником.

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

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

user23523
источник
Повышение безопасности на ~ 0,1% необходимо сопоставить с соответствующим снижением безопасности , что может привести к общему чистому снижению безопасности в зависимости от варианта использования и контекста.
Pacerier
0

Не само собой. Однако не использование порта по умолчанию для определенного приложения (скажем, SQL Server) в основном заставит злоумышленника сканировать ваши порты; такое поведение может быть обнаружено вашим брандмауэром или другими показателями мониторинга, а IP-адрес злоумышленника заблокирован. Кроме того, средний «скрипт-шутник», скорее всего, будет сдерживаться, когда используемый им простой инструмент или командный скрипт не найдет экземпляр SQL-сервера на вашем компьютере (поскольку инструмент проверяет только порт по умолчанию).

Keiths
источник