Создано по материалам http://forum.ubuntu.ruи прочим аналогичным ресурсам, за что им (и ресурсам и пользователям) огромное спасибо!
Итак, приступим….
Необходимо:
- Почтовый сервер предприятия (Sendmail & Postfix);
- Поддержка почтовых серверов и web mail interface (All POP3 & POP3s Servers, All All IMAP & IMAPs Servers и squirrelmail)
- Web сервер: Apache с PHP, Python, Ruby, и WebDAV
- Сервер баз данных: MySQL
- DNS-сервер: bind
- FTP сервер: ProFTPD vsftpd
- POP3/IMAP: установка Courier-POP3/Courier-IMAP.
- Webalizer статистики веб-сайта
- Firewall Configuration
- Monitoring Of Services And Automatic Restart
- Web FTP
- phpMyAdmin Integration
- Возможность управления через Web interface ( я думаю использовать панель webmin или ISPConfig 3)
После перезагрузки, активизируем пользователя root, запускаем команду (после ввода команды- нажимаем Enter):
Код:
sudo passwd root
Вводим пароль для пользователя root, а затем команду su, чтобы дальнейшие операции совершать под ним.
Код:
su
Натраиваем сетевые карты сервера, редактируя файл /etc/network/interfaces:
Код:
nano -w /etc/network/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 10.0.0.243
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.2
Перезапускаем нашу сеть:
Код:
/etc/init.d/networking restart
Редактируем имя нашего сервера:
Код:
nano -w /etc/hosts
Пример:
Код:
127.0.0.1 localhost.localdomain localhost
10.0.0.243 server.xxx.xxx server (xxx – свои значения_
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Далее выполняем команды:
Код:
echo server.home.net > /etc/hostname
/etc/init.d/hostname.sh start
проверяем, что получилось:
Код:
hostname
hostname -f
Если вы увидели надписи на экране server.xxx.xxx, то продолжаем.
Далее мы редактируем лист со списком необходимых нам репозитариев: (хотя этого можно и не делать)
Код:
nano -w /etc/apt/sources.list
Содержимое этого файла- список адресов смотрите ниже:
Код:
#
# deb cdrom:[Ubuntu-Server 8.04 _Hardy Heron_ - Release i386 (20080423.2)]/ hardy main restricted
#deb cdrom:[Ubuntu-Server 8.04 _Hardy Heron_ - Release i386 (20080423.2)]/ hardy main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu/ hardy main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ hardy-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://de.archive.ubuntu.com/ubuntu/ hardy universe
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy universe
deb http://de.archive.ubuntu.com/ubuntu/ hardy-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu/ hardy multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy multiverse
deb http://de.archive.ubuntu.com/ubuntu/ hardy-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-updates multiverse
## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://de.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository. This software is not part of Ubuntu, but is
## offered by Canonical and the respective vendors as a service to Ubuntu
## users.
# deb http://archive.canonical.com/ubuntu hardy partner
# deb-src http://archive.canonical.com/ubuntu hardy partner
deb http://security.ubuntu.com/ubuntu hardy-security main restricted
deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted
deb http://security.ubuntu.com/ubuntu hardy-security universe
deb-src http://security.ubuntu.com/ubuntu hardy-security universe
deb http://security.ubuntu.com/ubuntu hardy-security multiverse
deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse
Далее с целью обновления базы данных доступных в репозитарих пакетов, запускаем команду:
Код:
apt-get update
И с целью обновления уже устанавленных пакетов ещё одну:
Код:
apt-get upgrade
Проверяем не забыли ли мы устанавить SSH сервер.
Код:
apt-get install ssh openssh-server
Устанавливаем mc (удобство работы и не более того)
Код
apt-get install mc
Удаляем пакет app-armor, он может помешать нормальной работе.
Код:
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
aptitude remove apparmor apparmor-utils
Затем устанавливаем пакеты для Mysql сервера:
Код:
apt-get install mysql-server mysql-client libmysqlclient15-dev
По ходу установки вводим пароль пользователя сервера Mysql (root): в этой версии 2 раза, второй раз для проверки правильности.
New password for the MySQL "root" user: <-- yourrootsqlpassword ВАШ ПАРОЛЬ
Repeat password for the MySQL "root" user: <-- yourrootsqlpassword ЕЩЕ РАЗ ВАШ ПАРОЛЬ
Далее отредактируйте конфиг файл для MYSQL сервера /etc/mysql/my.cnf, закомментируйте строку bind-address = 127.0.0.1 как показано в примере ниже, затем перезапустите MYSQL сервер командой /etc/init.d/mysql restart.
Код:
[…]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
[…]
Проверьте все ли верно, выполнив команду netstat -tap | grep mysql, результат должен быть примерно таким:
Код:
root@server1:~# netstat —tap | grep mysql
tcp 0 0 *:mysql *:* LISTE№ 8474/mysqld
root@server1:~#
Перезагрузим его (сервер MySQL):
Код:
/etc/init.d/mysql restart
То же самое для сервера Apashe:
Код:
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
Устанавливаем пакеты PHP:
Код:
apt-get install libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Расширим диапазон запускаемых файлов, для чего подредактируем файл dir.conf, с помощью редактора nano:
Код:
nano -w /etc/apache2/mods-available/dir.conf
Пример как надо сделать, находится ниже:
Код:
<IfModule mod_dir.c>
#DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml
</IfModule>
Запускаем необходимые модули:
Код:
a2enmod ssl rewrite suexec include
Перезагружаем сервер Apashe:
Код:
/etc/init.d/apache2 force-reload
И проверяем работу сервера набрав в командной строке браузера http://10.0.0.243
Если мы видим надпись
«It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.»
Значит Web сервер у нас уже работает!
Установка Postfix, Courier, Saslauthd, phpMyAdmin, rkhunter, binutils
Код:
aptitude install postfix postfix-mysql postfix-doc courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl maildrop getmail4 rkhunter binutils ntp ntpdate phpmyadmin
В процессе установки пакетов вам надо будет ответить на вопросы, отказаться от создания директорий для веб администрирования, для почтовой системы выбрать конфигурацию «интернет сайт», указать полное доменное имя вашего сервера, а так же согласиться на установку сертификатов.
Конфигурирование PHPmyAdmin:
Yes,
Пароль Суперпользователя MySql – ввести пароль,
И пароль для доступа к phpmyadmin, оставьте его пустым
Во время установки почтовый сервер Courier генерирует сертификаты для localhost, нам надо сменить их на наше доменное имя, для этого нам надо удалить старые сертификаты, поправить конфигурационные файлы Courier и сгенерировать новые сертификаты для нашего домена. В примере используется домен server1.example.com.
Код:
cd /etc/courier
удалим старые сертификаты
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem
Отредактируем конфиги
nano -w /etc/courier/imapd.cnf
Впишите ваш домен вместо localhost
[…]
CN=server1.example.com
[…]
Отредактируем второй конфиг
nano -w /etc/courier/pop3d.cnf
замените localhost на ваш домен
[…]
CN=server1.example.com
[…]
теперь сгененрируем новые сертификаты
mkimapdcert
mkpop3dcert
Перезапустите Courier для того что бы он подхватил новые сертификаты выполнив пару команд:
Код:
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart
Далее обезопасим доступ к phpmyadmin, удалите файл /etc/phpmyadmin/htpasswd.setup и закомментируйте секцию в конфиге Apache2 /etc/phpmyadmin/apache.conf как показано ниже
Код:
[...]
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
# <IfModule mod_authn_file.c>
# AuthType Basic
# AuthName "phpMyAdmin Setup"
# AuthUserFile /etc/phpmyadmin/htpasswd.setup
# </IfModule>
Require valid-user
</Directory>
[...]
После этого перезапустим Apache2 командой /etc/init.d/apache2 restart
Проверка работы: http://10.0.0.243/phpmyadmin - должен высветить окно входа
Установка PureFTPd и Quota
Код:
aptitude install pure-ftpd-common pure-ftpd-mysql quota quotatool
Отредактируем конфиг сервера PureFTPD /etc/default/pure-ftpd-common, изменив пару важных параметров как показано ниже
Код:
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]
После этого перезапустите PureFTPD командой /etc/init.d/pure-ftpd-mysql restart
Проверка работы: ftp://10.0.0.243/ - должен высветить окно входа
Включение квотирования будем делать позже когда установим панель управления или можно сразу:
Для включения квот для пользователей отредактируем файл /etc/fstab который отвечает за монтирование дисков, добавим к разделу / опции usrquota и grpquota, выглядеть это будет примерно так
Код:
# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
proc /proc proc defaults 0 0
# / was on /dev/mapper/server1-root during installation
UUID=b8d265bc-5959-404d-a68e-8dc1c76f18d6 / ext3 relatime,errors=remount-ro,usrquota,grpquota 0 1
# /boot was on /dev/sda5 during installation
UUID=01e9c3c7-2ad0-4f52-a356-18290517b362 /boot ext2 relatime 0 2
# swap was on /dev/mapper/server1-swap_1 during installation
UUID=c1e0bcbb-5c73-4bd2-a7b2-8beeb7526200 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
Создадим файлы необходимые для работы квот и перемонтируем корневой раздел для их включения
Код:
touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
Проверим все ли правильно выполнив команды
Код:
quotacheck -avugm
quotaon -avug
И НАКОНЕЦ ПЕРЕЗАГРУЗИМ НАШ СЕРВЕР!
Код
reboot
Изменение встроенной оболочки
/bin/sh является симлинком к /bin/dash, однако нам нужно /bin/bash а не /bin/dash. поэтому мы делаем следующие:
Код:
dpkg-reconfigure dash
Install dash as /bin/sh? <-- No
Если вы не сделаете этого, установка ISPConfig не удастся.
Установка DNS сервера
Запускаем
Код:
aptitude install bind9
По соображениям безопасности мы запустим BIND в защищённой среде , для этого выполняем следующие шаги:
Код:
/etc/init.d/bind9 stop
Отредактируем фаил /etc/default/bind9 , так чтобы демон запускался как непривилегированный пользователь bind , изменим строку OPTIONS="-u bind" на OPTIONS="-u bind -t /var/lib/named"
Код:
nano -w /etc/default/bind9
Код:
# run resolvconf?
RESOLVCONF=yes
# startup options for the server
OPTIONS="-u bind -t /var/lib/named"
Создайте требуемую директорию под /var/lib:
Код:
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
Затем переместите сконфигурированную директорию из /etc/ в
/var/lib/named/etc:
Код:
mv /etc/bind /var/lib/named/etc
Создайте символическую ссылку на новую директорию конфигурации со старого места (чтобы избежать проблем при обновлении в будущем):
Код:
ln -s /var/lib/named/etc/bind /etc/bind
Сделайте Null и случайные устройства , и измените права доступа на них :
Код:
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind
Теперь нам нужно создать файл /etc/rsyslog.d/bind-chroot.conf
Код:
nano -w /etc/rsyslog.d/bind-chroot.conf
и добавьте следующие строки, чтобы мы могли получать важные сообщения записываемые в системный журнал (вести логи) :
Код:
$AddUnixListenSocket /var/lib/named/dev/log
Далее перезагружаем демона
Код:
/etc/init.d/rsyslog restart
Стартуем Bind и смотрим наличие каких либо ошибок в /var/log/syslog:
Код:
/etc/init.d/bind9 start
Если вы всё правильно настроили то Bind выдаст вам>OK
Установим Vlogger и Webalizer
Код:
aptitude install vlogger webalizer
Установим Jailkit
Jailkit нужен нам для реализации chroot наших пользователей для входа по ssh.
Важно, Jailkit обязательно должен быть установлен перед установкой ISPConfig!
Установим необходимые пакеты
Код:
aptitude install build-essential autoconf automake1.9 libtool flex bison
Jailkit так же как и MyDns будем ставить из исходников
Код:
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz
tar xvfz jailkit-2.5.tar.gz
cd jailkit-2.5
./configure
make
make install
cd ..
rm -rf jailkit-2.5*
Установим fail2ban
Код:
aptitude install fail2ban
Установим SquirrelMail
Код:
aptitude install squirrelmail
Создадим симлинк для более удобного входа в почтовый интерфейс, он будет доступен по адресу http://10.0.0.243/webmail (замените на ваш домен)
Код:
ln -s /usr/share/squirrelmail/ /var/www/webmail
Затем настроим SquirrelMail выполнив команду
squirrelmail-configure.
Или Установка Roundcube
Код
aptitude install roundcube roundcube-mysql
Конфигурация
dpkg-reconfigure roundcube-core
Создание символической ссылки
Код
ln -s /usr/share/roundcube /var/www/roundcube
Рестарт Apache
Код
/etc/init.d/apache2 restart
Приступаем к установке Webmin и ISConfig
Первое что делаем это добавляем в список репозитариев сайт Webmina.
В МС идем: /etc/apt/sources.list находим этот файл и открываем его по F4.
добавляем строчку где нить внизу:
Код:
deb http://download.webmin.com/download/repository sarge contrib
Выходим, сохраняем.
Для того что бы не ругался на отсутствие ключа его надо добавить
Код
cd /root
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
Теперь нада считать список пакетов с нового репозитария, не мудрствуя пишем опять:
Код:
sudo apt-get update
Ну и цель нашей установки:
Код:
apt-get install webmin
Сам Webmin весит 13 метров, но скорее всего он попросит что ли бо не достающее, поэтому возможно размер скаченных файлов увеличится.
Если что то пойдет не так и при установке будет ругатся на нехватку каких либо пакетов, смотрим название этого пакета и ставим его:
Код:
sudo apt-get install название пакета
Вообще ему нужны пакеты: perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl
Но 99% что он поставит это сам как зависимсоти. Ну а вообще:
Код:
sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl
Все Webmin поставился и соответственно сразу запустился. В консоле выскочит https://localhost:10000/ только вместо локалхост имя машины.
Набираем эту строчку в любом браузере и видим приглашение на вход. логин root и пароль.
Если в сети нет DNS сервера то пишем: https://IP-машины:10000/ если вы сидите на сервере и поставили иксы то https://localhost:10000/
Установим ISPConfig 3
Код:
cd /tmp
wget http://downloads.sourceforge.net/ispconfig/ISPConfig-3.0.1.1.tar.gz?use_mirror=
tar xvfz ISPConfig-3.0.1.1.tar.gz
cd ispconfig3_install/install/
ВНИМАНИЕ — вместо указанного адреса ставим ПОСЛЕДНЮЮ версию панели с оф.сайта (сначало надо посмотреть на сайте адрес — http://www.ispconfig.org)Также разархивируем не указанный файл, а закаченнный.
Запустим установку
Код:
php -q install.php
Далее примерно описан процесс установки с ответами на вопросы задаваемыми установщиком
root@server1:/tmp/ispconfig3_install/install# php —q install.php
----------------------------------------
> > Initial configuration
Operating System: Debian Lenny/Sid or compatible
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with < ENTER >.
Tap in «quit» (without the quotes) to stop the installer.
Select language (en,de) [en]: < - ENTER
Installation mode (standard,expert) [standard]: < - ENTER
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: < - ENTER
MySQL server hostname [localhost]: < - ENTER
MySQL root username [root]: < - ENTER
MySQL root password []: < - пароль root для mysql
MySQL database to create [dbispconfig]: < - ENTER
MySQL charset [utf8]: < - ENTER
Generating a 2048 bit RSA private key
……………………………………………………..+++
…………..+++
writing new private key to 'smtpd.key'
---
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
---
Country Name (2 letter code) [AU]: < - ENTER
State or Province Name (full name) [Some-State]: < - ENTER
Locality Name (eg, city) []: < - ENTER
Organization Name (eg, company) [Internet Widgits Pty Ltd]: < - ENTER
Organizational Unit Name (eg, section) []: < - ENTER
Common Name (eg, YOUR name) []: < - ENTER
Email Address []: < - ENTER
Configuring Jailkit
Configuring SASL
Configuring PAM
Configuring Courier
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring MyDNS
Configuring Apache
Configuring Firewall
Installing ISPConfig
ISPConfig Port [8080]: < - ENTER
Configuring DBServer
Installing Crontab
no crontab for root
no crontab for getmail
Restarting services …
* Stopping MySQL database server mysqld
…done.
* Starting MySQL database server mysqld
…done.
* Checking for corrupt, not cleanly closed and upgrade needing tables.
* Stopping Postfix Mail Transport Agent postfix
…done.
* Starting Postfix Mail Transport Agent postfix
…done.
* Stopping SASL Authentication Daemon saslauthd
…done.
* Starting SASL Authentication Daemon saslauthd
…done.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
* Stopping ClamAV daemon clamd
…done.
* Starting ClamAV daemon clamd
…done.
* Stopping Courier authentication services authdaemond
…done.
* Starting Courier authentication services authdaemond
…done.
* Stopping Courier IMAP server…
…done.
* Starting Courier IMAP server…
…done.
* Stopping Courier IMAP-SSL server…
…done.
* Starting Courier IMAP-SSL server…
…done.
* Stopping Courier POP3 server…
…done.
* Starting Courier POP3 server…
…done.
* Stopping Courier POP3-SSL server…
…done.
* Starting Courier POP3-SSL server…
…done.
* Restarting web server apache2
… waiting …done.
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot —l mysql:/etc/pure-ftpd/db/mysql.conf —l pam —A —E —b —u 1000 —O clf:/var/log/pure-ftpd/transfer.log —B
Installation completed.
root@server1:/tmp/ispconfig3_install/install#
После установки система готова к использованию, зайдите в админ панель ISPConfig по адресу http://10.0.0.243:8080/ с логином admin паролем admin
Вам останется только создать и настроить аккаунты, а так же немного привести в порядок конфигурацию установленных демонов.