Давайте признаем, что все мы настраивали SSH в /etc/ssh/sshd_config и /etc/ssh/ssh_config.
Мы заблокировали вход root, установили SSH на нестандартный порт, установили fail2ban и включили аутентификацию по ключам SSH:
- 🖧 Как использовать конфигурационный файл SSH
- 🔐 Настройка входа по SSH без пароля для нескольких удаленных серверов с помощью скрипта
- 🛡️ Как обезопасить и защитить сервер OpenSSH
- 🛡️ CrowdSec, открытая, модернизированная и совместная система предотвращения вторжений (fail2ban)
- 🕵️ Как установить и настроить Fail2ban на Ubuntu 20.04
- 🔒 Как установить Fail2Ban для защиты SSH на CentOS / RHEL 8
Что еще мы можем сделать?
Допустим, вы и ваш ИТ-персонал входите и выходите с ваших Linux-серверов в течение всего дня.
В это время вы должны убедиться, что служба SSH запущена и принимает соединения.
Но как насчет вне рабочего времени?
Вы и ваши сотрудники, возможно, придерживаетесь мнения, что не существует такого понятия, как “внерабочее время”, но оно должно существовать. Возможность отвлечься от работы – один из лучших способов обеспечить себя работой на долгие годы. Отдавать себя в руки компании 24 часа в сутки 7 дней в неделю – верный путь к выгоранию и угасанию. Не позволяйте этому случиться.
Учитывая это, что если вы просто отключить службу SSH после окончания рабочего дня?
Это звучит безумно – блокировать удаленный доступ, когда вы не работаете.
Но дело в том, что период, когда вы не работаете, – самое подходящее время для злоумышленников.
Если вас нет рядом, ваша способность быстро отреагировать практически равна нулю.
Так зачем же давать кому-либо возможность доступа к вашим удаленным серверам через SSH?
Опять же, я знаю, что это звучит безумно, но для некоторых серверов это может быть идеальным способом блокирования входящих SSH-атак в определенное время.
Возможно, вы наняли одного или двух администраторов для решения проблем, возникающих ночью.
Таким образом, они находятся на месте и могут справиться с тем, с чем не можете справиться вы (потому что вы не можете войти на серверы по SSH).
В таком случае, почему бы не отключить демоны SSH в эти часы?
Если эти службы не будут принимать соединения, хакерам будет гораздо сложнее получить доступ.
Но как это сделать?
Одним словом: cron.
Как создать задания cron для SSH
Мы создадим файл, который будет обрабатывать два задания cron:
- Одно для запуска SSH в 6 часов утра.
- Одно для остановки SSH в 7 часов вечера.
Чтобы создать файл, выполните команду:
sudo nano ssh-start-stop
В этот файл вставьте следующее:
0 6 * * * root /usr/bin/systemctl start ssh 0 15 * * * root /usr/bin/systemctl stop ssh
Сохраните и закройте файл.
Когда наступит 7 часов вечера, демон SSH должен быть остановлен, а затем перезапущен в 6 часов утра.
Никто не сможет использовать secure shell для получения доступа к этому серверу в этот период.
Заключение
Как я уже сказал, это не надежное решение.
Оно может даже создать больше проблем, чем стоит (в зависимости от ситуации).
Однако это показывает, насколько гибкой может быть операционная система Linux, и что вы всегда можете придумать нестандартные решения для повышения безопасности вашего сервера.