Запретить SSH рекламировать свой номер версии


13

Я использую Ubuntu 10.10. Для обеспечения безопасности я хочу отредактировать баннер, который сервер отправляет клиенту.

Если я подключусь к своему хосту через порт 22, он сообщит мне точную версию SSH, которую я использую (SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4). С MySQL и Cyrus такая же ситуация.

Какие-либо предложения? По крайней мере, для SSH?

Благодарность


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

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

Бен, я думаю, я знаю, что я спрашиваю. И я знаю, как защитить NIX-сервер, спасибо. Крис, ходить в темноте тоже хорошо. Независимо от фырканья, iptables fail2bans и т. Д.
Lerikun

пока вы знаете, что это одно из многих дел, это нормально. Я не хотел, чтобы ты ушел, сделав это, думая, что твоя система очень безопасна, вот и все
Бен Пилброу

Как указал Auticracy, я хочу, по крайней мере, скрыть "Debian-3ubuntu4".
Лерикун

Ответы:


17

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


Благодарю. Единственный реальный полезный ответ здесь. Как насчет TCP Wrapper, они просто добавляют баннер, но не скрывают фактическую информацию?
Лерикун

6
Он не только компилируется, но и используется клиентами для определения совместимых уровней соединения.
Джереми Бауз

32

Хотя скрыть номер версии вашего демона SSH очень сложно, вы можете легко скрыть версию linux (Debian-3ubuntu4)

Добавьте следующую строку в /etc/ssh/sshd_config

DebianBanner no

И перезапустите ваш демон SSH: /etc/init.d/ssh restartилиservice ssh restart


7
Спасибо, это работает отлично! Я согласен с тем, что удаление информации о версии является безопасным из-за неясности и может создать больше проблем, которые она решает. Вместе с Debian OpenSSH объявляет не только о своей собственной версии, но и о версии и специфике операционной системы - то есть «SSH-2.0-OpenSSH_6.7p1 Raspbian-5 + deb8u3». Поздравляем, без какой-либо аутентификации вы теперь знаете, что разговариваете с RaspberryPi под управлением Raspbian, и ваш следующий очевидный шаг - попытаться подключиться как «пи» с паролем по умолчанию. ИМХО, это раздает ПУТЬ много информации на первом свидании.
Saustrup

Блестящий, один из лучших скрытых драгоценных камней, найденных здесь.
Руи Ф Рибейру

19

Сокрытие этих не защитит ваш сервер. Есть еще много способов определить, какая система работает. В частности, для SSH объявление версии является частью протокола и является обязательным.

http://www.snailbook.com/faq/version-string.auto.html


Чем меньше людей узнают о вашей системе ... Вы можете не согласиться. А как насчет других услуг? Я говорю вообще о Cyrus (IMAP / POP3) и MySQL и других. А если есть два админа - мне не нужно придерживаться протокола ?!
Лерикун

3
@lerikun: Дело не в том, чтобы делиться этим со страшными хакерами. Речь идет о том, что SSH не может подключиться, потому что не знает, какой протокол использовать. SSHD должен объявить.
Satanicpuppy

9
«Чем меньше людей знают о вашей системе, тем лучше». Да, конечно, это утверждение звучит хорошо, но ничего особенного, например: «Если я выиграю в лотерею, я собираюсь ...». Безопасность через неизвестность - в лучшем случае плохая безопасность.
Роб Мойр

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

2
Для чего это стоит, Роберт Моир совершенно прав.
Sirex

8

Я уверен, что вы не можете изменить объявление о версии.

Лучшие способы защитить sshd:

  1. Измените номер порта по умолчанию.
  2. Запретить вход в систему root.
  3. Принудительный протокол 2 (при условии, что это не сделано по умолчанию).
  4. Белый список серверов, которым разрешен SSH.

Первые три можно сделать, изменив / etc / sshd_config

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


1/2/3 уже сделано. используя сертификаты без пароля. Fail2ban (IMAP, POP, SMTP, VPN, WEB) и denyhosts (SSH) Вопрос об анонсах версий для других сервисов.
Лерикун

6

Как сказано выше, изменение номера версии

  1. Трудно сделать
  2. Безопасность через неизвестность
  3. Не гибкий

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

Вот хорошая реализация: http://www.zeroflux.org/projects/knock

Вот как я реализовал это на своих серверах (другие номера), чтобы открыть SSH только людям, которые знают «секретный стук»:

[openSSH]
    sequence = 300,4000,32
    seq_timeout = 5
    command = /opencloseport.sh %IP% 2305
    tcpflags = syn

Это даст 5-секундное окно, в котором 3 SYN-пакета должны быть получены в правильном порядке. Выберите порты, которые расположены далеко друг от друга и не являются последовательными. Таким образом, сканер портов не может открыть порт случайно. Эти порты не нужно открывать с помощью iptables.

Вот сценарий, который я называю. Он открывает определенный порт на 5 секунд для IP, отправляющего SYN-пакеты.

#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2  -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2  -j ACCEPT

Отправка SYN-пакетов может быть очень болезненной, поэтому я использую скрипт для подключения к SSH моих серверов:

#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6

(Совершенно очевидно, что здесь происходит ...)

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.