Идеальный сервер - Ubuntu 14.04, nginx, BIND, MySQL, PHP, Postfix, Dovecot и ISPConfig 3 (страница 3)

Ранее: страница 1, страница 2

12. Установка PureFTPd и Quota

Установим пакеты PureFTPd и quota:

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool

Отредактируем /etc/default/pure-ftpd-common

nano /etc/default/pure-ftpd-common
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

Теперь настроим PureFTPd через FTP и TLS сессии. FTP является очень небезопасным протоколом, потому что все пароли и все данные передаются в открытом виде. При использовании TLS соединения могут быть зашифрованы, что делает FTP гораздо более безопасным.

Если вы хотите разрешить FTP и TLS сессии, выполните:

echo 1 > /etc/pure-ftpd/conf/TLS

Для того чтобы использовать TLS, мы должны создать сертификат SSL. Сертификаты будут храниться в директории /etc/ssl/private/

Создадим директорию:

mkdir -p /etc/ssl/private/

Затем, сгенерируем сертификат следующим образом:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Отвечаем на вопросы установщика (задаваемые параметры особого значения не имеют). Устанавливаем права на сгенерированный сертификат:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Перезапускаем PureFTPd:

service pure-ftpd-mysql restart

Редактируем файл /etc/fstab

nano /etc/fstab

Добавляем параметры usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 к корневому разделу:

# /etc/fstab: static file system information.
#
# Use 'blkid' 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).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/server1--vg-root /               ext4    errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0       1
# /boot was on /dev/sda1 during installation
UUID=9b8299f1-b2a2-4231-9ba1-4540fad76b0f /boot           ext2    defaults        0       2
/dev/mapper/server1--vg-swap_1 none            swap    sw              0       0

Для активации квот перемонтируем корень:

mount -o remount /

Выполним:

quotacheck -avugm
quotaon -avug

13. Установка BIND DNS сервера

Установим необходимые пакеты:

apt-get install bind9 dnsutils

14. Установка Vlogger, Webalizer и AWstats

Установим:

apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl

Отредактируем файл /etc/cron.d/awstats

nano /etc/cron.d/awstats

и закомментируем все, что в этом файле:

#MAILTO=root

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

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

Jailkit нужен только если вы хотите использовать chroot для 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.15.tar.gz
tar xvfz jailkit-2.15.tar.gz
cd jailkit-2.15
./debian/rules binary

Теперь можно установить Jailkit следующим образом:

cd ..
dpkg -i jailkit_2.15-1_*.deb
rm -rf jailkit-2.15*

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

Установка этого пакета не является обязательной, но рекомендуется. ISPConfig будет показывать логи fail2ban.

apt-get install fail2ban

Чтобы fail2ban мониторил PureFTPd и Dovecot, создадим файл /etc/fail2ban/jail.local:

nano /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

[postfix-sasl]
enabled  = true
port     = smtp
filter   = postfix-sasl
logpath  = /var/log/mail.log
maxretry = 3

Затем создадим два файла фильтров:

# nano /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.*
ignoreregex =
# nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[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<host>\S*),.*
ignoreregex =

Добавим ignoreregex в postfix-sasl:

echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.conf

После чего перезапустим fail2ban:

service fail2ban restart

17. Установка SquirrelMail

SquirrelMail - это почтовый веб-клиент, позволяющий управлять почтовыми ящиками через веб-браузер.

Установка:

apt-get install squirrelmail

После установки клиент необходимо сконфигурировать:

squirrelmail-configure

Мы должны сообщить SquirrelMail, что мы используем Dovecot-IMAP/-POP3:

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C Turn color on
S Save data
Q Quit

Command >>
D

SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.

Please select your IMAP server:
bincimap = Binc IMAP server
courier = Courier IMAP server
cyrus = Cyrus IMAP server
dovecot = Dovecot Secure IMAP server
exchange = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx = Mac OS X Mailserver
mercury32 = Mercury/32
uw = University of Washington's IMAP server
gmail = IMAP access to Google mail (Gmail) accounts

quit = Do not change anything
Command >>
dovecot

SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.

Please select your IMAP server:
bincimap = Binc IMAP server
courier = Courier IMAP server
cyrus = Cyrus IMAP server
dovecot = Dovecot Secure IMAP server
exchange = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx = Mac OS X Mailserver
mercury32 = Mercury/32
uw = University of Washington's IMAP server
gmail = IMAP access to Google mail (Gmail) accounts

quit = Do not change anything
Command >> dovecot

imap_server_type = dovecot
default_folder_prefix =
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = detect
delete_folder = false

Press enter to continue...
ENTER

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C Turn color on
S Save data
Q Quit

Command >>
S

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C Turn color on
S Save data
Q Quit

Command >>
Q

SquirrelMail установился в директории /usr/share/squirrelmail/

После установки ISPConfig 3 доступ к SquirrelMail можно получить по адресу:
http://server1.домен.ru:8081/squirrelmail
или
http://server1.домен.ru:8081/webmail

Если вы хотите иметь доступ к /webmail или /squirrelmail с ваших виртуальных хостов, то необходимо использовать /webmail и /squirrelmail алиасы. Для этого будет необходимо в ISPConfig в поле директив Nginx во вкладке "Параметры веб-сайта" вставить код:

location /squirrelmail {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/squirrelmail/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php5-fpm.sock;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/squirrelmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /squirrelmail last;
        }

Если вы используете https вместо http для ваших виртуальных хостов, то необходимо добавить параметр fastcgi_param HTTPS on; В этом случае код будет такой:

location /squirrelmail {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/squirrelmail/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php5-fpm.sock;
                       fastcgi_param HTTPS on; # <-- add this line
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/squirrelmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /squirrelmail last;
        }

Если вы используете и http и https для виртуального хоста, необходимо будет добавить следующий код в секцию http {} файла /etc/nginx/nginx.conf

# nano /etc/nginx/nginx.conf
[...]
http {
[...]
        ## Detect when HTTPS is used
        map $scheme $fastcgi_https {
          default off;
          https on;

        }
[...]
}
[...]

После редактирования конфигов не забываем перезапустить сервер:

service nginx reload

После чего переходим в ISPConfig в поле директив Nginx во вкладке "Параметры веб-сайта" и вставляем следующий код:

location /squirrelmail {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/squirrelmail/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php5-fpm.sock;
                       fastcgi_param HTTPS $fastcgi_https; # <-- add this line
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/squirrelmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /squirrelmail last;
        }

Теперь вы сможете использовать squirrelmail как для http, так и для https.

Далее - страница 4

Комментарии
Аватар пользователя Гость

Спасибо большое за подробную, замечательную инструкцию!

настроил свои домены на серевер через дднс, т.к. нет статичного ip
этим сервисом http://freedns.afraid.org/dynamic/

добавил сайты в панели управления, прекрасно работают

а вот с почтой такой прием не удался
Подскажите пожалуйста какие будут настройки для Thunderbird например
- порты smtp, pop3, imap, SSL, тип аутинтификации?
- при авторизации логин почты вводить с доменом или только то что до @?

и :8081/webmail не открывается, после установки открылся, теперь пишет Ошибка подключения SSL

Аватар пользователя Гость

Веб интерфейс получилось открыть

Попробовал отправить письмо ошибка
111 Can't open SMTP stream

Аватар пользователя Гость

В этой электронной почте честно говоря никакого смысла нет, если нет своего платного сертификата. Письма все будут помечаться гуглом и яндексом как спам и не доходить до получателей.

Аватар пользователя Гость

Рекомендую воспользоваться сервисом яндекса Почта для домена. Бесплатно, удобно и надежно.

Добавить комментарий