Устанавливаем бесплатную панель управления хостингом под FreeBSD — SysCP | Вебмастер DataLife Engine

Когда-то давно интересовался общей информацией по существующих панелях управления хостингом. Акцент, конечно-же, делался в сторону свободного ПО. Заинтересовало решение на базе SysCP. Ознакомиться с даной панелью управления рекомендую именно на оф. сайте, поскольку (как ни странно) информации в Интернете немного.

Что радует, так это то, что во время работы данная панель не создает системных пользователей, и сохраняются все стандартные пути FreeBSD, тоесть каталоги пользователей панели будут размещаться в /usr/local/customers/, а не в /home.

Сама система написана на PHP, а для хранения информации используется СУБД MySQL.

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

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

# uname -a
FreeBSD warag.ru 6.3-STABLE FreeBSD 6.3-STABLE #3: Tue Oct 6 10:32:18 CEST 2009 root@dione.ispsystem.net:/root/src/sys/i386/compile/ISPSYSTEM_PAE i386

Диски разбиты следующим образом (настроен RAID 1 на основе gmirror):

# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/mirror/gm0s1a 1.9G 232M 1.6G 13% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/mirror/gm0s1d 3.9G 54K 3.6G 0% /home
/dev/mirror/gm0s1f 1.9G 52K 1.8G 0% /tmp
/dev/mirror/gm0s1g 383G 3.6G 349G 1% /usr
/dev/mirror/gm0s1e 58G 701M 53G 1% /var
devfs 1.0K 1.0K 0B 100% /var/named/dev

Опять же, есть еще одна приятность. SysCP есть в портах.

# cd /usr/ports/
# make search name=’syscp’
Port: syscp-1.4.2.1
Path: /usr/ports/sysutils/syscp
Info: PHP-based ISP System Control Panel
Maint: ek@purplehat.org
B-deps: apache-2.2.14_5 expat-2.0.1_1 libiconv-1.13.1 pcre-8.00 perl-5.8.9_3
R-deps: apache-2.2.14_5 dovecot-1.2.8 expat-2.0.1_1 freetype2-2.3.11 gd-2.0.35_2,1 gettext-0.17_1 jpeg-7 libiconv-1.13.1 libxml2-2.7.6_1 mysql-client-5.0.89 mysql-server-5.0.89 pcre-8.00 perl-5.8.9_3 php5-5.2.12 php5-bcmath-5.2.12 php5-filter-5.2.12 php5-gettext-5.2.12 php5-mysql-5.2.12 php5-pcre-5.2.12 php5-posix-5.2.12 php5-session-5.2.12 php5-simplexml-5.2.12 php5-spl-5.2.12 php5-xml-5.2.12 pkg-config-0.23_1 png-1.2.42 postfix-2.6.5,1 proftpd-mysql-1.3.2c webalizer-2.21.2_1
WWW: http://www.syscp.org/

Приступаем с установке…

# cd /usr/ports/sysutils/syscp
# make install clean

По ходу установки подтягиваются необходимые для работы порты, если они еще не были установлены в системе. По завершению установки обновляем пути и добавляем необходимый алиас в httpd.conf:

Alias /syscp «/usr/local/www/syscp»
<Directory «/usr/local/www/syscp»>
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Проверяем не допустили ли ошибок в конфигурации и перезапускаем apache.

# apachectl configtest
Syntax OK
# apachectl graceful

Открываем браузер и в строке адреса набираем путь http://ip_адрес_сервера/syscp/

Если не допустили ошибок, то в браузере откроется окно с уведомлением, что мы впервые принимаемся за настройку SysCP 🙂

Выбор у нас небольшой, поэтому княпаем на линк «configure SysCP».

В следующем окне будет немного интересней… Разработчики поблагодарили нас за выбор SysCP, а также предупреждают, что если мы выберем существующую на сервере БД, то все данные в этой БД будут уничтожены. Ну и чтобы немного наградить нас, предлагают на выбор три языка инсталяции:

  • немецкий
  • французкий
  • английский.

Русского к сожалению нет 🙁 Но отчаиваться не стоит, надеюсь с English более-менее все дружат.

Займемся настройкой коннекта к БД Mysql.

При работе syscp работает от имени двох пользователей: первый с ограниченными правами (только для редактирования данных БД самой панели), а второй с неограниченными правами (в целях безопасности всегда создаю своего пользователя и даю ему полные права, а пользователя root удаляю). Кстати, БД и пользователя для работы панель создаст автоматически. Необходимо только создать пользователя с неограниченными правами.

Пользователем с ограниченными правами у нас будет пользователь syscp, БД называться тоже будет syscp. Пользователя с полным доступом назовем syscp-root.

# mysql -u имя_пользователя -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 231103
Server version: 5.0.89-log FreeBSD port: mysql-server-5.0.89
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> create user ‘syscp-root’@’localhost’ identified by ‘password1’;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to ‘syscp-root’@’localhost’ with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
Заполняем необходимыми данными поля формы. В следующей форме определяемся с именем пользователся и назначаем ему пароль (рекомендую, чтобы имя пользователся отличалось от предложенного «admin»).
В следующем поле формы необходимо вбить имя сервера, его IP-адресс, какой именно веб-сервер установлено (предлагаются два варианта, это Lighttpd и Apache2. Также необходимо вписать имя пользователя и группу, от имени которых работает веб-сервер (обычно это пользователь www групы www).
Кажется все… Жмем «Next» и наблюдаем за результатом. Инсталяция прошла успешно, если не считать того, что дамп базы не был создан. Но и создаватьто было не с чего 🙂
Итак, инсталяция окончена, и внизу страницы появился линк с предложением «Нажми здесь, чтобы авторизоваться». Почему бы и не нажать?… 😉 Теперь вспомните поле формы, где было предложено ввести логин пользователя и пароль? Вот сейчас они нам и пригодятся.
После авторизации рекомендую посетить пункт «Change language» и установить язык панели в русский.
Кстати… В целях безопасности, после установки рекомендую полностью удалить каталог install:

# rm -R /usr/local/www/syscp/install/

Далее начнем настраивать сервисы на работу с SysCP. SysCP в этом нам очень поможет. По порядку будем выбирать необходимые службы в разделе «Сервер», пункт «Настройки служб».
 
Apache
Для работы Apache в связке с SysCP (предполагается что Apache уже настроен инеобходимо выполнить следующие команды (будьте внимательны, возможно с новой версией они изменятся):

# mkdir -p /usr/local/etc/apache22/syscp/htpasswd/
# touch /usr/local/etc/apache22/syscp/vhosts.conf
# touch /usr/local/etc/apache22/syscp/diroptions.conf
# mkdir -p /usr/local/customers/webs/
# mkdir -p /usr/local/customers/logs/
# echo «Include etc/apache22/syscp/vhosts.conf» >> /usr/local/etc/apache22/httpd.conf

Ну и перечитаем конфигурацию Apache для применения новых настроек:

/usr/local/etc/rc.d/apache22 graceful

Bind9

Настройка сервера имен Bind9 на работу с SysCP вообще минимальна (за условия, что Bind9 уже сконфигурирован и работает).
Необходимо выполнить всего три комманды в shell:

# echo ‘include «syscp_bind.conf»;’ >> /var/named/etc/namedb/named.conf
# touch /var/named/etc/namedb/syscp_bind.conf
# rndc reload

Dovecot

Здесь уже немного интерестней. Есть где развернуться, поскольку Dovecot — очень мощный POP3/IMAP-server. А файл конфигурации позволяет довольно гибко работать с почтовым сервером. Стоит отметить, что Dovecot разрабатывался в расчёте на безопасность, гибкость настройки и быстродействие.
Основные особенности:
  • Поддержка форматов почтовых ящиков mbox и Maildir, а так же собственные форматы dbox и Cydir
  • Высокое быстродействие благодаря индексации содержимого ящиков
  • Большое количество поддерживаемых механизмов хранения аутентификационой информации (включая LDAP) и самой аутентификации (поддерживается SSL).
  • Собственная реализация SASL. Postfix 2.3+ и Exim 4.64+ могут аутентифицироваться напрямую через Dovecot.
  • Полная поддержка IMAP ACL для гибкой настройки прав пользователей
  • Поддержка общих ящиков и папок (shared mailboxes and folders)
  • Расширяемость при помощи плагинов
  • Собственный MDA с поддержкой Sieve
  • Строгое следование стандартам — Dovecot один из немногих кто проходит тест на соответствие всем стандартам IMAP [3]
  • Возможность модификации индексов с нескольких компьютеров — что позволяет ему работать с NFS и кластерными файловыми системами
  • Поддерживает различные виды квот
  • Поддержка различных ОС: Linux, Solaris, FreeBSD, OpenBSD, NetBSD и Mac OS X
  • Простота настройки.
Приступаем к настройке. Во время установки SysCP, если Dovecot не был установлен в системе раньше, было доступно окно конфигурации. Надеюсь вы отметили работу с MySQL ;). Просмотреть, с какими опциями у вас собран Dovecot можно в файле /var/db/ports/dovecot/options.
Для начала создадим для Dovecot сертификат безопасности:
# mkdir -p /etc/ssl/dovecot
# cd /etc/ssl/dovecot
# openssl req -new -x509 -nodes -out cert.pem -keyout key.pem -days 3650
Generating a 1024 bit RSA private key
…..++++++
…………………++++++
writing new private key to ‘key.pem’
——
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]:RU
State or Province Name (full name) [Some-State]:Nizhegorodsky obl
Locality Name (eg, city) []:Nizhny Novgorod
Organization Name (eg, company) [Internet Widgits Pty Ltd]:warag.ru Ltd.
Organizational Unit Name (eg, section) []:IT department
Common Name (eg, YOUR name) []:warag.ru
Email Address []:admin’at’warag.ru
# chmod 0600 *.pem
 
Приступаем к редактированию основного конфигурационного файла Dovecot. Очистим послеустановочный вариант и добавляем необходимые опции. Предложенный SysCP вариант конфига был немного «подрихтован», было добавлено несколько строк. Выделено то, что изменялось, или на что необходимо обратить внимание.
# cat /dev/null > /usr/local/etc/dovecot.conf
# cat /usr/local/etc/dovecot.conf
protocols = imap imaps pop3 pop3s
disable_plaintext_auth = no
log_path = /var/log/dovecot/dovecot.log
log_timestamp = «%b %d %H:%M:%S »
syslog_facility = local0
ssl_disable = no
ssl_cert_file = /etc/ssl/dovecot/cert.pem
ssl_key_file = /etc/ssl/dovecot/key.pem
login_process_size = 64
login_process_per_connection = yes
login_processes_count = 3
login_max_processes_count = 128
login_max_connections = 256
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s
login_greeting = Dovecot Ready.
mail_uid = 125
mail_gid = 125
mail_privileged_group = mail
dotlock_use_excl = yes
verbose_proctitle = yes
first_valid_uid = 125
first_valid_gid = 125
maildir_copy_with_hardlinks = yes
protocol imap {
mail_plugins = quota imap_quota
login_greeting_capability = yes
imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
postmaster_address = postmaster_e-mail_here
sendmail_path = /usr/sbin/sendmail
}
auth_username_format = %Lu
auth default {
mechanisms = plain login
passdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
userdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
user = root
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
dict {
}
plugin {
}
Поскольку добавились некоторые опции для логирования, внесем изменения в syslogd для поддержки логов Dovecot.
Создадим каталог, где будут хранится логи:
# mkdir /var/log/dovecot
Добавим в syslogd перехват сообщений от Dovecot и настроим ротацию логов:
# echo ‘local0.* /var/log/dovecot/dovecot.log’ >> /etc/syslog.conf
# echo ‘/var/log/dovecot/dovecot.log 644 10 * $W6D0 JC’ >> /etc/newsyslog.conf
# sh /etc/rc.d/syslogd restart
Далее создаем файл с конфигурацией обращений к MySQL-базе, на который ссылается основной конфиг и приводим его к следующему виду:
# touch /usr/local/etc/dovecot-sql.conf
# cat /usr/local/etc/dovecot-sql.conf
driver = mysql
connect = host=localhost dbname=syscp user=syscp password=MYSQL_PASSWORD
default_pass_scheme = CRYPT
password_query = SELECT username AS user, password_enc AS password \
FROM mail_users WHERE username = ‘%u’
user_query = SELECT CONCAT(homedir,maildir) AS home, concat(‘maildir:’,homedir,maildir) \
AS mail, uid, gid FROM mail_users where username = ‘%u’
Кстати, если запамятовали, какой пароль SysCP для коннекта с MySQL-базой, то «подсмотреть» его можно в файле /usr/local/www/syscp/lib/userdata.inc.php.
Добавим загрузку Dovecot при запуске системы и стартуем Dovecot:
# echo ‘# Dovecot’ >> /etc/rc.conf
# echo ‘dovecot_enable=»YES»‘ >> /etc/rc.conf
# sh /usr/local/etc/rc.d/dovecot start
В моем случае Dovecot ругнулся на неизвестные опции в 6 строке и 27, а именно:
— ssl_disable
— login_greeting_capability
После общения с google понял, что для версии Dovecot 1.2.х эта опция заменена на «ssl = no». Вносим необходимые изменения в конфигурационный файл.
Опция login_greeting_capability разрешает посылать возможности IMAP в приветственном сообщении. Это избавляет клиентов от необходимости запрашивать это в команде CAPABILITY, таким образом экономится один запрос. Но в нашем случае данная опция неизвестна — ф топку. Обойдемся без нее. То есть — комментируем!
 
Postfix
Приступим к настройке SMTP-сервера на базе Postfix. Конечно, Exim мне более милее, но в стандартной поставке SysCP использует именно Postfix. Возможно позже статья будет переписана с использованием именно MTA Exim.
Итак, начнем с редактирования /usr/local/etc/postfix/main.cf. Необходимо придать ему следующий вид:
# cat /usr/local/etc/postfix/main.cf
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/ssl/postfix/smtpd.pem
smtpd_tls_cert_file = /etc/ssl/postfix/smtpd.pem
smtpd_tls_CAfile = /etc/ssl/postfix/smtpd.pem
smtpd_tls_loglevel = 0
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
virtual_alias_maps = proxy:mysql:/usr/local/etc/postfix/mysql-virtual_alias_maps.cf
virtual_gid_maps = static:125
virtual_mailbox_base = /usr/local/customers/mail/
virtual_mailbox_domains = proxy:mysql:/usr/local/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_maps = proxy:mysql:/usr/local/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_minimum_uid = 125
virtual_transport = virtual
virtual_uid_maps = static:125
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps
$virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains
$relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps
$recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, this user has overdrawn their diskspace quota. Please try again later.
virtual_overquota_bounce = yes
alias_maps = $alias_database
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
myhostname = warag.ru
mydomain = warag.ru
myorigin = $mydomain
unknown_local_recipient_reject_code = 550
mynetworks_style = host
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = no
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = no
Далее на очереди — /usr/local/etc/postfix/master.cf. Раскомментируем, или добавим следующие строки:
smtps inet n — n — — smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
Создаем mysql-virtual_alias_maps.cf и приводим к следующему виду:

# touch /usr/local/etc/postfix/mysql-virtual_alias_maps.cf
# cat /usr/local/etc/postfix/mysql-virtual_alias_maps.cf

user = syscp
password = MYSQL_PASSWORD
dbname = syscp
table = mail_virtual
select_field = destination
where_field = email
additional_conditions = and destination <> » and destination <> ‘ ‘
hosts = localhost

Потом создаем файл /usr/local/etc/postfix/mysql-virtual_mailbox_domains.cf и наполняем его следующим содержимым:

# touch /usr/local/etc/postfix/mysql-virtual_mailbox_domains.cf
# cat /usr/local/etc/postfix/mysql-virtual_mailbox_domains.cf

user = syscp
password = MYSQL_PASSWORD
dbname = syscp
table = panel_domains
select_field = domain
where_field = domain
additional_conditions = and isemaildomain = ‘1’
hosts = localhost

Еще один аналогичный файл:

# touch /usr/local/etc/postfix/mysql-virtual_mailbox_maps.cf
# cat /usr/local/etc/postfix/mysql-virtual_mailbox_maps.cf

user = syscp
password = MYSQL_PASSWORD
dbname = syscp
table = mail_users
select_field = maildir
where_field = email
hosts = localhost

Создаем каталог для приходящей почты:

# mkdir -p /usr/local/customers/mail/
# chown -R postfix:postfix /usr/local/customers/mail/

Инициализируем базу данных псевдонимов:

# /usr/local/bin/newaliases

Займемся сертификатом безопасности…

# mkdir -p /etc/ssl/postfix
# cd /etc/ssl/postfix
# openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650

Generating a 1024 bit RSA private key
……….++++++
…………………………….++++++
writing new private key to ‘smtpd.pem’
——
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]:RU
State or Province Name (full name) [Some-State]:Nizhegorodsky obl
Locality Name (eg, city) []:Nizhny Novgorod
Organization Name (eg, company) [Internet Widgits Pty Ltd]:warag.ru Ltd.
Organizational Unit Name (eg, section) []:IT department
Common Name (eg, YOUR name) []:warag.ru
Email Address []:admin’at’warag.ru

# chmod 750 /etc/ssl/postfix
# chmod 640 /etc/ssl/postfix/smtpd.pem
# chgrp -R postfix /etc/ssl/postfix

Также позаботимся о том, чтобы никто не подсмотрел параметры соединения с MySQL-базой:

# chmod 640 /usr/local/etc/postfix/mysql-virtual_*
# chgrp postfix /usr/local/etc/postfix/mysql-virtual_*

Отменим старт Sendmail и добавим в /etc/rc.conf загрузку Postfix при старте системы:

# echo ‘# SMTP’ >> /etc/rc.conf
# echo ‘sendmail_enable=»NO»‘ >> /etc/rc.conf
# echo ‘sendmail_submit_enable=»NO»‘ >> /etc/rc.conf
# echo ‘sendmail_outbound_enable=»NO»‘ >> /etc/rc.conf
# echo ‘sendmail_msp_queue_enable=»NO» >> /etc/rc.conf
# echo ‘postfix_enable=»YES»‘ >> /etc/rc.conf

Отключим специфические для Sendmail опции:

# touch /etc/periodic.conf
# cat /etc/periodic.conf

daily_clean_hoststat_enable=»NO»
daily_status_mail_rejects_enable=»NO»
daily_status_include_submit_mailq=»NO»
daily_submit_queuerun=»NO»

Останавливаем Sendmail и запускаем Postfix:

# killall -9 sendmail
# sh /usr/local/etc/rc.d/postfix start
postfix/postfix-script: starting the Postfix mail system

ProFTPd
Следующим сервисом будет ФТП (демон ProFTPd).
Займемся созданием сертификата для даного демона:

# mkdir -p /etc/ssl/proftpd
# cd /etc/ssl/proftpd
# openssl req -new -x509 -days 3650 -nodes -out cert.pem -keyout key.pem

Generating a 1024 bit RSA private key
………………………..++++++
………….++++++
writing new private key to ‘key.pem’
——
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]:RU
State or Province Name (full name) [Some-State]:Nizhegorodsky obl
Locality Name (eg, city) []:Nizhny Novgorod
Organization Name (eg, company) [Internet Widgits Pty Ltd]:warag.ru Ltd.
Organizational Unit Name (eg, section) []:IT department
Common Name (eg, YOUR name) []:warag.ru
Email Address []:admin’at’warag.ru
# chmod 640 *.pem

 

Приступаем к редактированию конфигурационного файла ProFTPd — /usr/local/etc/proftpd.conf. Необходимо привести его к следующему виду:

# cat /usr/local/etc/proftpd.conf
ServerName «warag.ru FTP Server»
ServerType standalone
DefaultServer on
Port 21
UseIPv6 off
Umask 022
SyslogLevel emerg
SystemLog /var/log/xferlog
LogFormat auth «%v [%P] %h %t \»%r\» %s»
ExtendedLog /var/log/xferlog AUTH auth
DeferWelcome off
MultilineRFC2228 on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message
ListOptions «-l»
DenyFilter \*.*/
MaxInstances 30
CommandBufferSize 512
User nobody
Group nogroup
AllowOverwrite on
DefaultRoot ~
RequireValidShell off
AuthOrder mod_sql.c
SQLAuthTypes Crypt
SQLAuthenticate users groups
SQLConnectInfo syscp@localhost syscp MYSQL_PASSWORD
SQLUserInfo ftp_users username password uid gid homedir shell
SQLGroupInfo ftp_groups groupname gid members
SQLUserWhereClause «login_enabled = ‘y'»
SQLLog PASS login
SQLNamedQuery login UPDATE «last_login=now(), login_count=login_count+1 WHERE username=’%u'» ftp_users
SQLLog RETR download
SQLNamedQuery download UPDATE «down_count=down_count+1, down_bytes=down_bytes+%b WHERE username=’%u'» ftp_users
SQLLog STOR upload
SQLNamedQuery upload UPDATE «up_count=up_count+1, up_bytes=up_bytes+%b WHERE username=’%u'» ftp_users
<IfModule mod_delay.c>
DelayEngine off
</IfModule>
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/xferlog
TLSProtocol SSLv23
TLSRequired off
TLSRSACertificateFile /etc/ssl/proftpd/cert.pem
TLSRSACertificateKeyFile /etc/ssl/proftpd/key.pem
TLSVerifyClient off
TLSRenegotiate required off
</IfModule>

Добавим загрузку ProFTPd в /etc/rc.conf:

# echo ‘# ProFTPd’ >> /etc/rc.conf
# echo ‘proftpd_enable=»YES»‘ >> /etc/rc.conf

Ну и, напоследок, запускаем саму службу:

# sh /usr/local/etc/rc.d/proftpd start
Starting proftpd.

Cron

Настроим планировщик заданий cron на выполнение следующих процедур

# cat /etc/crontab | grep syscp
*/5 * * * * root /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_tasks.php
0 0 * * * root /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_traffic.php
30 0 * * * root /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_ticketarchive.php
0 1 * * * root /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_used_tickets_reset.php
*/5 * * * * root /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_autoresponder.php
*/5 * * * * root /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_apsinstaller.php
*/30 * * * * root /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_apsupdater.php

Не забываем перезапустить cron после внесения изменений:

# killall -HUP cron

Для подержки awstats (поддержку можно будет настроить в панели) необходимо установить порт. Перейдем в /usr/ports/www/awstats и начнем установку:

# cd /usr/ports/www/awstats
# make install clean

По завершению установки необходимо добавить следующие строки в /usr/local/etc.apache22/httpd.conf:

Alias /awstatsclasses «/usr/local/www/awstats/classes/»
Alias /awstatscss «/usr/local/www/awstats/css/»
Alias /awstatsicons «/usr/local/www/awstats/icons/»
ScriptAlias /awstats/ «/usr/local/www/awstats/cgi-bin/»

<Directory «/usr/local/www/awstats/»>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Создаем необходимые каталоги и файлы:

# mkdir /usr/local/etc/awstats/
# cp /usr/local/www/awstats/cgi-bin/awstats.model.conf /usr/local/etc/awstats

Оставить комментарий
 

Еще нет никаких комментариев.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *