Linux-сервер своими руками
Шрифт:
В этой главе я сделал все возможное, чтобы описать запуск игр под Linux, и, я надеюсь, что игры в вашем игровом зале будут работать достаточно быстро. О сети позаботится сама операционная система, как вы уже знаете, реализация стека протоколов TCP/IP в операционной системе Linux намного эффективнее, чем в Windows.
Разработчики оконных сред KDE и Gnome позаботились о интуитивности пользовательского интерфейса, решив за нас этот вопрос. А об использовании средств мультимедиа мы уже говорили в предыдущем пункте, поэтому сейчас мы можем с чистой совестью перейти к организационным моментам.
21.7.1. Доступ к Интернет
Прежде всего определимся, нужен ли
Итак, мы выяснили, что может быть три варианта:
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. Время последней регистрации