Я использую несколько серверов в течение относительно долгого времени, но всегда только арендовал их, поэтому у меня нет большого опыта в обеспечении безопасности самого сервера (в отличие от приложения, которое я использую на нем).
Теперь я хочу открыть свой небольшой домашний SSH-сервер для Интернета.
Я буду единственным, кто его использует, мои пароли достаточно сложны, я изменил порт SSH по умолчанию на что-то около 4000, единственный доступный порт - это порт SSH через переадресацию портов на моем маршрутизаторе / брандмауэре, и он обновляется автоматически каждую ночь (он запускает Arch Linux, скользящий выпуск).
Что еще я должен сделать, чтобы сохранить его в безопасности?
Спасибо!
Убедитесь, что вход в систему root отключен PermitRootLogin no
. Я бы также рассмотрел возможность полного отключения паролей PasswordAuthentication no
и использовать открытые ключи PubkeyAuthentication yes
.
Убедитесь, что разрешен только SSH-2 (поскольку SSH-1 поднял некоторые проблемы безопасности в прошлом):
Protocol 2
Укажите, каким пользователям разрешено входить через SSH:
AllowUsers bob, john
Для повышения безопасности запретите аутентификацию по паролю и используйте аутентификацию с открытым ключом:
PasswordAuthentication no
PubkeyAuthentication yes
Примечание: этот учебник содержит инструкции по созданию ключей и настройке аутентификации с открытым ключом.
Помимо пунктов об отключении входа в систему с правами root или использовании только аутентификации с открытым ключом, я бы также дважды проверил, что в системе нет учетных записей пользователей с тривиальными или пустыми паролями. Вы сказали, что ваши личные пароли в порядке, но это не исключает того, что учетная запись с ненадежным паролем была создана по какой-либо другой причине.
В качестве примера: мне пришлось настроить одну сеть, в которой предыдущий администратор установил nagios на все свои системы из источника, и создал пользователя nagios либо без пароля, либо с паролем nagios, а затем приступил к получению трех разных машин. скомпрометирован.
Возможно, вы захотите взглянуть на какой-нибудь инструмент для внесения в черный список IP, например http://denyhosts.sourceforge.net/. Он блокирует любые IP-адреса, которые безуспешно пытаются войти в систему слишком много раз, и имеет широкие возможности настройки.
Предлагаю вам установить Fail2ban! http://www.fail2ban.org
Он блокирует IP после x неудачных попыток в течение y минут, помогая держать детей скриптов под контролем;)
Повторяющиеся просмотры журналов по соответствующим частям / компонентам ваших систем (в зависимости от их фактической / конкретной конфигурации) ...