Защитить файл known_host от записи - хорошая или плохая идея?

Я хочу защитить файл known_host от записи. Поэтому я хочу выполнить следующие шаги на моем сервере Red-Hat Linux.

Cp /dev/null   /root/.ssh/known_hosts
chattr +i /root/.ssh/known_hosts

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

Но я не уверен, что мое решение (защита от записи на known_host) является хорошей идеей и что негативно влияет на систему Linux?

Или, может быть, это решение является хорошим решением для сохранения файла known_host пустым?

Что думают здесь участники?

1 ответ

Решение

ИМХО Это не очень хорошая идея (см. Ниже).

Следующая команда удалит нарушающий ключ вашего хоста из known_hosts

  ssh-keygen -R <host>

например ssh-keygen -R my_old_client

Почему это не очень хорошая идея, можно утверждать из man ssh (в поисках вниз вы можете прочитать):

Кроме того, сервер должен иметь возможность проверять ключ хоста клиента (см. Описание /etc/ssh/ssh_known_hosts и ~/.ssh/known_hosts ниже), чтобы разрешить вход в систему. Этот метод аутентификации закрывает дыры в безопасности из-за спуфинга IP, спуфинга DNS и спуфинга маршрутизации. [Примечание для администратора: /etc/hosts.equiv, ~/.rhosts и протокол rlogin/rsh в целом небезопасны и должны быть отключены, если требуется безопасность.]


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

Всегда из man ssh о том, как это работает:

ssh автоматически поддерживает и проверяет базу данных, содержащую идентификацию для всех хостов, с которыми она когда-либо использовалась.
Ключи хоста хранятся в ~/.ssh/known_hosts в домашнем каталоге пользователя. Кроме того, файл /etc/ssh/ssh_known_hosts автоматически проверяется на известные хосты. Любые новые хосты автоматически добавляются в файл пользователя. Если идентификация хоста когда-либо изменяется, ssh предупреждает об этом и отключает аутентификацию по паролю, чтобы предотвратить подделку сервера или атаки "человек посередине", которые в противном случае могли бы использоваться для обхода шифрования.

Параметр StrictHostKeyChecking можно использовать для управления входами в систему на компьютерах, ключ хоста которых неизвестен или изменился.

Другие вопросы по тегам