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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Port    Service
22      SSH
80      HTTP
443     HTTPS

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

Port    Service
2222    SSH
10080   HTTP
10443   HTTPS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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