Вторник, 08 Май 2012 21:05

Установка и настройка сервера почты, фтп и жаббера, а также почтового шлюза. Этап 1.

Автор
Оцените материал
(8 голосов)

Доброго времени суток!

В этой статье я хочу описать установку и настройку связки из двух серверов. Первый -- сервер, предоставляющий такие повседневные сервисы, как электронная почта, ФТП и обмен мгновенными сообщениями. Всё это на одном сервере потому, что далеко не все админы имеют великое благо — выделенный сервер для каждого сервиса. Второй сервер будет из себя представлять почтовый шлюз + NAT-сервер для первого сервера. Его функции будут следующие: фильтр электронной почты на глобальном уровне и защита первого сервера от внешней сети. Схема их расположения будет выглядеть примерно так:

В моём случае, в местной локальной сети также присутствуют Windows-серверы, выполняющие роль Active Directory и DNS-серверов. На схеме я их не стал указывать.

Для того, чтобы одна только Zimbra работала без тормозов, понадобится довольно неплохое железо, это написано на оф.сайте Зимбры:

http://files.zimbra.com/website/docs/7.0/zcs-system-requirements-7.1.2.pdf

Ну, а поскольку, здесь же, у нас на первом сервере будут ещё ФТП-сервер и OpenFire-сервер, то требования к железу должны быть ещё выше. А вот для второго сервера нам нужно будет совсем немного. Для настройки первого сервера лучше использовать два жёстких диска. Один под систему, а второй, непосредственно, для наших предоставляемых сервисов. Операционная система, для всего этого, будет использоваться Fedora 13 x86_64.

Этап 1. Общая подготовка сервера. 

При установке самой системы будем выбирать почти самый минимум компонентов:

Базовая система:
- Основные
- Поддержка оборудования
- Системные средства. Но зайдём внутрь и оставим галки лишь на тех компонентах, которые нам могут понадобиться:
   - mc
   - ntp
   - samba-client
   - yum-utils

Больше нам пока ничего не понадобится. Тем не менее, если на этом этапе мы что-то упустили, то это можно будет поправить позже. Устанавливаем.

После того, как система установилась, надо установить самые свежие обновления. Для этого нам нужно, чтобы наш сервер имел доступ в интернет. Сначала настроим сетевой интерфейс. Логинимся под root и набираем команду:

mc

Запустится консольный файловый менеджер. Находим файл /etc/sysconfig/network-scripts/ifcfg-eth0, ставим на него курсор и жмём F4 — откроется содержимое этого файла с возможностью редактирования. Приводим содержимое этого файла примерно вот к такому виду:

DEVICE=eth0
HWADDR=08:00:27:05:1E:FB #mac-адрес сетевого интерфейса
ONBOOT=yes
IPADDR=192.168.199.101 #ваш ip-адрес
NETMASK=255.255.255.0 #ваша маска сети
GATEWAY=192.168.199.2 #ваш шлюз
DNS1=192.168.199.202 #ваш DNS-сервер
DNS2=192.168.199.199 #ваш альтернативный DNS-сервер
SEARCH="mydomain.domain" #ваш локальный домен Active Directory, если есть
DOMAIN="mydomain.domain" #ваш локальный домен Active Directory, если есть.

Сохраняем и перезагружаем систему командой reboot. После загрузки проверяем, что сеть работает:

ping 192.168.199.2

Если пинг пошёл, значит всё хорошо.

Если у вас в сети есть прокси-сервер, и доступ в интернет осуществляется через него, а не напрямую через 80-ый порт, то необходимо в файле /etc/yum.conf дописать следующее:

proxy=http://192.168.199.2:3128 #в таком виде надо прописывать адрес прокси и его порт
proxy_username=myuser # В случае, если необходима авторизация, то прописываем логин
proxy_password=mypass # и пароль

Всё, теперь пробуем обновиться. Важно! Сначала надо обновить сам менеджер пакетов yum! На практике встречалось, что обновление может не пойти, пока не обновишь сам yum. Итак, делаем:

yum -y update yum

И вот только после этого запускаем обновление всей системы:

yum -y update

После успешного обновления надо перезагрузить систему.

Теперь, пришло время немного подстраховаться на некоторые случаи жизни. Желательно запретить заходить на сервер под суперпользователем через ssh. Откроем файл /etc/ssh/sshd_config, в нём раскомментируем и отредактируем строчку:

PermitRootLogin no

Сохраним файл. Теперь, через ssh мы на сервер сможем зайти только под любым обычным пользователем. Кстати, давайте его и создадим:

useradd admin
passwd admin

Мы добавили пользователя admin и назначили ему пароль.Не забудем перезапустить демон sshd:

service sshd restrat

Вторая подстраховка, которую необходимо сделать — это посадить сервер на ИБП и настроить его автовыключение при низком заряде батареи. Для этого мы возьмём ИБП APC Back-UPS ES 525 и программу Apcupsd. Будем считать, что вы уже подключили ИБП к серверу через USB-интерфейс. Теперь, устанавливаем Apcupsd:

yum -y install apcupsd

Для настройки Apcupsd я воспользовался вот этой статьёй. Итак, после установки программы, отрываем файл /etc/apcupsd/apcupsd.conf и правим там лишь некоторые строчки:

BATTERYLEVEL 10
# уровень заряда батареи, при котором сервер начнёт выключаться

MINUTES 8
# оставшееся время работы батареи, меньше которого сервер начнёт выключаться

NISIP 127.0.0.1

Наберём команду ntsysv и отметим в меню apcupsd, чтоб этот сервис запускался при запуске сервера. После этого, можно продолжать, не опасаясь проблем с электричеством.

Чтобы у нас во время установки и настройки не возникло каких-либо непонятных проблем, нужно перевести в разрешающий режим систему принудительного контроля доступа SELinux. Находим файл /etc/selinux/config , находим в нём строчку SELINUX=enforcing и меняем её на SELINUX=permissive.

Далее, пригодится и  синхронизация времени с контроллерами домена. Найдём файл /etc/ntp.conf, а в нём найдём строки:

server 0.fedora.pool.ntp.org
server 1.fedora.pool.ntp.org
server 2.fedora.pool.ntp.org

и заменим их на строчки, в которых серверами NTP будут указаны контроллеры домена:

server 192.168.199.202
server 192.168.199.199

Сохраняем и включаем демон ntpd в автозагрузку:

chkconfig ntpd on

И сейчас надо перезагрузить систему.

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

Начнём с того, что соберём ядро с поддержкой Reiser4. О том, как пересобрать ядро, мне пришлось почитать wiki вот тут, а также обратиться за помощью на юниксфорум. Сейчас я пошагово распишу, как собрать ядро с поддержкой Reiser4 для Fedora 13. Для начала, установим пару пакетов:

yum -y install rpmdevtools yum-utils

Дальнейшие действия надо производить не от суперпользователя, а от обычного пользователя. Для этого, залогинимся под недавно созданным пользователем admin и скачаем src.rpm-ку текущего ядра системы:

yumdownloader --source kernel

Скачается файл kernel-2.6.34.9-69.fc13.src.rpm. Затем, выполняем последовательность команд:

rpmdev-setuptree
su -c 'yum-builddep kernel-2.6.34.9-69.fc13.src.rpm' # вводим пароль от root после этой команды
rpm -Uvh kernel-2.6.34.9-69.fc13.src.rpm
cd ~/rpmbuild/SPECS
rpmbuild -bp --target=$(uname -m) kernel.spec

Затем, нам надо перейти в каталог ~/rpmbuild/SOURCES и скачать туда патч для ядра, который обеспечит поддержку файловой системы reiser4:

cd ~/rpmbuild/SOURCES
wget http://mirror.yandex.ru/kernel.org/linux/kernel/people/edward/reiser4/reiser4-for-2.6/reiser4-for-2.6.34.patch.bz2

Далее, в этом же каталоге надо найти файл config-generic и открыть его для правки. Нам нужно найти строчку CONFIG_REISERFS_FS=m. Перед ней добавим две вот такие строчки:

CONFIG_REISER4_FS=m
# CONFIG_REISER4_DEBUG is not set

Теперь нам надо перейти в каталог ~/rpmbuild/SPECS и открыть для редактирования файл kernel.spec. В нём находим строчку:

# % define buildid .local

и правим её вот до такого вида:

%define buildid .reiser4

Далее, нам надо найти блок кода, который содержит множество строчек, начинающихся как: PatchXX: PatchXXX: PatchXXXX: , где иксы — это цифры, идущие по возрастанию. В том месте, где эти строчки заканчиваются, мы добавим свои аналогичные строчки:

# reiser4
Patch999: reiser4-for-2.6.34.patch.bz2

Затем, находим ещё один блок строчек, начинающихся c ApplyPatch. И также добавим свои аналогичные строчки в том месте, где те заканчиваются:

# 999
ApplyPatch reiser4-for-2.6.34.patch.bz2

Сохраняем наше редактирование. Осталось запустить сборку. Находясь прямо в этом же каталоге ~/rpmbuild/SPECS, выполняем команду:

rpmbuild -bb --without debuginfo --target=`uname -m` kernel.spec

Дожидаемся окончания сборки — она будет идти долго. На моём не самом мощном компьютере это длилось почти весь день. Но когда сборка, всё же таки, закончится, то в каталоге ~/rpmbuild/RPMS/x86_64 появятся готовые rpm-пакеты для установки. Установить наше свежесобранное ядро нужно вот такой последовательностью команд:

su -c "rpm -Uvh kernel-headers-2.6.34.9-69.reiser4.fc13.x86_64.rpm"
su -c "rpm -ivh kernel-2.6.34.9-69.reiser4.fc13.x86_64.rpm kernel-devel-2.6.34.9-69.reiser4.fc13.x86_64.rpm"

После чего, перезагрузим систему. Когда сервер загрузится, то нам надо убедиться, что система работает уже на нашем новом ядре и что модуль поддержки Reiaer4 в нём действительно есть. Сделаем это по порядку. Сначала убедимся, что ядро наше. Введём:

uname -r

Если вывод будет такой: 2.6.34.9-69.reiser4.fc13.x86_64 , то система загрузилась с нашим ядром. Теперь убедимся, что модуль reiser4 присутствует:

modinfo reiser4

Если вывод такой:

filename: /lib/modules/2.6.34.9-69.reiser4.fc13.x86_64/kernel/fs/reiser4/reiser4.ko
license: GPL
author: Hans Reiser <Reiser@Namesys.COM>
description: Reiser4 filesystem
srcversion: 09AFD392BB13E78F9568A62
depends: zlib_deflate,lzo_compress
vermagic: 2.6.34.9-69.reiser4.fc13.x86_64 SMP mod_unload

то модуль reiser4 есть. Теперь попробуем его включить командой:

modprobe -v reiser4

и должны увидеть вот это:

insmod /lib/modules/2.6.34.9-69.reiser4.fc13.x86_64/kernel/lib/zlib_deflate/zlib_deflate.ko 
insmod /lib/modules/2.6.34.9-69.reiser4.fc13.x86_64/kernel/lib/lzo/lzo_compress.ko
insmod /lib/modules/2.6.34.9-69.reiser4.fc13.x86_64/kernel/fs/reiser4/reiser4.ko

Похоже, что с ядром всё в порядке. Теперь настало время собрать и установить библиотеки и утилиту для Reiser4. Перейдём в удобный для нас каталог и скачаем:

wget http://mirror.yandex.ru/kernel.org/linux/utils/fs/reiser4/libaal/libaal-1.0.5.tar.bz2

Эта специальная библиотека, которая нужна для работы утилиты reiser4progs. Итак, мы скачали исходники библиотеки libaal. Перед тем, как её собирать и устанавливать, нам надо установить некоторые пакеты, иначе сборка не пойдёт. Выполним:

yum -y install gcc-c++ glibc-static

Теперь соберём и установим libaal:

tar xvf libaal-1.0.5.tar.bz2
cd libaal-1.0.5
./configure
make
make install

После успешной установки библиотеки libaal, точно также скачаем, соберём и установим утилиту для создания файловой системы reiser4:

wget http://mirror.yandex.ru/kernel.org/linux/utils/fs/reiser4/reiser4progs/reiser4progs-1.0.7.tar.bz2
tar xvf reiser4progs-1.0.7.tar.bz2
cd reiser4progs-1.0.7
./configure
make
make install

Теперь, настало время создать на втором жёстком диске раздел с файловой системой reiser4 и примонтировать его в нужное место. Для начала, нам нужно выяснить, под какой буквой наш второй жёсткий диск числится в системе. Обычно, это можно сделать с помощью команды:

dmesg | grep sd

В моём случае, второй жёсткий диск в системе получил название /dev/sda. И в моём случае, этот жёсткий диск не пустой — на нём имеется раздел ntfs, который мне не нужен и который я собираюсь удалить смело. Выполняю команду:

cfdisk /dev/sda

Откроется консольная утилита с довольно понятным интерфейсом, при помощи которой я удалю все существующие разделы на втором жёстком диске. А дальше, уже как будет вам удобнее. Можно на диске создать новый раздел, чтоб потом отформатировать его в reiser4, а можно и не создавать никаких разделов и сразу весь жёсткий диск отформатировать под reiser4. Я, всё-таки, создам раздел sda1, опять же, при помощи cfdisk. Теперь, отформатируем наш раздел в reiser4, включив опцию прозрачного сжатия lzo на файловой системе:

mkfs.reiser4 -o create=ccreg40,compress=lzo1 /dev/sda1

Теперь, осталось только настроить монтирование нашего раздела с Reiser4 к папке /opt. Потому что, именно в эту папку будет устанавливаться zimbra, openfire, и именно в этой папке мы разместим наше будущее фтп-хранилище. Находим файл /etc/fstab и в конце добавим вот такую строчку:

/dev/sda1 /opt reiser4 defaults 0 2

Для чистоты эксперимента, сначала примонтируем этот раздел вручную:

mount /dev/sda1 /opt

и создадим в папке /opt какой-нибудь файл с любым содержимым, например файл «234» с какой-нибудь билибирдой. Теперь, перезагрузим систему. А после загрузки, снова зайдём в каталог /opt и посмотрим, есть ли там наш файл «234». Если есть, то всё отлично :) Ну, и, на всякий случай, выполним команду:

mount

Эта команда покажет, что, в текущий момент, и куда примонтировано. И где-то в серединке, ближе к концу, этого списка как раз и должен быть наш:

/dev/sda1 on /opt type reiser4 (rw)

Если так оно и есть, то можно приступать к следующему глобальному шагу. А именно, к установке и настройке Zimbra.

Этап 2. Установка и настройка Zimbra и почтового шлюза.

Перейти сразу на:
Этап 3
Этап 4

Прочитано 15359 раз Последнее изменение Воскресенье, 21 Октябрь 2012 12:43

You have no rights to post comments

Вы здесь: Home Мои статьи Linux Fedora/CentOS/RedHat Установка и настройка сервера почты, фтп и жаббера, а также почтового шлюза. Этап 1.