Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
fullcircle:33:server_ч_3 [2010/06/20 17:48] создано |
fullcircle:33:server_ч_3 [2011/03/14 21:07] (текущий) [Скрипт] |
||
---|---|---|---|
Строка 9: | Строка 9: | ||
- [[..:34:server_ч_4|Идеальный сервер — часть 4]] | - [[..:34:server_ч_4|Идеальный сервер — часть 4]] | ||
+ | Мы можем установить Postfix, Courier, Saslauthd, MySQL, rkhunter и binutils одной командой: | ||
- | --------------------------------------- | + | (Если нужно, добавьте перед каждой командой sudo). |
- | <style center> | + | <code>aptitude install postfix postfix-mysql |
- | //[[..:33|К содержанию номера]]// | + | 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</code> | ||
- | //[[:fullcircle|К архиву журналов]]// | + | Вам зададут следующие вопросы: |
- | </style> | + | |
+ | - Новый пароль для пользователя «root» MySQL | ||
+ | |||
+ | - Повторите пароль для пользователя «root» MySQL | ||
+ | |||
+ | - Создать директории для администрирования по сети? | ||
+ | - Введите: No | ||
+ | |||
+ | - Основной тип конфигурации почты: | ||
+ | - Введите: Internet Site | ||
+ | |||
+ | - Имя почтовой системы: | ||
+ | - Введите: server1.example.com (подставьте адрес своего сайта) | ||
+ | |||
+ | - Требуется ли SSL-сертификат | ||
+ | - Введите: OK | ||
+ | |||
+ | Далее установим maildrop как показано ниже: | ||
+ | |||
+ | <code>update-alternatives --remove-all maildir.5 | ||
+ | |||
+ | update-alternatives --remove-all maildirquota.7 | ||
+ | |||
+ | aptitude install maildrop</code> | ||
+ | |||
+ | Вы спросите себя: «Почему мы не установили maildrop вместе с другими пакетами»? Причина этому ошибка в пакете courier-base — если вы установите maildrop вместе с courier-pop, courier-pop-ssl, courier-imap и courier-imap-ssl, то получите такую ошибку: | ||
+ | |||
+ | <code>update-alternatives: error: | ||
+ | alternative link /usr/share/man/man5/maildir.5.gz | ||
+ | is already managed by maildir.5.gz.</code> | ||
+ | |||
+ | Мы хотим, чтобы MySQL прослушивала все интерфейсы, а не только localhost. Поэтому отредактируем /etc/mysql/my.cnf и закомментируем строку bind-address = 127.0.0.1: | ||
+ | |||
+ | <code>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 | ||
+ | [...]</code> | ||
+ | |||
+ | Теперь перезапустим MySQL: | ||
+ | |||
+ | <code>/etc/init.d/mysql restart</code> | ||
+ | |||
+ | Проверим, что сеть включена. Выполните: | ||
+ | |||
+ | <code>netstat -tap | grep mysql | ||
+ | |||
+ | Вывод должен быть похож на: | ||
+ | |||
+ | root@server1:~# netstat -tap | grep mysql | ||
+ | |||
+ | tcp 0 0 *:mysql *:* LISTEN 6267/mysqld | ||
+ | |||
+ | root@server1:~#</code> | ||
+ | |||
+ | В ходе установки сертифи-каты SSL для IMAP-SSL и POP3-SSL были созданы для хоста localhost. Чтобы изменить его на корректный хост (server1.example.com в этом руководстве), удалите сертификаты... | ||
+ | |||
+ | <code>cd /etc/courier | ||
+ | |||
+ | rm -f /etc/courier/imapd.pem | ||
+ | |||
+ | rm -f /etc/courier/pop3d.pem</code> | ||
+ | |||
+ | и отредактируйте следующие два файла, заменяя 'CN=localhost' на 'CN=server1.example.com' (а также, при необходимости, изменяя другие значения): | ||
+ | |||
+ | <code>vi /etc/courier/imapd.cnf | ||
+ | |||
+ | [...] | ||
+ | CN=server1.example.com | ||
+ | [...] | ||
+ | |||
+ | vi /etc/courier/pop3d.cnf | ||
+ | |||
+ | [...] | ||
+ | CN=server1.example.com | ||
+ | [...]</code> | ||
+ | |||
+ | Теперь создадим сертификаты снова: | ||
+ | |||
+ | <code>mkimapdcert | ||
+ | |||
+ | mkpop3dcert | ||
+ | |||
+ | и перезапустите Courier-IMAP-SSL и Courier-POP3-SSL: | ||
+ | |||
+ | /etc/init.d/courier-imap-ssl restart | ||
+ | |||
+ | /etc/init.d/courier-pop-ssl restart</code> | ||
+ | |||
+ | =====Установка Amavisd-new, SpamAssassin и ClamAV===== | ||
+ | |||
+ | Для установки amavisd-new, SpamAssassin и ClamAV выполним: | ||
+ | |||
+ | <code>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</code> | ||
+ | |||
+ | **SinglWolf:** На данный момент версия ClamAV - **0.97**, а в репозиториях lucid - **0.95**. Я это заметил только после полной установки сервера, так что вот изыскал, на мой взгляд, самое простое [[http://forum.ubuntu.ru/index.php?topic=142500.msg1054805#msg1054805|решение]]. | ||
+ | =====Установка Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt===== | ||
+ | |||
+ | Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt можно установить так: | ||
+ | |||
+ | <code>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</code> | ||
+ | |||
+ | Необходимо ответить на следующие вопросы: | ||
+ | |||
+ | - Веб-сервер для автоматической перенастройки: | ||
+ | - Введите: apache2 | ||
+ | - Настроить базу данных для работы phpmyadmin с dbconfig-common? | ||
+ | - Введите: No | ||
+ | |||
+ | Затем наберите следующую команду, чтобы включить модули Apache suexec, rewrite, ssl, actions и include: | ||
+ | |||
+ | <code>a2enmod suexec rewrite ssl actions include</code> | ||
+ | |||
+ | Потом перезапустите Apache: | ||
+ | |||
+ | <code>/etc/init.d/apache2 restart</code> | ||
+ | |||
+ | =====Установка PureFTPd и Quota===== | ||
+ | |||
+ | PureFTPd и quota могут быть установлены следующей командой: | ||
+ | |||
+ | <code>aptitude install pure-ftpd-common | ||
+ | pure-ftpd-mysql quota quotatool</code> | ||
+ | |||
+ | Отредактируйте файл /etc/default/pure-ftpd-common: | ||
+ | |||
+ | <code>vi /etc/default/pure-ftpd-common</code> | ||
+ | |||
+ | и убедитесь, что установлены способ запуска standalone и VIRTUALCHROOT=true: | ||
+ | |||
+ | <code>[...] | ||
+ | STANDALONE_OR_INETD=standalone | ||
+ | [...] | ||
+ | VIRTUALCHROOT=true | ||
+ | [...]</code> | ||
+ | |||
+ | Теперь перезапустите PureFTPd: | ||
+ | |||
+ | <code>/etc/init.d/pure-ftpd-mysql restart</code> | ||
+ | |||
+ | Отредактируйте /etc/fstab. Я добавил usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 | ||
+ | к разделу с точкой монтирования /: | ||
+ | <code>UUID=7dd7d165-5d00-4501-b005-b5233c1872e0 / ext4 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1</code> | ||
+ | <code>vi /etc/fstab</code> | ||
+ | |||
+ | Чтобы добавить quota, выполните эту команду: | ||
+ | |||
+ | <code>touch /aquota.user /aquota.group | ||
+ | |||
+ | chmod 600 /aquota.* | ||
+ | |||
+ | mount -o remount / | ||
+ | |||
+ | quotacheck -avugm | ||
+ | |||
+ | quotaon -avug</code> | ||
+ | |||
+ | =====Установка MyDNS===== | ||
+ | |||
+ | Перед установкой MyDNS мы должны предварительно установить несколько пакетов: | ||
+ | |||
+ | <code>aptitude install g++ | ||
+ | libc6 gcc | ||
+ | gawk make | ||
+ | texinfo libmysqlclient15-dev</code> | ||
+ | |||
+ | MyDNS нет в репозиториях Ubuntu 9.10, поэтому мы должны установить его из исходников самостоятельно: | ||
+ | |||
+ | **SinglWolf:** Через wget не получится. Нужно зайти по ссылке: http://sourceforge.net/projects/mydns-ng/files/mydns/ и скачать актуальную версию в папку /temp | ||
+ | <code>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</code> | ||
+ | |||
+ | Затем мы создадим для MyDNS скрипт запуска и остановки: | ||
+ | |||
+ | <code>vi /etc/init.d/mydns</code> | ||
+ | |||
+ | Текст скрипта: | ||
+ | |||
+ | <code> | ||
+ | #! /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 | ||
+ | </code> | ||
+ | |||
+ | Теперь сделаем скрипт исполняемым и добавим его в автозагрузку: | ||
+ | |||
+ | <code>chmod +x /etc/init.d/mydns | ||
+ | |||
+ | update-rc.d mydns defaults</code> | ||
+ | |||
+ | =====Установка Vlogger и Webalizer===== | ||
+ | |||
+ | Vlogger и webalizer могут быть установлены так: | ||
+ | |||
+ | <code>aptitude install vlogger webalizer</code> | ||
+ | |||
+ | |||
+ | =====Установка Jailkit===== | ||
+ | |||
+ | Jailkit нужен, только если вы хотите изменить корневой каталог для SSH-пользователей. Он может быть установлен так (важно: Jailkit должен быть установлен до ISPConfig, и не может быть установлен после!): | ||
+ | |||
+ | <code>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*</code> | ||
+ | |||
+ | =====Установка fail2ban===== | ||
+ | |||
+ | Это не обязательно, но рекомендуется, потому что ISPConfig контролирует попытки показа лога fail2ban: | ||
+ | |||
+ | <code>aptitude install fail2ban</code> | ||
+ | |||
+ | |||
+ | В следующем месяце, в завершающей части, мы установим SquirrelMail и ISPConfig3, получив идеальный сервер, готовый к работе! | ||
- | {{tag>howto Full_Circle}} | ||