Навряд ли кто-то из читателей хотя бы раз в жизни не арендовал
виртуальный выделенный сервер (VPS). Это просто и весьма
дёшево: для личного блога, игрового сервера, учебных целей и так
далее.
Случается, что на подобном сервере нужно хранить чувствительную
информацию: криптографические ключи, личную и корпоративную
переписку и тому подобное. В этой статье рассмотрим отключение
прямого доступа к эмулятору терминала, что позволит
подключаться к серверу исключительно через ssh, а всем
недобросовестным хостерам увидеть милую кошечку с радугой
вместо строки приветствия.
Пример будет разобран на операционной системе Debian,
использующей systemd. Главная задача заключается в отключении
служб, отвечающих за инициализацию терминала: systemd-logind и
getty.
Первым всегда инициализируется терминал tty1. Отключаем его
командой: systemctl disable getty@tty1.
Оперировать
остальными терминалами позволяет утилита getty-static. Также
отключаем ее: systemctl disable getty-static.
Перезапустив сервер, в веб-терминале VNC вместо строки
приглашения с просьбой ввести логин, увидим чёрный экран.
Однако, при нажатии Ctrl+Alt+F2 мы попадем во второй терминал,
так как активна служба systemd-logind, которая обрабатывает
манипуляции с терминалами. Блокируем ее, изменяя
конфигурационный файл /etc/systemd/logind.conf:
[Login]
NAutoVTs=0
ReserveVT=0
Теперь подключиться к серверу возможно только через ssh, прямой
доступ не работает. Святое место пусто не бывает, поэтому черноту,
которая заменила терминал, заменим на жизнерадостную заставку
с Nyan cat.
Устанавливаем: apt-get install nyancat. Затем создаем файл
сервиса:
nano /etc/systemd/system/nyancat-tty.service
[Unit]
Description=nyancat on tty1
After=graphical.target
[Service]
Type=simple
ExecStartPre=/bin/sleep 5
ExecStart=/usr/bin/nyancat -snI
ExecStop=/bin/kill -HUP ${MAINPID}
StandardInput=tty
StandardOutput=tty
TTYPath=/dev/tty1
Restart=always
RestartSec=2
[Install]
WantedBy=graphical.target
И наконец включаем нашу службу красочной замены терминала:
systemctl enable nyancat-tty.service
Теперь все попытки физического подключения к терминалу
операционной системы будут выдавать милую заставку. Так как
прямого доступа к управлению системой нет, к настройкам сети и
ssh следует проявлять особое внимание.