Главная » 2013 » Декабрь » 12 » 21.7. Администрирование зала
02:09
21.7. Администрирование зала

Вы уже справились с самой сложной задачей – настроили рабочее место посетителя. По сравнению с этой задачей администрирование игрового зала является второстепенным вопросом. Цель любого игрового зала – это получение прибыли, а последнее возможно лишь при условии, что:

1. Все игры будут работать, причем они должны работать быстро и без сбоев.

2. Сеть работает без сбоев.

3. Графический интерфейс пользователя интуитивно понятен.

4. Можно слушать MP3 и смотреть МР4, а также проигрывать аудио компакт‑диски.

Другими словами, клиенты будут посещать ваш зал, если в нем будет создана соответствующая обстановка. А каким образом вы администрируете ваш игровой зал, посетителей мало интересует. Например, если у посетителя вышло время, можно просто подойти и сказать ему об этом. Конечно, если такое позволяют размеры вашего игрового зала. В самом деле, не будете же вы идти через весь зал, чтобы сообщить посетителю номер 47, что ему уже нужно уходить или доплатить за дополнительное время? Можно автоматизировать этот процесс и автоматически отключить его от системы через определенное время.

В этой главе я сделал все возможное, чтобы описать запуск игр под Linux, и, я надеюсь, что игры в вашем игровом зале будут работать достаточно быстро. О сети позаботится сама операционная система, как вы уже знаете, реализация стека протоколов TCP/IP в операционной системе Linux намного эффективнее, чем в Windows.

Разработчики оконных сред KDE и Gnome позаботились о интуитивности пользовательского интерфейса, решив за нас этот вопрос. А об использовании средств мультимедиа мы уже говорили в предыдущем пункте, поэтому сейчас мы можем с чистой совестью перейти к организационным моментам.

21.7.1. Доступ к Интернет

Прежде всего определимся, нужен ли вашему игровому залу доступ к Интернет. Если нужен, то для каких целей. В большинстве случаев он нужен для того, чтобы посетители могли использовать так называемые Online‑версии игр или подсоединяться к всемирным игровым серверам. Такую возможность предоставляют разработчики многих современных игр. Возможно, ваш зал – это не просто игровой зал, а еще и Интернет‑кафе.

Итак, мы выяснили, что может быть три варианта:

1. Зал без доступа к Интернет.

2. Зал с доступом к Интернет для Online‑игр.

3. Интернет‑кафе.

В первом случае вы сразу можете перейти к следующему пункту – «Управление доступом». Сейчас же будет рассмотрена настройка сервера во втором и в третьем случаях.

Если вам нужно обеспечить только работу Online‑игр, вам нужно будет установить и сконфигурировать такие службы:

1. IPChains или IPTables (в зависимости от версии ядра).

2. Прокси‑сервер Socks5.

Настраивать бастион нужно в любом случае – он обеспечивает безопасность вашей внутренней сети. При настройке бастиона учитывайте особенности используемых вами игр. Например, выделенный сервер игры Unreal Tournament использует 7777 порт. На бастионе нужно будет разрешить порт 7777, если вы хотите, чтобы к вашему серверу могли подключиться извне, например, из другого игрового зала. Настройка бастионов уже обсуждалась в одноименной гл. 14 – «Бастионы».

Сервер Socks5 нужно настроить только в том случае, если ваша игра требует реальный IP‑адрес. В этом случае можно использовать или 1Р‑маска‑радинг, настройка которого обсуждается в гл. 14, или сервер Socks5. Сервер Socks5 нужен еще для Организации рабочего места администратора, чтобы он на протяжении рабочего дня мог общаться со своими знакомыми по ICQ.

В третьем случае (Интернет‑кафе) вам нужно настроить такие службы:

1. Бастион.

2. Прокси‑сервер SQUID.

3. Сервер DNS.

4. Сервер Socks5.

5. Web‑сервер.

6. Почтовый сервер.

Первые три службы вам нужно настроить обязательно, а все остальные – по вашему желанию. Как уже было отмечено, бастион нужен из соображений безопасности. Сервер SQUID нужен для кэширования Web‑страниц клиентов, при этом совсем не обязательно устанавливать на сервере Web‑сервер.

Сервер DNS также необходим для повышения производительности. Вы можете использовать сервер DNS вашего провайдера, однако, если вы настроите собственный сервер DNS, вы:

1. Повысите скорость разрешения имен DNS.

2. Сэкономите на трафике.

Желательно настроить почтовый сервер для повышения скорости отправки сообщений посетителей. Можно опять же таки использовать или сервер провайдера или какой‑нибудь бесплатный SMTP‑сервер, например, smtp. mail. ru, но использование собственного сервера будет удобнее и дешевле. Напомню, что настройка почтовика обсуждалась в гл. 13, сервера DNS – в гл. 10, а сервера SQUID – в гл. 15.

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

21.7.2. Управление пользователями

Сначала разберемся, что мы подразумеваем под управлением пользователями. Обычно все управление заключается в отслеживании времени работы посетителя и когда его время вышло, сообщении ему об этом. Естественно, если пользователей много, проследить за каждым – это довольно трудная задача. Даже если у вас будет журнал, в котором вы будете записывать время работы каждого пользователя, через пару дней вам основательно надоест каждые десять минут проверять, у какого посетителя вышло время. Например, если в вашем распоряжении 30 компьютеров, вам нужно будет каждые 10 минут просматривать все 30 записей.

Управлять пользователями можно по‑разному. Можно по истечении определенного времени просто «отрубить» пользователя от системы. На что в ответ вы получите массу жалоб и вряд ли ваш зал будет пользоваться популярностью при таком управлении. Вы, конечно, можете привести аргументы в свое оправдание: мол, он (посетитель) знает, что оплатил один час и должен «чувствовать» время. Однако, в нашем случае нужно учитывать тот факт, что у игрока отсутствует это самое «чувство, времени», во время игры он не ощущает, прошло полчаса или пятьдесят минут. Поэтому, скорее всего, посетитель не успеет сохранить игру до того, как его отключат от системы. Можно предупредить посетителя о таких правилах, но при этом вы заставляете его быть в постоянном напряжении, постоянно поглядывая на часы. От такой игры никто не получит удовольствие.

Мы уже пришли к выводу, что теория «жесткого» управления нам не подходит, и сейчас рассмотрим более лояльный способ управления. Через определенное время, например, за пять минут до того, как у посетителя выйдет время, мы предупредим его об этом. За это время посетитель успеет сохранить игру и доплатить, если он захочет продолжить игру. Думаю, пять минут будет вполне достаточно, чтобы дойти к столику администратора.

Все вышеописанные функции выполняются специальным программным обеспечением для игровых залов. Для игровых залов, использующих операционную систему Windows, создана масса программ такого рода. К сожалению, мне не встречался нормальный пакет программ управления игровым залом для Linux. Можно было бы использовать K12 Linux Terminal Server, но этот программный комплект больше подходит для управления учебным классом, чем для управления игровым залом. В нет есть много ненужных функций, которые вы вряд ли будете использовать. Вам нужна программа, которая:

1. Предупредила посетителя, что через определенное время ему нужно освободить место.

2. Через определенное время «отрубила» его от системы.

3. С помощью которой вы могли бы отправить сообщение любому посетителю.

Как видите, для вас вполне достаточно трех этих функций. Аналогичное программное обеспечение ведет также протокол: кто, когда и сколько работал. Нам же эта функция не нужна, потому что протоколы ведет сама Linux (точнее, программы протоколирования). В любой момент вы можете посмотреть, кто и сколько работал. Например, узнать, когда регистрировался и сколько времени отработал в системе пользователя den можно с помощью команды (см. рис. 21.11):

Рис. 21.11. Журнал регистрации

Аналогично, если вы введете команду last без параметра, то увидите полный отчет о времени работы пользователей. Узнать время последней регистрации пользователя можно с помощью команды lastlog (рис. 21.12). Программы last и lastlog являются средствами просмотра файла /var/log/lastlog, который нельзя просмотреть «невооруженным глазом».

Рис. 21.12. Время последней регистрации

Вернемся к нашему программному обеспечению для управления посетителями. В силу невозможности найти какое‑нибудь достойное уже созданное программное обеспечение, я решил написать свою «программу» для управления игровым залом. Данное решение не претендует на первое место среди программ такого рода, но обладает всеми необходимыми функциями и достаточно простое в обращении. Обычно программы такого рода состоят из двух частей: модуль‑клиент и модуль‑сервер. Модуль‑клиент обычно установлен у администратора и он может управлять множеством компьютеров локальной сети. Модуль‑сервер запускается на компьютере посетителя и опрашиваетнекоторый порт. Как только модуль‑сервер получил от администратора команду, он выполняет определенные действия, например, при получении команды timeout он отсоединяет пользователя от системы.

В предлагаемом мною решении модуль‑клиент, как и модуль‑сервер, отсутствуют. Сейчас разберемся почему. Мы настраиваем основной сервер так, чтобы к нему подключались все остальные компьютеры в сети – компьютеры посетителей. Поскольку, пользователь уже зарегистрирован в нашей системе, для того, чтобы отключить его, достаточно просто локально «прибить» процесс этого пользователя. Под процессом следует понимать оконный менеджер данного пользователя.

Естественно, все компьютеры сети будут X‑терминалами вашего сервера. Настройка X‑терминала обсуждалась в гл. 20. При настройке руководствуйтесь такими правилами. Имя пользователя должно совпадать с именем рабочей станции. Например, если имя рабочей станции game1, то на этой станции должен быть зарегистрирован пользователь game1. На сервере должны быть зарегистрированы все пользователи: game1, game2, …, gameN. Пароли установите по своему усмотрению, но пароли пользователей на сервере и на рабочих станциях тоже должны совпадать. Все это необходимо для регистрации пользователя на сервере. Если настройка Х‑терминала показалась вам слишком сложной, сейчас рассмотрим более простой путь. В гл. 20 рассматривалась настройка «чистого» X‑терминала, то есть загрузка X‑терминала осуществлялась по сети, а на самом компьютере даже не был установлен жесткий диск. Сейчас же мы попытаемся настроить «условный» X‑терминал. Почему условный? Операционная система будет устанавливаться на компьютеры посетителей как обычно, вместе с системой X Window. Затем в файле /etc/inittab вы заменяете строку:

На строку:

Данная команда (X –query 192.168.0.1) обеспечивает загрузку системы X по умолчанию (уровень выполнения 5) и при этом будет использоваться сервер X с IP‑адресом 192.168.0.1. Не сложно догадаться, что компьютер с таким адресом – это и есть ваш сервер. Настройку сервера терминалов выполните так, как описано в гл. 20. При этом на сервере и клиенте желательно установить одну и ту же версию системы X Window.

Если на всех компьютерах установлено одно и то же оборудование, а в большинстве случаев это так, поступите таким образом: настройте систему X Window только на сервере, а затем обеспечьте доступ по NFS клиентам к файлам системы X Window. В этом случае на компьютере клиента вообще не нужно устанавливать систему X Window, а запускать ее непосредственно с сервера по сети, используя NFS. Настройка сетевой файловой системы (NFS) обсуждалась в гл. 8. Я рекомендую использовать именно второй способ. Запуск игр тоже можно осуществлять по сети, предварительно расположив их в каталоге, доступному по NFS. Естественно, для запуска и нормальной работы игр по сети нужна сеть, обеспечивающая скорость передачи данных 100 Мбит/с. Концентраторы (hub) в данной сети лучше заменить коммутаторами (switch).

Теперь перейдем к написанию самой программы. Данную программу мы напишем, используя «подручные» средства: стандартные программы Linux и командный язык интерпретатора shell. Во‑первых, командный язык интерпретатора bash уже рассмотрен в этой книге. Во‑вторых, если написать эту программу на С или Pascal, то читатель должен владеть данным языком программирования, что усложнит чтение книги.

Просмотреть всех зарегистрированных в системе пользователей можно с помощью команды w (рис. 21.13).

Рис. 21.13. Команда w

С помощью данной команды можно выяснить, сколько времени работает пользователь, использование процессора пользователем, какая программа выполняется в данный момент, а также общую загрузку системы (load average). Кроме другой полезной информации, команда w сообщает нам с какой машины произошла регистрация пользователя в нашей системе. Будем рассматривать случай, когда имя пользователя будет совпадать с именем машины, что впоследствии значительно упростит вам администрирование залом.

Вывести все процессы, которые принадлежат пользователю, можно с помощью команды:

На рис. 21.14. показаны процессы, принадлежащие пользователю root.

Рис. 21.14. Процессы, принадлежащие пользователю root

Теперь рассмотрим исходный текст этой программы.

Листинг 21.2. Программа newclient

Запуск программы:

При запуске программы нужно указать четыре параметра. Первый из них – это время, через которое будет отображено сообщение. Сообщение можно изменить по своему вкусу, отредактировав значение переменной MSG (также, как и другие переменные). Следующий параметр – это время, по истечению которого пользователь будет «отрублен» от системы. Время можно указывать в секундах, в минутах (суффикс т), часах (суффикс h), днях (суффикс d).

Третий и четвертый параметры – это соответственно имя пользователя и номер дисплея. Номер дисплея будет совпадать с номером пользователя, если вы настроите систему согласно моим рекомендациям. Например, если имя пользователя game1, то номер дисплея – 1.

Обратите внимание на следующую строку программы:

Данная строка обеспечивает отображение сообщения MSG на дисплее с номером $4 компьютера server. X‑терминал посетителя будет подключен как раз к дисплею с номером $4. При этом посетитель увидит на экране примерно то, что показано на рис. 21.15.

Рис. 21.15. Предупреждение об истечении времени

Следующий аспект, на который вам нужно обратить внимание – это оконная среда пользователя. Если пользователь использует среду Gnome, то в списке процессов пользователя будет процесс gnome‑session. Если завершить этот процесс, пользователь будет отключен от системы. На этом и основывается данный метод работы программы. В листинге 21.2 подразумевается, что пользователь использует среду Gnome:

Если ваши посетители используют среду KDE, измените эту строку на аналогичную ей:

Как проконтролировать, какую среду использует посетитель? Очень просто: при установке системы установите одну из сред: или KDE, или Gnome. Можно также изменить исходный текст программы newclient, добавив соответствующую проверку, но зачем усложнять себе жизнь?

Еще раз рассмотрим запуск программы. Данную программу можно запускать в фоновом режиме, освободив консоль:

Эта команда будет выполняться в фоновом режиме. Как только выйдет время (1 час), на консоли вы увидите сообщение:

21.7.3. Ограничение доступа пользователя

Операционная система Linux обладает достаточно высокими средствами защиты информации, поэтому, используя стандартную конфигурацию (обыкновенный пользователь, а не суперпользователь), вы обеспечите высокий уровень безопасности. Другими словами, по поводу безопасности можете не волноваться: пользователь все равно ничего не сделает такого, что может повлечь за собой разрушение системы. Единственное, что я могу порекомендовать, переместите файлы /usr/bin/mc и /usr/bin/kcontrol‑panel в каталог пользователя root: посетителю незачем изучать аналог Norton Commander для Linux и тем более настраивать среду KDE.

Категория: Linux в игровом зале | Просмотров: 438 | Добавил: spb_serge | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: