Это старая версия документа.
Содержание
Автор — Falko Timme on HowtoForge.com
Мы можем установить Postfix, Courier, Saslauthd, MySQL, rkhunter и binutils одной командой:
(Если нужно, добавьте перед каждой командой sudo).
aptitude install postfix postfix-mysql postfix-doc mysql-client mysql-server 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 getmail4 rkhunter binutils
Вам зададут следующие вопросы:
- Новый пароль для пользователя «root» MySQL
- Повторите пароль для пользователя «root» MySQL
- Создать директории для администрирования по сети?
- Введите: No
- Основной тип конфигурации почты:
- Введите: Internet Site
- Имя почтовой системы:
- Введите: server1.example.com (подставьте адрес своего сайта)
- Требуется ли SSL-сертификат
- Введите: OK
Далее установим maildrop как показано ниже:
update-alternatives --remove-all maildir.5 update-alternatives --remove-all maildirquota.7 aptitude install maildrop
Вы спросите себя: «Почему мы не установили maildrop вместе с другими пакетами»? Причина этому ошибка в пакете courier-base — если вы установите maildrop вместе с courier-pop, courier-pop-ssl, courier-imap и courier-imap-ssl, то получите такую ошибку:
update-alternatives: error: alternative link /usr/share/man/man5/maildir.5.gz is already managed by maildir.5.gz.
Мы хотим, чтобы MySQL прослушивала все интерфейсы, а не только localhost. Поэтому отредактируем /etc/mysql/my.cnf и закомментируем строку bind-address = 127.0.0.1:
vi /etc/mysql/my.cnf [...] # 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 [...]
Теперь перезапустим MySQL:
/etc/init.d/mysql restart
Проверим, что сеть включена. Выполните:
netstat -tap | grep mysql Вывод должен быть похож на: root@server1:~# netstat -tap | grep mysql tcp 0 0 *:mysql *:* LISTEN 6267/mysqld root@server1:~#
В ходе установки сертифи-каты SSL для IMAP-SSL и POP3-SSL были созданы для хоста localhost. Чтобы изменить его на корректный хост (server1.example.com в этом руководстве), удалите сертификаты…
cd /etc/courier rm -f /etc/courier/imapd.pem rm -f /etc/courier/pop3d.pem
и отредактируйте следующие два файла, заменяя 'CN=localhost' на 'CN=server1.example.com' (а также, при необходимости, изменяя другие значения):
vi /etc/courier/imapd.cnf [...] CN=server1.example.com [...] vi /etc/courier/pop3d.cnf [...] CN=server1.example.com [...]
Теперь создадим сертификаты снова:
mkimapdcert mkpop3dcert и перезапустите Courier-IMAP-SSL и Courier-POP3-SSL: /etc/init.d/courier-imap-ssl restart /etc/init.d/courier-pop-ssl restart
Установка Amavisd-new, SpamAssassin и ClamAV
Для установки amavisd-new, SpamAssassin и ClamAV выполним:
aptitude install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-dap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
SinglWolf: На данный момент версия ClamAV - 0.97, а в репозиториях lucid - 0.95. Я это заметил только после полной установки сервера, так что вот изыскал, на мой взгляд, самое простое решение.
Установка Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt
Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt можно установить так:
aptitude install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp
Необходимо ответить на следующие вопросы:
- Веб-сервер для автоматической перенастройки:
- Введите: apache2
- Настроить базу данных для работы phpmyadmin с dbconfig-common?
- Введите: No
Затем наберите следующую команду, чтобы включить модули Apache suexec, rewrite, ssl, actions и include:
a2enmod suexec rewrite ssl actions include
Потом перезапустите Apache:
/etc/init.d/apache2 restart
Установка PureFTPd и Quota
PureFTPd и quota могут быть установлены следующей командой:
aptitude install pure-ftpd-common pure-ftpd-mysql quota quotatool
Отредактируйте файл /etc/default/pure-ftpd-common:
vi /etc/default/pure-ftpd-common
и убедитесь, что установлены способ запуска standalone и VIRTUALCHROOT=true:
[...] STANDALONE_OR_INETD=standalone [...] VIRTUALCHROOT=true [...]
Теперь перезапустите PureFTPd:
/etc/init.d/pure-ftpd-mysql restart
Отредактируйте /etc/fstab. Я добавил usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 к разделу с точкой монтирования /:
UUID=7dd7d165-5d00-4501-b005-b5233c1872e0 / ext4 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1
vi /etc/fstab
Чтобы добавить quota, выполните эту команду:
touch /aquota.user /aquota.group chmod 600 /aquota.* mount -o remount / quotacheck -avugm quotaon -avug
Установка MyDNS
Перед установкой MyDNS мы должны предварительно установить несколько пакетов:
aptitude install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev
MyDNS нет в репозиториях Ubuntu 9.10, поэтому мы должны установить его из исходников самостоятельно:
SinglWolf: Через wget не получится. Нужно зайти по ссылке: http://sourceforge.net/projects/mydns-ng/files/mydns/ и скачать актуальную версию в папку /temp
cd /tmp wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.27.tar.gz tar xvfz mydns-1.2.8.27.tar.gz cd mydns-1.2.8 ./configure make make install
Затем мы создадим для MyDNS скрипт запуска и остановки (смотрите на следующей странице):
vi /etc/init.d/mydns
Теперь сделаем скрипт исполняемым и добавим его в автозагрузку:
chmod +x /etc/init.d/mydns update-rc.d mydns defaults
Установка Vlogger и Webalizer
Vlogger и webalizer могут быть установлены так:
aptitude install vlogger webalizer
Установка Jailkit
Jailkit нужен, только если вы хотите изменить корневой каталог для SSH-пользовате-лей. Он может быть установлен так (важно: Jailkit должен быть установлен до ISPConfig, и не может быть установлен после!):
aptitude install build-essential autoconf automake1.9 libtool flex bison cd /tmp wget http://olivier.sessink.nl/jailkit/jailkit-2.10.tar.gz tar xvfz jailkit-2.10.tar.gz cd jailkit-2.10 ./configure make make install cd .. rm -rf jailkit-2.10*
Установка fail2ban
Это не обязательно, но рекомендуется, потому что ISPConfig контролирует попытки показа лога fail2ban:
aptitude install fail2ban
В следующем месяце, в завершающей части, мы установим SquirrelMail и ISPConfig3, получив идеальный сервер, готовый к работе!
Скрипт
#! /bin/sh # # mydns Start the MyDNS server # # Author: Philipp Kern <phil@philkern.de>. # Based upon skeleton 1.9.4 by Miquel van Smoorenburg # <miquels@cistron.nl> and Ian Murdock <imurdock@gnu.ai.mit.edu>. # set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/sbin/mydns NAME=mydns DESC="DNS server" SCRIPTNAME=/etc/init.d/$NAME # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 case "$1" in start) echo -n "Starting $DESC: $NAME" start-stop-daemon --start --quiet \ --exec $DAEMON -- -b echo "." ;; stop) echo -n "Stopping $DESC: $NAME" start-stop-daemon --stop --oknodo --quiet \ --exec $DAEMON echo "." ;; reload|force-reload) echo -n "Reloading $DESC configuration..." start-stop-daemon --stop --signal HUP --quiet \ --exec $DAEMON echo "done." ;; restart) echo -n "Restarting $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo \ --exec $DAEMON sleep 1 start-stop-daemon --start --quiet \ --exec $DAEMON -- -b echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0