База знаний

www. IT-Mehanika .ru --  журнал доброго админа

Многофункциональный сервер на базе Ubuntu Server 12.04 + хостинг панель ISPConfig 3: Часть 3

20.Установка Jailkit

Jailkit необходим вам если вы хотите изолировать SSH пользователей. Если он вам необходим, вы можете установить его следующим образом ( внимание: Jailkit должен быть установлен до установки ISPConfig, потом этого сделать не будет возможности)

$ apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold
$ cd /tmp
$ wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
$ tar xvfz jailkit-2.14.tar.gz
$ cd jailkit-2.14
$ ./debian/rules binary
Теперь мы сможем установить Jailkit с помощью .deb пакетом
$ cd ..
$ dpkg -i jailkit_2.14-1_*.deb
$ rm -rf jailkit-2.14*



21.Установка fail2ban

Этот пункт необязательный, но рекомендуется для установки, так как монитор ISPConfig будет пытаться показать журнал:

$ apt-get install fail2ban

Для того чтобы fail2ban мониторил PureFTPd и Dovecot создаем файл /etc/fail2ban/jail.local

$ mcedit /etc/fail2ban/jail.local

[pureftpd]
enabled = true
port = ftp
filter = pureftpd
logpath = /var/log/syslog
maxretry = 3
[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5


Далее создаем 2 файла с фильтрами:

$ /etc/fail2ban/filter.d/pureftpd.conf

[Definition]

failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*

ignoreregex =


$ /etc/fail2ban/filter.d/dovecot-pop3imap.conf

В файле нижеприведенном строка failregex пишется в одну строчку до следующего параметра ignoreregex

[Definition]

failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*

ignoreregex =


После чего перезагружаем fail2ban


$ /etc/init.d/fail2ban restart


Далее я выбрал себе веб мордочку RoundCube, вполне возможно поставить SquirrelMail. У кого какие вкусы. Я приверженец красоты как и в работе сервера так и визуальном.С RoudCube придется повозится в отличие от SquirrelMail.

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


$ mkdir /var/www/webmail

$ cd /var/www/


22. Установка RoundCube

Далее, мы скачаем последнюю стабильную версию RoundCube (на момент написания статьи была 0.8.1)

$ wget http://sourceforge.net/projects/roundcubemail/files/roundcubemail/0.8.1/roundcubemail-0.8.1.tar.gz
$ tar xfz roundcubemail-0.8.1.tar.gz
$ mv roundcubemail-0.8.1/* webmail
$ rm roundcubemail-0.8.1.tar.gz
$ rm -rf roundcubemail-0.8.1


Затем переходим в папку webmail и даем права доступа к директориям /logs и /temp

$ mysql -u root -p

Вводим пароль пользователя «root» сервера MySQL


$ CREATE DATABASE roundcubemail;
$ GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcubeuser@localhost IDENTIFIED BY 'password';


Конечно в запросе выше вы должны прописать свои базу данных пользователя БД и пароль пользователя


$ FLUSH PRIVILEGES;


Выставим права доступа на папки temp/ и logs/


$ cd /var/www/webmail

$ chown -R www-data:www-data temp/ logs/


И установим дополнение:

$ apt-get install php5-intl

23.Настройка RoundCube

Теперь открываем браузер и переходим http://URL-TO-YOUR_ROUNDCOBE/installer/

И следуем инструкциям. На первой странице установщика показаны все требования для установки RoundCube. Если все в порядке, нажимаем кнопку "START INSTALLATION" (Начать установку). Программа установщика проверяет все ли зависимости удовлетворены. В случае если вы видите красные сообщения NOT OK, следовательно нужно включить или установить модуль на против которого надпись. Переходите по ссылкам, и смотрите что необходимо сделать.

После проверки зависимостей, мы готовы создать файлы конфигурации, нажимаем кнопку "CONTINUE" (Далее). Перед нами выползает огромная форма для заполнения. На этой странице изменяем настройки в соответсвии с вашими нуждами. Я в своей конфигурации поправил совсем ничего, формат даты, папки по умолчанию, название. И ОБЯЗАТЕЛЬНО пропишем настройки в форме подключения к базе данных которую мы сделали в предыдущем разделе, секция "Database Setup"

Когда закончим настройку нажимаем кнопку "CREATE CONFIG" (Создать конфиги), и мы получаем два текстовых поля с данными в файлы main.inc.php и db.inc.php. Над каждым текстовым полем имеется ссылка для скачивания этих файлов себе на компьютер. Эти файлы необходимо поместить в каталог /config Я это сделал, тупо копипастом.

И наконец, нажимаем "CONTINUE" (Продолжить) и попадаем на последний шаг устаовки.

Если у Вас что то не получилось, то можно будет вернуться обратно и исправить конфигурацию.

Теперь наша конфигурация будет проверена. Щелкаем "Initialize database" ( Инициализировать базу данных), это нужно для того что бы создать необходимые таблицы в базе данных.

Если на экране не высветилось красного предупреждения NOT OK, можно попробывать отправить письмо, что бы проверить настройки SMTP. Поэкспериментируйте, и у вас получится.

И последнее, немаловажное, мы удалим всю папку установки RoundCube. Если мы оставим ее, то все будет подвержено огромной опасности, и даже пароли.

Сделаем это командой:


$ rm -rf /var/www/webmail/installer


24. Добавление Алиасов

Следующим этапом, для того что бы получить доступ к веб морде почтаря добавим алиасы. Можно сделать перенаправление, т. е. редирект на домен в ISPConfig с установкой SSL для безопасности и проверки. Кому как нравится. И приведем конфиг следующему виду

$ mcedit /etc/apache2/conf.d/roundcube.conf

 

# RoundCube alias and redirect functions

Alias /webmail /var/www/webmail

Options +FollowSymLinks

# This is needed to parse /var/www/webmail/.htaccess. See its

# content before setting AllowOverride to None.

AllowOverride All

order allow,deny

allow from all

# Protecting basic directories:

Options -FollowSymLinks

AllowOverride None

Options -FollowSymLinks

AllowOverride None

Order allow,deny

Deny from all

Options -FollowSymLinks

AllowOverride None

Order allow,deny

Deny from all

RewriteEngine on

RewriteCond %{HTTPS} !^on$ [NC]

RewriteRule . https://www.yourdomain.com:8080/webmail/ [L]


    Обязательно посмотрите конфиг, и замените мой домен на ваш.


25.Последние штрихи RoundCube

Отредактируем файл /var/www/webmail/config/main.inc.php найдем нижеперечисленные строки и изменим их как в примере ниже.


[...]
$rcmail_config['message_cache_lifetime'] = '30m';
[...]
$rcmail_config['default_host'] = 'localhost';
[...]
$rcmail_config['smtp_server'] = '%h';
[...]
$rcmail_config['session_lifetime'] = 30;
[...]
$rcmail_config['create_default_folders'] = TRUE;
[...]


Теперь можно попробывать зайти в веб интерфейс по адресу http://www.yourdomain.com/webmail


27. Установка ISPConfig

Начнем установку ISPCOnfig


$ cd /tmp

$ wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

$ tar xfz ISPConfig-3-stable.tar.gz

$ cd ispconfig3_install/install/


Далее запускаем установщик:


$ php -q install.php


root@server:/tmp/ispconfig3_install/install# php -q install.php


--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------


>> Initial configuration

Operating System: Debian or compatible, unknown version.

Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with .
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 [server.dude.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 (e.g. server FQDN or YOUR name) []: <-- ENTER
Email Address []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Bastille Firewall
Configuring Fail2ban
Installing ISPConfig
ISPConfig Port [8080]: <-- ENTER

Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- ENTER

Generating RSA private key, 4096 bit long modulus
.......++
.........................................................++
e is 65537 (0x10001)
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 (e.g. server FQDN or YOUR name) []: <-- ENTER
Email Address []: <-- ENTER

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- ENTER !!!!!*
An optional company name []: <-- ENTER !!!!!*
writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 2543
* Stopping Postfix Mail Transport Agent postfix
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
...done.
* Starting Postfix Mail Transport Agent postfix
postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
/usr/sbin/postconf: warning: /etc/postfix/master.cf: unused parameter: smtpd_bind_address=127.0.0.1
...done.
Stopping amavisd: (not running).
The amavisd daemon is already running, PID: [1126]
Starting amavisd: (failed).
* Stopping ClamAV daemon clamd
...done.
* Starting ClamAV daemon clamd
...done.
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service dovecot restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop dovecot ; start dovecot. The restart(8) utility is also available.
dovecot stop/waiting
dovecot start/running, process 3668
* Restarting Mailman master qrunner mailmanctl
* Waiting...
...done.
...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 -E -H -Y 1 -O clf:/var/log/pure-ftpd/transfer.log -8 UTF-8 -b -D -A -u 1000 -B
Installation completed.
root@server:/tmp/ispconfig3_install/install#


Программа установки автоматически настроит все основные модули, так что настройка в ручную не требуется.

Так же мы имеем возможность инсталятору создать SSL для виртуальных хостов через панель ISPConfig. Так что теперь панель управления ISPCOnfig может работать по https

Теперь в браузере перейдите по адресу http(s)://192.168.55.100:8080/ либо http(s)://server.dude.com:8080 и войдите в панель управления администратора с логином: admin паролем: admin После входа в панель управления смените пароль.



Все система готова к работе. С помощью панели управления вы сможете создавать почтовые ящики, создавать DNS зоны, использовать jailkit. Ну а дальше в панели управления нужно добавить домен который у вас прописана MX запись в DNS провайдера.

По настройке сервисов в веб интерфейсе уже совершенно отдельный разговор, на самом портале ISPConfig мануалы платны, либо эксперементируйте сами.

Часть 1

Часть 2