Отключаем прямой доступ к терминалу на арендованном сервере

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Навряд ли кто-то из читателей хотя бы раз в жизни не арендовал виртуальный выделенный сервер (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 следует проявлять особое внимание.

Спасибо R4SAS за помощь в написании заметки.

Источник: https://habr.com/ru/company/itsoft/blog/551628/


Интересные статьи

Интересные статьи

Компания «Деловой разговор» — Титановый партнер 3СХ — осуществила расширенную интеграцию IP-АТС 3CX с Битрикс 24. Ранее уже существовали отдельные модули, решающие конкретные задачи, напр...
В период пандемии многие конференции стали онлайновыми. Моя знакомая из Smartcat занимается организацией онлайн-мероприятий, и я захотел узнать у неё, какие инструменты для запуска массов...
Всем привет! В этой статье я бы хотел рассказать как реализовать доступное модальное окно, без использование аттрибута «aria-modal». Читать дальше →
ЗАВТРА, 10 августа в 20:00 пройдет прямой эфир с Джоном Ромеро — создателем игр Doom, Quake и Wolfenstein 3D. Это будет вечер теплых ламповых историй по заявкам: вы задаете вопрос...
Недавно мне попалась классическая задачка для собеседований: поиск максимального числа точек, стоящих на прямой линии (на плоскости, координаты целочисленные). В голову сразу пришла идея полного ...