Захотелось немного описать процесс, который прошел я с самого начала, до текущего момента. Процесс именно усовершенствования выделенного сервера, от запуска его в ручную до практически полного автоматизма. Все начиналось банально, я случайно наткнулся на статью о установке сервера CS:GO, тут я понял, что сервера в этой игре может поставить любой желающий, честно говоря после Battlefield, где в открытом доступе ничего нет я уже и забыл, что так бывает. Оказалось, что у стима есть инструмент называемый SteamCMD, это по сути консольный клиент, но из него можно скачивать только серверные части игр. Некоторые с авторизацией, некоторые без. Процесс установки и настройки любой игры есть на сайте Valve, описывать его не буду, он тривиален. Дальше еще немного интересней, для некоторых игр, есть скрипт, ссылка на который опять же, есть на сайте Valve. Этот скрипт используя SteamCMD, устанавливает, апдейтит, следит за аптаймом и т.п.

Читать далее

На самом деле, как оказалось, это уже совсем не новая штука. Я просто задался вопросом как можно сделать двухфакторную аутентификацию. Про ключ и пароль я знаю давно, но тут есть минус, ключ нужно как-то хранить и при компрометации ключа его нужно делать еще раз. Вот я нашел такой способ. Ставим вот такой пакет на Linux машину, в моем случае это Ubuntu:

sudo apt-get install libpam-google-authenticator

На телефон или планшет ставим приложение из Google Play.

Дальше нужно выбрать, что именно мы будем таким образом защищать. Если это su, редактируем файл /etc/pam.d/su и добавляем туда строчку:

auth required pam_google_authenticator.so

Для ssh, чуть сложнее, нужно в конфиг sshd добавить строчку:

ChallengeResponseAuthentication yes

и перезапустить сервис sshd.

Теперь под пользователем, которому нужно добавить такую защиту, нужно запустить в консоли google-authenticator . После нескольких вопросов, на экране появится QR код, который нужно отсканировать приложением на телефоне. Все настройка закончена. Теперь при попытке входа, сначала будет запрошен код из телефона, далее пароль.

Думаю все должны понимать, что это стоит попробовать на новом пользователе, чтобы не потерять доступ к серверу целиком. И только потом распространять на ssh, su и т.п. нужных пользователей.