Linux

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

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

  1. Существуют сканеры портов;

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

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

 Ответ 1

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

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

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

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

 Ответ 2

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

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

Ответ 3

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

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

  1. «Программа очищает журналы» — тогда у вас есть проблема с тем, как вы работаете с журналами.

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

  3. «Это уменьшает уязвимость приложения» — если ваше приложение не может противостоять автоматическому сканированию и эксплуатации, значит, у вашего приложения серьезные недостатки в безопасности, которые необходимо устранить (т. е. постоянно исправлять!).

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

Ответ 4

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

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

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

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

Ответ 5

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

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

 Ответ 6

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

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

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

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

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

Схожие статьи

Linux

Как я могу профилировать код, работающий в Linux?

Linux

Защита Linux-серверов: iptables против fail2ban

Linux

Как определить, заражен ли мой Linux-бокс?

Linux

Файловая система с распределенным хранилищем. Есть ли готовый к использованию продукт?

×