Установка Amavisd-new, SpamAssassin и ClamAV
Для установки Amavisd-new, SpamAssassin и ClamAV, выполните следующую команду:
|
Теперь мы запустим Freshclam, Amavisd и clamd:
|
Установка Apache2 With mod_php, mod_fcgi/PHP5 и suPHP
ISPConfig 3 позволяет использовать mod_php, mod_fcgi/PHP5, cgi/PHP5 и suPHP для каждого сайта в отдельности. Мы можем установить Apache2with mod_php5, mod_fcgid, и PHP5 следующим образом:
|
Далее мы открыты /etc/php.ini ...
|
... и изменяем сообщений об ошибках (так, что уведомления не показывалось больше) и раскомментировать cgi.fix_pathinfo=1 :
[...]
;error_reporting = E_ALL & ~E_DEPRECATED
error_reporting = E_ALL & ~E_NOTICE
[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting
; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]
Далее мы установим suPHP (есть mod_suphp пакет доступен в репозитории, но к сожалению он не совместим с ISPConfig, поэтому мы должны построить suPHP сами):
|
Затем мы добавляем suPHP модуль для нашей конфигурации Apache ...
|
LoadModule suphp_module modules/mod_suphp.so
... и создайте файл /etc/suphp.conf следующим образом:
|
[global] ;Path to logfile logfile=/var/log/httpd/suphp.log ;Loglevel loglevel=info ;User Apache is running as webserver_user=apache ;Path all scripts have to be in docroot=/ ;Path to chroot() to before executing script ;chroot=/mychroot ; Security options allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false ;Check wheter script is within DOCUMENT_ROOT check_vhost_docroot=true ;Send minor error messages to browser errors_to_browser=false ;PATH environment variable env_path=/bin:/usr/bin ;Umask to set, specify in octal notation umask=0077 ; Minimum UID min_uid=100 ; Minimum GID min_gid=100 [handlers] ;Handler for php-scripts x-httpd-suphp="php:/usr/bin/php-cgi" ;Handler for CGI-scripts x-suphp-cgi="execute:!self"
Наконец-то мы перезапустим Apache:
|
Ruby
Начиная с версии 3.0.3, ISPConfig 3 имеет встроенную поддержку Ruby. Вместо того чтобы использовать CGI/FastCGI, ISPConfig зависит от mod_ruby сети будет доступна в Apache сервера.
Для CentOS 6.0, нет доступного mod_ruby пакета, поэтому мы должны скомпилировать его сами. Сначала установим некоторые предпосылки:
|
Далее скачайте и установите mod_ruby следующим образом:
|
Наконец, мы должны добавить mod_ruby модуль для конфигурации Apache, поэтому мы создаем файл /etc/httpd/conf.d/ruby.conf ...
|
LoadModule ruby_module modules/mod_ruby.so RubyAddPath /1.8
... и перезагрузим Apache:
|
Если вы не укажете RubyAddPath /1.8 директиву, Вы увидите ошибку, такие как следующие в журнале ошибок сервера Apache, когда вы вызываете Ruby файлы:
[Thu May 26 02:05:05 2011] [error] mod_ruby: ruby:0:in `require': no such file to load -- apache/ruby-run (LoadError) [Thu May 26 02:05:05 2011] [error] mod_ruby: failed to require apache/ruby-run [Thu May 26 02:05:05 2011] [error] mod_ruby: error in ruby
WebDAV
WebDAV уже должен быть включен, но мы проверим это, откройте /etc/httpd/conf/httpd.conf и убедитесь, что следующие три модуля активные:
|
[...] LoadModule auth_digest_module modules/mod_auth_digest.so [...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so [...]
Если Вам необходимо изменить /etc/httpd/conf/httpd.conf, не забудьте перезапустить Apache после этого:
|
Установка PureFTPd
PureFTPd может быть установлена с помощью следующей команды:
|
Затем создайте автозагрузку для PureFTPd и запустите:
|
Теперь мы настроим PureFTPd чтобы разрешить FTP и TLS сессии. FTP является очень небезопасным протоколом, потому что все пароли и все данные передаются в открытом виде. С помощью TLS, все коммуникации могут быть зашифрованы, что делает FTP гораздо более безопасным. OpenSSL нужен TLS, установим OpenSSL просто выполнив:
|
Открытый /etc/pure-ftpd/pure-ftpd.conf ...
|
Если Вы хотите разрешить FTP и TLS сессии, установите TLS = 1 :
[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
# including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.
TLS 1
[...]
Для того чтобы использовать TLS, мы должны создать SSL-сертификат. Я создаю его в /etc/ssl/private/, поэтому я создал этот каталог первым:
|
После этого мы можем сгенерировать SSL сертификат следующим образом:
|
Country Name (2 letter code) [XX]: - Введите название Вашей страны (например, "RU") State or Province Name (full name) []: - Введите название государства или провинции Locality Name (eg, city) [Default City]: - Введите город Organization Name (eg, company) [Default Company Ltd]: - Введите название организации (например, название Вашей компании) Organizational Unit Name (eg, section) []: - Введите имя организационные единицы (например, "ИТ-отдел") Common Name (eg, your name or your server's hostname) []: - Введите полное доменное имя системы (например, "server1.example.com") Email Address []: - Введите свой электронный адрес
Изменение прав доступа SSL сертификата:
|
Наконец перезапустите PureFTPd:
|
Вот и все. Теперь Вы можете попробовать подключиться с помощью вашего FTP-клиента, однако, Вы должны настроить FTP-клиент для использования TLS.
Установка BIND
Мы можем установить BIND следующим образом:
|
Затем откройте /etc/sysconfig/named ...
|
... и убедитесь, что ROOTDIR=/var/named/chroot строка закомментирована:
# BIND named process options
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
# Currently, you can use the following options:
#
# ROOTDIR="/var/named/chroot" -- will run named in a chroot environment.
# you must set up the chroot environment
# (install the bind-chroot package) before
# doing this.
# NOTE:
# Those directories are automatically mounted to chroot if they are
# empty in the ROOTDIR directory. It will simplify maintenance of your
# chroot environment.
# - /var/named
# - /etc/pki/dnssec-keys
# - /etc/named
# - /usr/lib64/bind or /usr/lib/bind (architecture dependent)
#
# Those files are mounted as well if target file doesn't exist in
# chroot.
# - /etc/named.conf
# - /etc/rndc.conf
# - /etc/rndc.key
# - /etc/named.rfc1912.zones
# - /etc/named.dnssec.keys
# - /etc/named.iscdlv.key
#
# Don't forget to add "$AddUnixListenSocket /var/named/chroot/dev/log"
# line to your /etc/rsyslog.conf file. Otherwise your logging becomes
# broken when rsyslogd daemon is restarted (due update, for example).
#
# OPTIONS="whatever" -- These additional options will be passed to named
# at startup. Don't add -t here, use ROOTDIR instead.
#
# KEYTAB_FILE="/dir/file" -- Specify named service keytab file (for GSS-TSIG)
#ROOTDIR=/var/named/chroot
Сделайте резервную копию существующего /etc/named.conf файла и создайте новый, следующим образом:
|
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.conf.local";
Создайте файл /etc/named.conf.local, включенного в конце /etc/named.conf ( /etc/named.conf.local будет в дальнейшем получать данные ISPConfig, если Вы создадите DNS зоны в ISPConfig):
|
Затем мы создаем запуска ссылки и начать BIND:
|
Установка Vlogger, Webalizer, AWStats
Vlogger, Webalizer и AWStats может быть установлен следующим образом:
|
|
Установка Jailkit
Jailkit необходим только если Вы хотите, чтобы пользователи использованны изолированный SSH. Он может быть установлен следующим образом ( важно: Jailkit должна быть установлен до ISPConfig - она не может быть установлен впоследствии!):
|
Установка fail2ban
Это необязательно, но рекомендуется, так как ISPConfig использует монитор отображения журнала:
|
Установка RkHunter
|