Продолжаем установку хостинг панели ISPConfig 3, напоминаю, что первая часть статьи находится по адресу: Настройка сети перед установкой ISPConfig 3 в Debian - ч.1.
Приступим.
Устанавливаем NTP, Postfix, Dovecot, Saslauthd, MySQL, rkhunter, and binutils командой:
На вопросы системы отвечаем:
В данной инструкции мы установим и произведем первичную настройку необходимого програмного обеспечения.
ISPConfig 3
- отличная панель для администрирования таких сервисов как Почта
(Postfix), FTP (PureFTPd), SSH (OpenSSH), DNS (Bind9), Web (Apache2)
Если Вам не нужен какой-либо из данных
сервисов, тогда Вы можете не призводить установку не нужного Вам
програмного обеспечения. Например если Вы не будете настраивать DNS, то
можете не устанвливать bind9, и во время установки ISPConfig 3 когда
инсталятор спросит о настройке DNS просто отказываемся от установки, Это
вполне возможно, если Вы производите установку на маленький выделенный
виртуальный сервер в котором считается каждый метр оперативной памяти.
Тогда и Почтовый сервер можно не устанавливать, а на сайтах производить
отправку сообщений пользователям используя внешние почтовые ящики,
например почтовый ящик от Google и подключение по SMTP протоколу, для
примера как я настраивал сайт на Drupal 7 в инструкции: Настраиваем отправку почты с сайта Drupal 7 используя внешний SMTP сервер - для примера google почтовый ящик
Приступим.
Изменение оболочки консоли по умолчанию, так
как /bin/sh является символичной ссылкой на /bin/dash, нам надо
/bin/bash, а не /bin/dash. Изменяем настройку консоли выполнив команду:
1
| dpkg-reconfigure dash |
на вопрос системы:
Использовать dash в качестве системной оболочки по умолчанию (/bin/sh)?
Отвечаем Нет
Использовать dash в качестве системной оболочки по умолчанию (/bin/sh)?
Отвечаем Нет
aptitude
install
ntp
ntpdate postfix postfix-mysql postfix-doc mysql-client mysql-server
openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d
dovecot-mysql dovecot-sieve
sudo
- Настройка Postfix: - Ok
- Общий тип настройки почты: - выбираем Интернет-сайт
- Система почтовое имя: - Вводим webserver.server.loc
- Новый пароль для MySQL пользователя "root": Вводим пароль root для MySQL
- Повторите ввод пароля для MySQL пользователя "root": Повторяем ввод пароля root для MySQL
Открываем TLS/SSL порты в Postfix внеся изменения в файл /etc/postfix/master.cf:
было:
стало:
было:
стало:
1
| vi /etc/postfix/master .cf |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| ... #submission inet n - - - - smtpd # -o syslog_name=postfix/submission # -o smtpd_tls_security_level=encrypt # -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING #smtps inet n - - - - smtpd # -o syslog_name=postfix/smtps # -o smtpd_tls_wrappermode=yes # -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING ... |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| ... submission inet n - - - - smtpd -o syslog_name=postfix /submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable= yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING smtps inet n - - - - smtpd -o syslog_name=postfix /smtps -o smtpd_tls_wrappermode= yes -o smtpd_sasl_auth_enable= yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING ... |
После сохранения файла /etc/postfix/master.cf перезагружаем сервер Рostfix выполнив команду:
1
| /etc/init .d /postfix restart |
Настраиваем работу базы данных Mysql на всех интерфейсах, по умолчанию работает только на 127.0.0.1:
1
| vi /etc/mysql/my .cnf |
1
2
3
| ... bind-address = 127.0.0.1 ... |
1
2
3
| ... #bind-address = 127.0.0.1 ... |
После сохранения изменений перезагружаем сервер Mysql командой:
1
| /etc/init .d /mysql restart |
Устанавливаем антиспам и антивирус для почтового сервера Amavisd-new, SpamAssassin и ClamAV командой:
aptitude
install
amavisd-new spamassassin clamav clamav-daemon zoo unzip
bzip2
arj
nomarch lzop cabextract apt-listchanges libnet-ldap-perl
libauthen-sasl-perl clamav-docs daemon libio-string-perl
libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
Для фильтрации спам писем ISPConfig3 использует Amavisd, который
загружает внутренние фильтры библиотеки SpamAssassin самостоятельно,
потому мы можем остановить и отключить загрузку SpamAssassin, чтобы не
занимать оперативную память лишним процессом выполнив команды:
1
2
| /etc/init .d /spamassassin stop update-rc.d -f spamassassin remove |
!!! Внимание !!! При продолжительной работе почтового сервера, сервер Amavisd собирает огромное количество спама и вирусов в карантинную папку /var/lib/amavis/virusmails/ которая разростается если её не чистить. Добавим в крон автоматический поиск и удаление спама и вирусов в карантине старше 30 дней.
Для этого выполним команду:
1
| crontab -e |
В открывшемся файле добавим запись:
1
| 10 1 * * * find /var/lib/amavis/virusmails -ctime +30 -and - type 'f' - exec rm {} \; |
Таким образом в час ночи десять минут каждый день будет запускатся поиск файлов старше 30 дней и автоматически удалятся.
Устанавливаем Веб сервер с поддержкой php Apache2, PHP5, PHPMyAdmin, FCGI, suExec, Pear, And 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-curl php5-mcrypt mcrypt
php5-imagick imagemagick libapache2-mod-suphp libruby
libapache2-mod-ruby libapache2-mod-python libapache2-mod-perl2 dh-
make
-php php5-dev build-essential libmagic-dev php5-intl
На вопросы системы отвечаем:
- Веб-сервер для автоматической перенастройки: - apache2
- Настроить базу данных для phpmyadmin с помощью dbconfig-common? - Нет
Выполним активацию модулей веб сервера Apache2 - suexec, rewrite, ssl, actions, dav, dav_fs, and auth_digest выполнив команду:
1
| a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest |
После активации моделей веб сервера необходимо перезагрузить Apache2 веб сервер командой:
1
| /etc/init .d /apache2 restart |
Устанавливаем FTP сервер PureFTPd и квоты Quota выполнив команду:
1
| aptitude install pure-ftpd-common pure-ftpd-mysql quota quotatool |
Нам необходимо внести изменения в конфигурационный файл ftp сервера PureFTPd /etc/default/pure-ftpd-common:
1
| vi /etc/default/pure-ftpd-common |
было:
1
2
3
| ... VIRTUALCHROOT= false ... |
стало:
1
2
3
| ... VIRTUALCHROOT= true ... |
Сохраняем измененный файл.
Теперь настраиваем работу FTP сервера для работы через защищенный протокол TLS и создаем ssl сертефикат:
1
| echo 1 > /etc/pure-ftpd/conf/TLS |
Создаем папку, где будет хранится наш сертификат выполнив команду:
1
| 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
Во время создания сертификатов отвечаем на вопросы:
Назначаем права для сертификата 600 выполнив команду:
1
| chmod 600 /etc/ssl/private/pure-ftpd .pem |
После внесения изменений и сохранив конфигурационный файл, создания ssl сертификата перезагружаем FTP сервер PureFTPd командой:
1
| /etc/init .d /pure-ftpd-mysql restart |
Вносим изменения в файл /etc/fstab для включения квот нашим пользователям, параметр ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 который добавим для почты и веб сервера в корневой раздел.
У Вас UUID будет отличатся от моего, вносим изменения в корневой раздел / системы:
У Вас UUID будет отличатся от моего, вносим изменения в корневой раздел / системы:
1
| vi /etc/fstab |
было:
1
| UUID=5deecf34-1354-4a0f-b65c-90abb960433e / ext4 errors=remount-ro 0 1 |
стало:
UUID=5deecf34-1354-4a0f-b65c-90abb960433e
/ ext4
errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0
0 1
Сохраняем файл /etc/fstab.conf
Для включения квот на диске, нам необходимо перемонтировать корневой раздел выполнив команду:
1
| mount -o remount / |
И непосредственно включаем квоты на диске выпонив команды:
1
2
| quotacheck -avugm quotaon -avug |
Устанавливаем DNS сервер Bind который будет также удобно
администрироватся через веб интерфейс панели ISPConfig выполнив команду и
согласившись:
1
| aptitude install bind9 dnsutils |
Устанавливаем программы для анализа и статистики посещаемости веб сервера выполнив команды:
1
| aptitude install vlogger webalizer awstats geoip-database |
Отключаем для программы awstat автоматический запуск из cron в файле /etc/cron.d/awstats:
1
| vi /etc/cron .d /awstats |
было:
*
/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
стало:
#*/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
Установка программы Jailkit
Если Вы будете предоставлять для пользователей изолированный chroot ssh доступ к серверу, необходимо установить программу Jailkit. Jailkit должен быть установлен до установки ISPConfig, и сам Jailkit будем устанавливать из исходных кодов, потому устанавливаем необходимые для сборки программы выполнив команду:
Если Вы будете предоставлять для пользователей изолированный chroot ssh доступ к серверу, необходимо установить программу Jailkit. Jailkit должен быть установлен до установки ISPConfig, и сам Jailkit будем устанавливать из исходных кодов, потому устанавливаем необходимые для сборки программы выполнив команду:
1
| aptitude install build-essential autoconf automake1.9 libtool flex bison debhelper |
И приступаем у созданию директории, где будем скачивать, распаковывать и
собирать программу Jailkit. Для установки программы Jailkit выполняем
команды:
1
2
3
4
5
6
| mkdir /usr/src/iserver/ && cd /usr/src/iserver/ wget http: //olivier .sessink. nl /jailkit/jailkit-2 .16. tar .gz tar xvfz jailkit-2.16. tar .gz cd jailkit-2.16 . /debian/rules binary dpkg -i /usr/src/iserver/jailkit_2 .16*.deb |
Установка программы Fail2ban
Устанавливаем программу fail2ban, которая
будет стоять на защите наших серверов, блокируя айпи с которых
производится попытка взлома открытых в интернет сервисов, если такие
есть. Если же Вам это не нужно, тогда можете пропустить установку и
настройку fail2ban.
Выполним установку и настройку программы fail2ban выполнив команду:
Выполним установку и настройку программы fail2ban выполнив команду:
1
| aptitude install fail2ban |
Создаем конфигурационный файлы для настройки программы fail2ban,
выполнив команды (скопировать все и вставить в консоль через Putty):
echo
'
[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
' >
/etc/fail2ban/jail
.
local
echo
'
[Definition]
failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed
for
user.*
ignoreregex =
' >
/etc/fail2ban/filter
.d
/pureftpd
.conf
echo
'
[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 =
' >
/etc/fail2ban/filter
.d
/dovecot-pop3imap
.conf
Перезагружаем программу для защиты сервера fail2ban выполнив команду:
1
| /etc/init .d /fail2ban restart |
Комментариев нет:
Отправить комментарий