Настройка postfixadmin

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
izeldur
проходил мимо

Настройка postfixadmin

Непрочитанное сообщение izeldur » 2007-09-20 19:59:49

Настроил exim+dovecot+mysql и решил прикрутить postfixadmin для управления всем хозяйством, как это упоминалось в статье http://www.lissyara.su/?id=1173&commented=1&print=1
Поставил из портов postfixadmin (2.1.0_7)

Код: Выделить всё

# cd /usr/ports/mail/postfixadmin
# make && make install && make clean
Подправил соответсвующим образом httpd.conf

Код: Выделить всё

Alias /postfix-admin/ "/usr/local/www/postfixadmin/"
<Directory "/usr/local/www/postfixadmin">
    Options Indexes
    AllowOverride Authconfig
    Order deny,allow
    Allow from all
</Directory> и тд ...
и

Код: Выделить всё

# rm -f /usr/local/www/postfixadmin/admin/.htpasswd
# htpasswd -c /usr/local/www/postfixadmin/admin/.htpasswd postfixadmin
New password: ******
Re-type new password: ******
Adding password for user postfixadmin
Отредактировал /usr/local/www/postfixadmin/config.inc.php

Код: Выделить всё

<?php
// File: config.inc.php
//
if (ereg ("config.inc.php", $_SERVER['PHP_SELF']))
{
   header ("Location: login.php");
   exit;
}

// Postfix Admin Path
// Set the location to your Postfix Admin installation here.
$CONF['postfix_admin_url'] = 'http://domain.ru/postfix-admin/';
$CONF['postfix_admin_path'] = '/usr/local/www/postfixadmin/';

// Language config
// Language files are located in './languages'.
$CONF['default_language'] = 'ru';

// Database Config
// mysql = MySQL 3.23 and 4.0
// mysqli = MySQL 4.1
// pgsql = PostgreSQL
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'exim';
$CONF['database_password'] = 'eximspassword';
$CONF['database_name'] = 'exim';
$CONF['database_prefix'] = '';

$CONF['admin_email'] = 'postmaster@domain.ru';

$CONF['smtp_server'] = 'localhost';
$CONF['smtp_port'] = '25';

$CONF['encrypt'] = 'cleartext';

$CONF['generate_password'] = 'YES';

$CONF['page_size'] = '30';

$CONF['default_aliases'] = array (
        'abuse' => 'abuse@domain.ru',
        'hostmaster' => 'hostmaster@domain.ru',
        'postmaster' => 'postmaster@domain.ru',
        'webmaster' => 'webmaster@domain.ru'
);

$CONF['domain_path'] = 'NO';

$CONF['domain_in_mailbox'] = 'YES';

$CONF['aliases'] = '10';
$CONF['mailboxes'] = '10';
$CONF['maxquota'] = '10';

$CONF['quota'] = 'YES';
// You can either use '1024000' or '1048576'
$CONF['quota_multiplier'] = '1024000';

$CONF['transport'] = 'NO';

$CONF['vacation'] = 'NO';

$CONF['vacation_domain'] = 'autoreply.domain.ru';


$CONF['alias_control'] = 'NO';


$CONF['special_alias_control'] = 'YES';


$CONF['logging'] = 'YES';

// Header
$CONF['show_header_text'] = 'NO';
$CONF['header_text'] = ':: Postfix Admin ::';

$CONF['show_footer_text'] = 'YES';
$CONF['footer_text'] = 'Return to domain.ru';
$CONF['footer_link'] = 'http://domain.ru';

$CONF['welcome_text'] = <<<EOM
Hi, Welcome to your new account.
EOM;
Перехожу по ссылке в admin section http://domain.ru/postfix-admin/admin/, ввожу логин и пароль который у меня запрашивает apache, на этом собственно все.. меня редиректит на http://domain.ru/postfix-admin/admin/list-admin.php, я лицезрею полность чистую страницу :(

После я с консоли добавил домен и админа в таблицы mysql'а exim, Это позволило мне залогиниться в http://domain.ru/postfix-admin/ и управлять только что добавленым доменом, но на http://domain.ru/postfix-admin/admin/ это никак не повлеяло :\

Отсюда вопрос, что я делаю не так и как это побороть?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35015
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Настройка postfixadmin

Непрочитанное сообщение Alex Keda » 2007-09-20 22:25:02

в логах что
Убей их всех! Бог потом рассортирует...

izeldur
проходил мимо

Re: Настройка postfixadmin

Непрочитанное сообщение izeldur » 2007-09-20 23:06:31

lissyara писал(а):в логах что
Привожу логи апача(domain.ru.error.log)

Код: Выделить всё

[Thu Sep 20 01:09:24 2007] [error] [client xxx.xx.xx.xx] File does not exist: /home/site/www/domain.ru/favicon.ico
[Thu Sep 20 01:10:20 2007] [error] PHP Warning:  main() [<a href='function.main'>function.main</a>]: open_basedir restriction in effect. File(../config.inc.php) is not within the allowed path(s): (/home/site:.) in /usr/local/www/postfixadmin/admin/backup.php on line 20
[Thu Sep 20 01:10:20 2007] [error] PHP Warning:  main(../config.inc.php) [<a href='function.main'>function.main</a>]: failed to open stream: Operation not permitted in /usr/local/www/postfixadmin/admin/backup.php on line 20
[Thu Sep 20 01:10:20 2007] [error] PHP Fatal error:  main() [<a href='function.require'>function.require</a>]: Failed opening required '../config.inc.php' (include_path='.:/usr/local/share/pear') in /usr/local/www/postfixadmin/admin/backup.php on line 20
[Thu Sep 20 01:09:23 2007] [error] PHP Warning:  main() [<a href='function.main'>function.main</a>]: open_basedir restriction in effect. File(../variables.inc.php) is not within the allowed path(s): (/home/site:.) in /usr/local/www/postfixadmin/admin/list-admin.php on line 20
[Thu Sep 20 01:09:23 2007] [error] PHP Warning:  main(../variables.inc.php) [<a href='function.main'>function.main</a>]: failed to open stream: Operation not permitted in /usr/local/www/postfixadmin/admin/list-admin.php on line 20
[Thu Sep 20 01:09:23 2007] [error] PHP Fatal error:  main() [<a href='function.require'>function.require</a>]: Failed opening required '../variables.inc.php' (include_path='.:/usr/local/share/pear') in /usr/local/www/postfixadmin/admin/list-admin.php on line 20

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35015
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Настройка postfixadmin

Непрочитанное сообщение Alex Keda » 2007-09-20 23:46:33

ну вот 20-ю строку и смотри
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Настройка postfixadmin

Непрочитанное сообщение Morty » 2007-09-20 23:52:26

у меня сделано вот так

httpd.conf

Код: Выделить всё

LoadModule security_module    libexec/apache/mod_security.so
AddModule mod_security.c

<VirtualHost *>
DocumentRoot /usr/local/www/postfixadmin
ErrorLog /usr/local/www/postfixadmin/error.log
ServerName admin.domain.com
ServerAlias admin.domain.com
DirectoryIndex index.php
#--- security section
# Включаем mod_security
SecFilterEngine On
# Проверяем запросы
SecFilterScanPOST On
# Проверяем ответы
#SecFilterScanGET On
# Проверяем, правильно ли закодирован URL
SecFilterCheckURLEncoding On
# Включаем этот параметр, если сайт в Unicode
SecFilterCheckUnicodeEncoding Off
# Задаем диапазон байтов
SecFilterForceByteRange 1 255
# Сохраняем в лог только срабатывания механизма
SecAuditEngine RelevantOnly
# Где живет лог :)
SecAuditLog log/audit_log
# Возвращаем ошибку 500 при срабатывании
SecFilterDefaultAction "deny,log,status:500"
# Перекрываем dots-bug
SecFilter "\.\./"
# Не забываем про XSS
SecFilter "<(.|\n)+>"
# SQL injection, куда же без него :)
SecFilter "<[[:space:]]*script"
SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "select.+from"
# Перекрываем возможность передачи переменных PHP
SecFilterSelective ARG_b2inc "!^$"
# Исключаем возможность раскрытия пути
#SecFilterSelective OUTPUT "Fatal error:"
#----end security section
<Directory /usr/local/www/postfixadmin/admin>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec FollowSymlinks
        <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
         </LimitExcept>
</Directory>
</VirtualHost>
../postfixadmin/admin/.htaccess

Код: Выделить всё

AuthUserFile /usr/local/www/postfixadmin/admin/.htpasswd
#AuthGroupFile /dev/null
AuthName "Member Login"
AuthType Basic
<limit GET POST>
require valid-user
</limit>
посмотри/сравни - может чем-то поможет

izeldur
проходил мимо

Re: Настройка postfixadmin

Непрочитанное сообщение izeldur » 2007-09-21 0:46:31

lissyara писал(а):ну вот 20-ю строку и смотри
20-ая строка в /usr/local/www/postfixadmin/admin/backup.php это:

Код: Выделить всё

require ("../config.inc.php");
Почему-то не может найти путь к файлу...
Прийдётся указывать полные пути :twisted: ??

Код: Выделить всё

require ("/usr/local/www/postfixadmin/config.inc.php");
сделал, вот результат:
[Fri Sep 21 01:41:55 2007] [error] PHP Fatal error: main() [<a href='function.require'>function.require</a>]: Failed opening required '/usr/local/www/postfixadmin/config.inc.php' (include_path='.:/usr/local/share/pear') in /usr/local/www/postfixadmin/admin/backup.php on line 20
И include_path= менял повсякому, все никак :\

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35015
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Настройка postfixadmin

Непрочитанное сообщение Alex Keda » 2007-09-21 8:13:29

может прав нехватает?
и кстати, ты так и не указал что этот файл есть...
дай вывод
Убей их всех! Бог потом рассортирует...

izeldur
проходил мимо

Re: Настройка postfixadmin

Непрочитанное сообщение izeldur » 2007-09-21 9:37:33

Все файлы были на месте, с правильными правами.
Проблема сидела в конфиге апача. Вынес postfixadmin в поддомен(admin.domain.ru) как у тебя и все заработало =)
Спасибо за помощь

izeldur
проходил мимо

Re: Настройка postfixadmin

Непрочитанное сообщение izeldur » 2007-09-23 13:07:32

Не успел решить одну проблему возникла следующая, на этот раз при доступе в пользовательский раздел (http://admin.domain.ru/users/login.php), вот лог:

Код: Выделить всё

[Sun Sep 23 13:33:41 2007] [error] PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at /usr/local/www/postfixadmin/variables.inc.php:91) in /usr/local/www/postfixadmin/users/login.php on line 61
[Sun Sep 23 13:33:41 2007] [error] PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /usr/local/www/postfixadmin/variables.inc.php:91) in /usr/local/www/postfixadmin/users/login.php on line 61
[Sun Sep 23 13:33:41 2007] [error] PHP Warning:  Cannot modify header information - headers already sent by (output started at /usr/local/www/postfixadmin/variables.inc.php:91) in /usr/local/www/postfixadmin/users/login.php on line 65
Содержимое /usr/local/www/postfixadmin/users/login.php(cтроки 59-67):

Код: Выделить всё

  
59 | if ($error != 1)
60 | {
61 |     [color=#800000]session_start();[/color]
62 |     session_register("userid");
63 |     $_SESSION['userid']['username'] = $fUsername;
64 |
65 |     [color=#800000]header("Location: main.php");[/color]
66 |     exit;
67 |  }

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Настройка postfixadmin

Непрочитанное сообщение Morty » 2007-09-23 14:23:31

предположительно ....

Код: Выделить всё

/usr/local/etc/php.ini
session.auto_start = XXX
тоесть может поковырять настройки самого ПэХэПэ ?

Код: Выделить всё

[Sun Sep 23 13:33:41 2007] [error] PHP Warning:  session_start()  <----- вот это и есть  недовольствие самого ПХП
Попробуй сначала
session.auto_start - значения поменять а потом далее по тексту cookies у тебя тоже ругаеться

Код: Выделить всё

В пхп-экстеншинах тоже есть "модуль" который за session отвечает
/usr/ports/lang/php5-extansions
может быть он этого хочет

izeldur
проходил мимо

Re: Настройка postfixadmin

Непрочитанное сообщение izeldur » 2007-09-25 22:01:13

Проблема решилась, путем изменения config.inc.php
было:

Код: Выделить всё

$CONF['welcome_text'] = <<<EOM
Hi,

Welcome to your new account.
EOM;
стало:

Код: Выделить всё

$CONF['welcome_text'] = "Welcome to your new account";