Использование Linux (CentOS, Fedora core) на сервере в небольшой организации

Что нам нужно?:
  1. Интернет для пользователей, желательно иметь подсчёт трафика.
  2. Локальный DNS-сервер.
  3. Локальный DHCP-сервер. Нам нужно автоматическое распределение адресов. Некоторым компьютерам нужны постоянные адреса (для интернета).
  4. Локальная почтовая система. Пользователи могут посылать письма как друг другу, так и на внешние адреса.
  5. Файловый сервер. Пользователи могут хранить свои файлы на сервере.
  6. Веб-сервер. Необходимо иметь маленький сайт для внутренних пользователей и для внешних.

Сначала почему именно linux? Первое и одна из главных причин, бесплатность! Вы можете свободно скачать дистрибутив и спокойно использовать в своих целях. Если посчитать во сколько обойдеться покупка лицензии на серверный вариант windows 2003-2008, то использование свободного программного обеспечения во многих случаях выгодней. Вторая причина, также весомая, надежность. Успех работы любой компании зависит не только от работы её сотрудников, но и от работы компьютерной техники. Что такое остановка компьютерной сети в организации никому объяснять не надо. Это как правило потеря престижа и возможных клиентов. Поэтому некоторые задачи, особенно по работе с сетью, лучше возложить на linux. Единственно, не следует использовать разные версии дистрибутивов. Правильно настроенные системы будут хорошо работать. Проблема может возникнуть тогда, когда уволится системный администратор. Конечно сейчас многие администраторы знают linux. Но как правило они специализируются на одном каком-то семействе. Универсального администратора найти сложнее. Также следует учесть одно обстоятельство - если предстоит работать с персональными данными, то к выбору дистрибутива придется подойти более ответственно. На сайте ФСТЭК можно найти перечень сертифицированных продуктов. Во всех остальных случаях, выбор за Вами. И так как у нас был куплен сервер с установленным линукс CentOS, мы и решили использовать это семейство дистрибутивов.

Итак выберем сначала машину. Для надёжного хранения данных, используют дисковые массивы на основе RAID. Дешёвый вариант - SATA диски и RAID-1 (зеркалирование). Для себя мы выбрали два диска по 750 Гб (для RAID массива) и один 160 Гб для системы. Материнскую плату взяли с поддержкой RAID. Можно было взять отдельно контроллер.:-) Процессор из дешёвых Intel Core E4300. И памяти 2 Гб. Корпус выбрали ASCOT. Он удобен для обслуживания. Так как интернет у нас - ADSL, то добавили ещё одну сетевую карту (для подключения к ней модема (включено мостом)). Видеокарту выбрали от NVIDIA. Этот производитель хорошо поддерживает linux и на его сайте всегда выложены свежие драйвера. Найти подходящий можно здесь. Если графический интерфейс не планируется устанавливать, то видеокарты будет достаточно внутренней.

Выбор операционной системы пал на Fedora Core 7. На момент инсталляции, выбранную материнскую плату, поддерживала эта ОС (операционная система). Остальные, имеющиеся в наличии, не поддерживали RAID этой платы. Маленькое примечание: существует мнение, что лучше не использовать RAID-массивы расположенные на материнских платах. Грозит тем, что при выходе из строя "материнки", есть шанс потерять сам массив данных. Альтернатива - использовать программый RAID-массив, например mdadm
Системный диск "разбили" на 3 раздела: swap - 4 Гб, / (корень) - 50 Гб, /opt - остальное (для инсталляций). RAID массив - /home использовали для "домашних" каталогов и для размещения данных для веб-сайта.

Установка обычно не вызывает затруднений. Современные дистрибутивы имеют графический интерфейс установки на русском языке. Пакеты выбирать исходя из потребностей и дела вкуса. По заданию необходимы следующие пакеты: sqiud (для "раздачи" интернета), bind (для DNS), dhcp (для динамического получения адреса пользователями), fetchmail, dovecot, procmail и postfix (локальный почтовый сервер), samba - (сетевые ресурсы для windows машин (файловый сервер)), httpd (веб-сервер). Это пакеты, необходимые для выполнения поставленной задачи. Конечно это не весь перечень необходимых пакетов.:-) Есть ещё необязательные. Ставят их для удобства администрирования сервера. Обычно на сервера не ставят графические оболочки, ради экономии ресурсов. Но если хочется, можно поставить. Например оконный интерфейс KDE, получите внешний вид рабочего стола как у windows. Рекомендуется поставить пакет mc. Это файловый менеджер, похожий на far. Очень удобен при администрировании. Имеет встроенный ftp клиент. После инсталляции пакеты можно до устанавливать - rpm -i имя_пакета.rpm, или при наличии интернета лучше так - yum install имя_пакета. Также, если нет готового пакета в виде .rpm, программу можно установить, скомпилировав из "исходников". Скачанный пакет распаковывают (обычно имеет расширение .tar.gz или .tar.bz2) и войдя в него запускают там скрипт configure. Иногда скрипт запускают с параметрами. Например: ./configure --prefix=/usr. Этим самым мы дали задание установить программу в каталоге /usr (выполняемый файл будет в /usr/bin, библиотеки в /usr/lib). Перечень параметров можно получить - ./configure --help. Ну и обязательно необходимо читать файл INSTALL. В нем обычно пишут как устанавливать программу и необходимые зависимости. После инсталляции системы, может потребоваться установить драйвера на не найденные устройства. Нам пришлось установить драйвер сетевой карты (скачан с сайта производителя материнской платы) и драйвер на видеокарту. Маленькое уточнение: если пришлось собирать драйвер из исходников, то в случае обновлении ядра, драйвер придется пересобирать. Также для компиляции драйверов в системе должны быть установлены исходники ядра и заголовки, называются как правило: kernel-devel, kernel-headers. В итоге мы получили (должны получить) компьютер, работающий под управлением linux. Назовем его server. Для примера заведём (создадим) два пользователя electronik и programmer. Осталось настроить все службы.

Первый шаг: отключить ненужные службы и по мере настройки, включать нужные. Настройку выполняем под пользователем root. В консоли набираем setup, или, если установлена KDE, то "К" -> "Система" -> "Службы". Нужные службы: crond (выполнение заданий по графику), dhcpd (DHCP-сервер), dovecot postfix (для почты), httpd (для веб-сервера), iptables (наша защита от внешних вторжений), named (DNS-сервер), nmb и smb (samba - файловый сервер), squid (для "раздачи" интернета). Это не значит, что остальные надо отключать!!! Перечислены службы для задания. Некоторые потом нужно будет добавить (и включить). Отключить нужно обязательно sendmail, так как мы используем другой пакет.

Далее настраиваем сеть, в первую очередь сетевую карту "смотрящую" в локальную сеть. Зайдём в /etc/sysconfig/networking/devices . Там должны быть два файла : ifcfg-eth0 и ifcfg-eth1 . Это файлы настойки сетевых плат. eth0 будет у нас "смотреть" в локальную сеть, eth1 в интернет (вернее в модем). Первый файл к такому виду:

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:19:d1:7f:22:d5
TYPE=Ethernet
NETMASK=255.255.255.0 //сюда вбиваем маску
IPADDR=192.168.0.1 //сюда вбиваем IP адрес нашего сервера (локальный)
USERCTL=no
IPV6INIT=no
PEERDNS=yes
Второй к такому:
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:31:85:77:64:8C
NETMASK=255.255.255.252 //сюда вбиваем IP адрес, выданный провайдером, маска
IPADDR=86.XXX.XXX.XXX //сюда вбиваем IP адрес, выданный провайдером, сам адрес
GATEWAY=86.XXX.XXX.XXX //сюда вбиваем IP адрес, выданный провайдером, шлюз
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
А можно, при наличии KDE - "K"-> "Система" -> "Сеть". Настроить в графическом режиме.:-). Если же в /etc/sysconfig/networking/devices нет файлов или одного не хватает, значит на одну из сетевых плат нет драйвера. Чтобы найти причины неполадок, смотреть /var/log/messages. Поможет также команда lspci: выводит список оборудования. По этому списку можно понять какой чип используется в сетевой карте, и на сайте производителя затем скачать нужный драйвер.

Набираем /sbin/ifconfig . Должны получить нечто такое:
[root@server /]# /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:19:D1:7F:22:D5
inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
inet6 addr: fe80::219:d1ff:fe7f:22d5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:2173630 errors:0 dropped:0 overruns:0 frame:0
TX packets:2617077 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1065796170 (1016.4 MiB)  TX bytes:2547244030 (2.3 GiB)
Base address:0x4400 Memory:52200000-52220000

eth1      Link encap:Ethernet  HWaddr 00:31:85:77:64:8C
inet addr:86.XXX.XXX.XXX  Bcast:86.XXX.XXX.XXX  Mask:255.255.255.252
inet6 addr: fe80::230:84ff:fe77:348f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:2078346 errors:0 dropped:0 overruns:0 frame:0
TX packets:2985425 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:456949727 (435.7 MiB)  TX bytes:3920189031 (3.6 GiB)
Interrupt:21 Base address:0xe000

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:692074 errors:0 dropped:0 overruns:0 frame:0
TX packets:692074 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2407377089 (2.2 GiB)  TX bytes:2407377089 (2.2 GiB)
Если мы это видим, можно считать, сетевые соединения работают. Модем пока не включаем.
продолжение
На главную...