Linux. Linux как серверная операционная система. Преимущества Linux перед Windows. Основы Linux Server для начинающих

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

на сегодняшний день меня интересует file-сервер и web-сервер (для сайта-поддержки игры). об них и будет данный псто.


1. установка дистрибутива linux. создание пользователей.
за основу была взята, уже полюбившаяся, Ubuntu. конктретно в данном случае была использована свеженькая Ubuntu 9.10 server i386 .
бесплатно скачать исошник можно с официального сайта Canonical.

после загрузки рабочей консоли, я установил Midnight Commander . это псевдографическая оболочка, похожая на Norton Commander (ставился, в своё время, на безгуёвый MS DOS). очень удобна в работе.
$ sudo apt-get install mc
$ mc

я планирую, что у меня будет несколько игр на сервере. соответственно, я буду создавать несколько учётных записей с минимальными правами.

2. настраиваем samba и поднимаем file-сервер.
для начала настроим сетевую карту сервера. выбираем свободный ip-адрес (у меня был свободен 192.168.1.4).
сетку настраиваем путем редактирования файла: /etc/network/interfaces :
$ sudo nano -w etc/network/interfaces
содержимое файла interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.4
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

[обратите внимание, что "address" написано с двумя "d" и двумя "s". у меня здесь были ошибки. скорее всего из-за невнимательности ]

затем:
# echo server.home.net > /etc/hostname

И еще:
$ hostname
$ hostname -f
эти две команды должны вывести на экран имя server.home.net .

теперь, собственно, самба. если вы в самом начале (в время установки дистрибутива) не выделили Samba file server, то ничего страшного. мы можем сейчас все нужные пакеты установить:
$ sudo apt-get install samba smbclient smbfs ntp ntpdate

мы установили программы: Samba, SMBlient и SMBFS, которые являются основой для нашего файлового сервера.
последние пакеты - NTP и NTPDate - я установил, чтобы сервер мог синхронизировать свои системные часы, через Интернет.

выполним команду, которая сделает наш диск доступным для всех пользователей сети (дадим им полные права на этот диск).:
$ sudo mkdir /media/multimedia
$ sudo chmod 777 /media/multimedia

теперь сконфигурируем Samba.
это нужно для того, чтобы наш файловый сервер был виден в домашней сети.
по умолчанию в Windows все сетевые компьютеры попадают в рабочую группу с названием MSHOME.
проверим чтобы samba имела в конфигурационном файле то же название рабочей группы:
$ sudo nano -w /etc/samba/smb.conf

находим и правим строчку:
workgroup = MSHOME

[вы, конечно, можете присваивать параметру workgroup свои значения. просто помните, что название рабочей группы в винде и в линухе должны быть одинаковыми. ]

что бы диск был виден, а так же читался и писался для всех пользователей сети, добавим в конец конфига:
comment = Public Folder
path = media/multimedia
public = yes
writable = yes
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup

[обратите внимание, что "nogroup" пишется слитно . во многих описаниях настройки написано раздельно. у меня, при раздельном написании, не работало ]

сохраняем изменения в файле и перезагружаем пакет Samba:
$ sudo /etc/init.d/samba force-reload

3. устанавливаем apache и поднимаем web-сервер.
для web-сервера много не надо. тут всё совсем просто. нужно установить apache (что такое апач) и владеть навыками htmlя.
$ sudo apt-get install apache2

после установки апача, можно приступать к созданию сайта. по-умолчанию адрес вашего сайта будет тот же, что и ip-адрес вашего сервера в локалке (например, http://192.168.1.4). это никуда не годится. нужен человеческий адрес (доменное имя, читать про домены). тут варианта два.
1. купить. нормальный домен второго уровня (типа httр://mysеrver.соm).
2. взять бесплатный, но третьего уровня (вида httр://gаme.myserver.соm).

платный стóит порядка 6ОО рублей за пол-года. бесплатный - нихрена не стóит.

я использовал для своего сервера бесплатный домен третьего уровня на http://dynDNS.com . там нужно зарегестрироваться, выбрать доменное имя (при условии, что оно свободное), указать свой реальный ip (). на своём интернет-шлюзе (или роутере) настроить переадресацию по 80 порту (port forwarding) с HTTP на свой внутренний ip сервера.

в итоге (если всё правильно настроить), при обращении по зарегестрированному вами адресу, пользователь попадает на главную web-страницу сайта на вашем сервере.

как настроить свой сайт.
все настройки сайта лежат в /var/www . по умолчанию в этой директории лежит один скромный index.html с надписью It works! , который нам кагбе намекает на нормальную работу.
вот этот файл можно/нужно править под себя, под создание своего сайта.

перезапускаем сервер командой:
$ sudo shutdown -r now

/ Для сервера

Дистрибутивы Linux, которые подойдут для установки на сервер. Они содержат (позволяют установить) программное обеспечение, которое требуется для функционирования серверов любой сложности. Данные дистрибутивы отличает высокая надежность и стабильность. Еще одно требование предъявляемое к серверным Linux дистрибутивам это поддержка серверного оборудования.

  • TrueOS — основана на FreeBSD

    TrueOS (прежнее название PC-BSD) — операционная система, основанная на FreeBSD и предназначенная для настольных компьютеров и рабочих станций.

  • Russian Fedora Remix — Fedora с рядом дополнений

    RFRemix (ранее Tedora) — это не отдельный дистрибутив, а оригинальная Fedora с рядом дополнений. Рассчитан на то, чтобы пользователи получили полностью готовую к работе систему, сразу после установки (например, добавлена поддержка мультимедиа форматов (mp3, DivX)).

  • Calculate Linux — быстрый и основан на Gentoo

    Calculate Linux — дистрибутив Linux, основанный на системе Gentoo. Поставляется с утилитами, которые значительно упрощают установку системы (в отличии от Gentoo). Calculate стабильный и быстрый дистрибутив, пригодный для использования на персональных компьютерах и на серверах.

  • CentOS — на основе Red Hat

    CentOS — дистрибутив, основанный на платном дистрибутиве Red Hat Enterprise Linux (RHEL) и полностью совместим с ним. Стабильный дистрибутив, содержащий все необходимое ПО для работы. Может использоваться и на персональных компьютерах и на серверах.

  • Slackware — для опытных

    Slackware — один из первых дистрибутивов Linux (первая версия вышла в 1993 году). Дистрибутив предназначен для опытных пользователей. Систему можно гибко настраивать и проектировать под себя.

  • Debian — стабильный дистрибутив

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

  • Mandriva

    Mandriva (старое название Mandrake Linux) — дистрибутив Linux для персональных компьютеров и серверов. Включает полный набор стабильного ПО для повседневной работы.

  • Итак, сеть поднята и свитч бодренько моргает диодами. Самое время для настройки нашего маленького, но гордого сервера, работающего под управлением Ubuntu Server 10.04 LTS. Используя образ диска (его можно по HTTP или через torrent, - 700Mb.) записываем его на болванку. Для этих целей рекомендую использовать «Daemon Tools Lite» или « » так как обе эти программы - бесплатные и полностью удовлетворяет нашим требованиям.

    Выставляем в bios-е загрузку с CD или DVD и перезагружаемся.

    Для начала, нам предложат выбрать язык установки. Выберем русский.

    Подсказка : Обратите внимание на строку в самом низу экрана. В ней перечислены функциональные клавиши, с помощью которых осуществляется навигация по меню, выбор опций, доступ к справке и т.д. Это - особенность nix систем.

    Мы попадаем в меню загрузки диска. Выбираем пункт «Установить Ubuntu Server».



    У нас спросят, где мы будем использовать наш сервер, это повлияет на выбор зеркал обновления (репозиториев). Так как Интернет-провайдеры обычно предоставляют доступ в IX (UA-IX, MSK-IX и похожим сегментам) на более высоких скоростях, выберем наше местоположение. Так как я живу на Украине, я и выбрал «Украина».





    В списке стран выберем «Россия»:



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



    Итак, после тщательных поисков, нашлись две (в среде Linux они обозначаются как eth0 и eth1 - ethernet). Нам нужно выбрать ту, которая подключена к Интернету (роутеру или модему в нашей локальной сети).



    Если на роутере был настроен DHCP (Dynamic Host Configuration Protocol - протокол автоматического назначения IP адресов ), сетевая карта получит соответствующие настройки автоматически. В моем случае DHCP сервер был не настроен, о чем программа установки нам и сообщила. Не беда, ведь можно позже настроить все руками, согласимся со сбоем и продолжим установку.



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



    • IP: 172.30.2.3
    • Netmask: 255.255.255.0
    • Gateway: 172.30.2.1
    • DNS: 172.30.2.1

    После настройки, у нас поинтересуются, как же будет называться наш новоиспеченный сервер? Я назвал его «CoolServ ». В названии должны быть только латинские буквы, цифры, тире или подчеркивание, иначе могут возникнуть непредвиденные неприятности.

    Вообще, лучше следовать трем правилам именования переменных в языках программирования, а именно: имя не должно начинаться цифрой, в имени не должно быть пробелов, нельзя использовать зарезервированные слова (специальные конструкции, например if, else, for, goto и т.п.) Есть и четвертое, - не использовать символы национальных алфавитов кроме латинского, например: Русский, Японский, Украинский и т.д. Если придерживаться этого правила, у Вас никогда не будет проблем с работой программ и отображением имен файлов.



    ОС определила, что мы находимся во временной зоне Европа/Запорожье, те GMT+2, все так и есть. Для Вас, соответственно, будет свой часовой пояс, если Вы не живете на Украине.



    Настало самое «страшное» при любой инсталляции ОС - разметка для ее установки. Но дружелюбная ОС (именно так переводится слово «ubuntu» с языка какого-то племени банановой республики) поможет нам все сделать быстро и качественно. У нас есть два варианта разметки: автоматическая или вручную. Так как мы не ищем легких путей, - выбираем ручную разметку.



    На фото ниже отображены подключенные диски. В нашем случае, это - один диск SDA на 8 гигабайт под именем (WD, Seagate и т.п. В моем случае это - виртуальный диск Virtual Box-a). Выбираем его.

    Примечание : В *NIX подобных ОС диски не имеют привычных для Windows имен, вроде «C» или «D». Вместо этого они именуются как HDA (для IDE канала) или SDA (в случае SATA или SCSI дисков).

    Последняя буква в названии (А) обозначает диск в алфавитном порядке. Т.е. - следующий SATA диск будет именоваться SDB, SDC и так далее. Но это только именование физических дисков, а логические их разделы будут иметь вид SDA1, SDA2, SDA5 и т.д. Причем, цифры от 1 до 4 означают первичный раздел, от 5 и выше - логический. Пусть Вас не смущает такое странное наименование, со временем, я надеюсь, оно станет таким же легким и привычным, как и в среде MS Windows.



    Грозная надпись на скриншоте ниже сообщает о том, что все что было на диске может быть утеряно при переразметке, но мы ничего не боимся и жмем «Да».



    После этого будет создана таблица разделов, которую нужно «заполнить» самими разделами. Выбираем свободное место и жмем далее (клавишу «Пробел»).



    На следующем скриншоте выбираем «Создать новый раздел», хотя все еще можно сделать автоматически, мы упорно будем настраивать вручную:)



    Вводим размер нового диска в MB или GB, для начала создадим своп (аналог файла подкачки в MS Windows), размером в 512 мегабайт. Хотя, рекомендуется делать своп размером в полтора раза больше размера общего количества установленной , мы сделаем его равным этому значению.

    Примечание : операционные системы *NIX (Unix и Linux) более правильно использует файл подкачки (особенно - в версиях без графического интерфейса), здесь своп будет загружен крайне редко. Например, на моем сервере из 1Gb свопа максимально использовалось несколько мегабайт и то, из-за реально большой нагрузки и времени бесперебойной работы около месяца. В любом случае, больше гигабайта нет смысла делать, так как просто потеряете место, которого всегда не хватает.



    Выбираем тип раздела. Я выбрал первичный (т.е., полное имя данного раздела будет - SDA1)



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



    Теперь опять выбираем свободную область, создать диск, но сейчас выберем тип «логический». Размер поставим 15 GB, тип файловой системы: EXT4, точка монтирования: / (корень) и на этом закончим с этим разделом.



    На все оставшееся место создаем логический раздел с файловой системой EXT4 и точкой монтирования /home , это будет домашний каталог всех пользователей (аналог каталога в MS Windows “Documents and Settings”). На этом закончим настройку дисков. В итоге у Вас должно получиться примерно следующее.



    Если все правильно, то выбираем «Да» (как показано на скриншоте ниже). Это - последний момент перед записью таблицы разделов на диск (пока все проделанные нами настройки записывались исключительно в оперативную память ПК). Ну, понеслась!



    После записи таблицы начнется установка самой ОС Ubuntu Server 10.04 LTS, это займет минут 5-7.



    После окончания процесса, нам предложат ввести имя будущего пользователя. Я введу свое имя. Оно будет использоваться для отправки почты от имени этого пользователя.



    После ввода имени, нам нужно придумать имя учетной записи, те пользователя, под которым мы будем входить в систему. Я использовал asus (это - не реклама:))





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

    Примечание : при шифровании есть риск того, что в случае неполадок с винчестером, будет проблематично восстановить зашифрованную информацию.



    Нам предлагают ввести информацию о прокси-сервере для получения доступа к Интернету. Так как его у нас пока нет, то просто оставим поле пустым. Выбираем «Продолжить».



    В отличие от денег-просящей MS Windows, Ubuntu предлагает совершенно бесплатно и своевременно обновляться через Интернет. Выберем пункт «устанавливать обновления безопасности автоматически», чтобы не делать этого потом вручную.



    Также, нам сразу предложат установить парочку «демонов» (аналоги системных служб в Windows). Да, это - «страшная» ОС, здесь могут быть даже «зомби» - зависшие «демоны», и отсутствуют иконки:) Для удобства конфигурирования выберем Open SSH server (чтобы можно было по необходимости подключатся к серверу удаленно по сети с использованием терминала).

    Наконец-то! Ubuntu Server 10.04 LTS установлен и можно проверить плоды своих трудов! Пробуем войти в систему, используя логин и пароль указанные при установке.



    После успешного ввода логина и пароля, ОС поприветствует нас краткой информацией о своем состоянии. У Вас это будет выглядеть приблизительно так:



    Из информации на скриншоте выше видно:

    • Система загружена на 0.4%,
    • В домашнем каталоге использовано 3.3% места из 1009 Mb.
    • Используется 3% ОЗУ из 512 Mb, что в переводе на мегабайты составляет всего 21 Mb. Для сравнения MS Windows XP Pro SP3 после «чистой» установки (с оригинального диска) использует около 100Mb и уже в файле подкачки изначально «держит» мегабайт 30.
    • Сейчас запущено 84 процесса, вошедших пользователей нет (потому что информация была взята до того как пользователь, т.е. - мы, вошли в систему).
    • Одной сетевой карте под именем eth0 присвоен IP адрес 172.30.2.3
    • Также доступно 89 пакетов для обновления и 67 пакетов обновления безопасности.

    После установки необходимо обновить ОС, для этого потребуется около 70 мегабайт скачать из Интернета. Запускаем команду обновления от имени root-a (администратора) sudo apt-get update , которая обновит список доступных пакетов.

    Так как команда требует прав супер пользователя «su» (super user), у нас спросят наш пароль, введем его. Введенная следом команда apt-get upgrade запустит сам процесс обновления пакетов. После запуска будет проверен список пакетов и предложены обновления, подтвердим установку нажав клавишу «Y».



    Команда «get update» обновляет список доступного ПО, те только информацию о нем (версия и т.п.), а «upgrade» - производит непосредственно обновление программного обеспечения (скачивает с сайта разработчика новую версию и устанавливает ее).

    Рассмотрим ту же самую процедуру обновления с использованием команды sudo



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

    Теперь ваш сервер готов к работе! Но его еще нужно настроить (сконфигурировать). Этим мы и займемся в следующей статье.

    Операционная система Unix (как прородитель Linux) созадвалась прежде всего для серверных задач, поэтому большинство GNU утилит является консольными (т.е. работают только в командной строке Linux-терминала), потому-что на сервере нет необходимости в графической оболочке. Однако со временем функциональность серверных служб в Linux настолько выросла, что постоянное редактирование файлов конфигурации из командной строки стало затруднительным и поэтому для в настоящее время существует огромное количество графических инструментов администрирования (чаще реализованные в виде WEB-интерфейса), которые значительно упрощают жизнь системным администраторам.

    На базе серверных служб и утилит Linux работает огромное количество коммерческих решений и продуктов. Linux сервер может выполнять практически любую серверную роль. Вкратце, постараюсь рассказать про основные роли Linux:

    Файловый сервер Linux

    Linux может достаточно легко выступать в качестве файлового сервера как для Windows пользователей так и для Linux. Основной службой для этого выступает пакет Samba, который позволяют обращаться к сетевым дискам и принтерам по протоколу используемому в Windows сетях. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL. С помощью Samba возможно организовать полноценный обмен файлами между пользователями с четким разграничением прав доступа.

    Для более опытных системных администраторов могу сказать, что текущая версия Samba-сервера может выступать в роли контроллера домена и сервиса Active Directory (централизованное управление компьютерами и пользователями работающие на операционной системе Windows), способна обслуживать все поддерживаемые Microsoft версии Windows клиентов, в том числе Windows 10. Ранее это было возможно только при наличии дорогостоящего Microsoft Windows Server.

    Сервер базы данных

    Практически все системы любой сложности и назначения не могут обходиться без базы данных. Не секрет, что практически все сайты размещенные в сети Интернет работают с использованием базы данных, которая работает на платформе Linux (как правило MySQL). Системы бухгалтерского учета (например 1С), CRM, проектные системы и прочие все используют базы данных.Однако большинство ранее написанных настольных приложений (работающие на пользовательских компьютерах) разработанных под Windows работают с использованием баз данных под этой операционной системой. Однако в настоящее время в Linux их количество просто огромно, а функционал часто не уступает мощнейшим конкурентам от Microsoft или Oracle. Большинство известных баз данных в Linux имеют свои версии и под Windows. В настоящее время даже российский разработчик компания 1С активно развивает и поддерживает версии своих продуктов работающих под Linux. Самыми популярными являются следующие базы данных:

    MySQL — свободная реляционная система управления базами данных, является решением для малых и средних приложений.

    PostgreSQL - свободная объектно-реляционная система управления базами данных. При помощи этой базы данных строят системы обработки больших данных и зачастую именно PostgreSQL конкурирует с Oracle DB.

    Сервер электронной почты

    Как и любой другой сервер Linux очень даже пригоден для создания своего собственного сервера электронной почты. На базе Linux работает большинство бесплатных почтовых сервисов Google,Mail.ru, Yandex и другие. В отличии от Windows платформы (в которой большинство функциональных серверов являются платными) Linux имеет большое количество различных пакетов для запуска собственной службы корпоративной или личной электронной почты и предоставляются они бесплатно. Однако популярность Linux приводит к тому что большинство бесплатных решений модифицируются, дописываются и продают за деньги. Но тут есть свои плюсы — официальная поддержка, постоянные обновления, удобный интерфейс администрирования и контроля (не всем же нравиться работать в консоли).

    Сервер Интернета

    Это сервер, который обеспечивает доступ компьютеров локальной сети к сети Интернет. Такие сервера часто называют (прокси-серверами) и они выполняют следующие задачи:

    • Кэширование данных: если часто происходят обращения к одним и тем же внешним ресурсам, то можно держать их копию на прокси-сервере и выдавать по запросу, снижая тем самым нагрузку на канал во внешнюю сеть и ускоряя получен запрошенной информации.
    • Защита локальной сети от внешнего доступа: например, можно настроить прокси-сервер так, что локальные компьютеры будут обращаться к внешним ресурсам только через него, а внешние компьютеры не смогут обращаться к локальным вообще (они «видят» только прокси-сервер).
    • Ограничение доступа из локальной сети к внешней: например, можно запретить доступ к определённым веб-сайтам, ограничить использование интернета каким-то локальным пользователям, устанавливать квоты на трафик или полосу пропускания, фильтровать рекламу и вирусы.

    Такие сервера так же очень часто разворачиваются именно на Linux. Самым распространенным функциональным является пакет Squid . Он является полностью бесплатным, а его функциональность при совместном использовании с сетевыми службами Linux-а дает огромный эффект.

    Телефонная станция (IP АТС — IP-PBX)

    Связь и коммуникации между сотрудниками являются неотъемлемой частью практически любой организации и конечно связь невозможна без телефонной связи. Однако, с ростом технологических решений функциональность и требования к телефонной связи значительно выросли. Но позволить себе дорогостоящие, функциональные системы может позволить не каждый. Именно желание получить такую систему побудило создателей, самого популярного в мире телефонного решения (Asterisk), разработать бесплатный аналог таких система в Linux.

    Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает множество VoIP-протоколов и предоставляет богатые функции управления звонками, среди них:
    Голосовая почта
    Конференц-связь
    IVR (интерактивное голосовое меню)
    Центр обработки звонков (постановка звонков в очередь и распределение их по абонентам, используя различные алгоритмы)
    Call Detail Record (подробная запись о вызове) и множество других функций.

    Благодаря свободной лицензии Asterisk активно развивается и поддерживается тысячами людей со всей планеты. Практически все «коробочные» IP-АТС работают на базе Linux и под управлением Asterisk. Данная АТС отлично работает на любых малобюджетных системах, например BananaPi 🙂


    Asterisk на Banana Pi

    Конечно это очень малая часть того, как Linux может быть сервером, так возможности безграничны. Linux может быть как простым файловым сервером так и узлом мощного вычислительного кластера в каком-нибудь научном центре. Linux сервер — это по большей части конструктор для специалистов и гиков, но его возможности практически безграничны.

    Linux — это сервер