|
Rozmiar: 5303
Komentarz: +toc
|
Rozmiar: 5786
Komentarz: + dodatkow patche dla php5.5.x
|
| Usunięcia zostały oznaczone w ten sposób. | Dodatki zostały oznaczone w ten sposób. |
| Linia 122: | Linia 122: |
| * [[attachment:Quarantine.lib.php.patch]] | Kandydaci do zgłoszenia do ports jako stałych patchy: * [[attachment:patch-lib__Auth.class.php]] * [[attachment:patch-lib__CmnFns.class.php]] * [[attachment:patch-lib__Quarantine.lib.php]] * [[attachment:patch-lib__Template.class.php]] |
| Linia 132: | Linia 137: |
# dop/oki nie b/edzie zg/loszone do ports # patch -p0 < /var/tmp/mailzu/patch-lib__Auth.class.php patch -p0 < /var/tmp/mailzu/patch-lib__CmnFns.class.php patch -p0 < /var/tmp/mailzu/patch-lib__Quarantine.lib.php patch -p0 < /var/tmp/mailzu/patch-lib__Template.class.php |
Spis Treści
Konfiguracja MailZu
Powstał program (WebUI) do przepuszczania maili z kwarantanny do użytkownika. Został (albo trzeba to zrobić) zainstalowany z /usr/ports/security/mailzu. Jako bazę danych najlepiej wykorzystać PostgreSQL
Kompilacja oraz instalacja
W trakcie instalacji, powstawał błąd przy instalacji PEAR. Rozwiązaniem jest chwilowe wyłączenie następujących modułów w /usr/local/etc/php.extensions.ini:
mhash.so openssl.so ftp.so snmp.so imap.so ldap.so mysql.so pdo_mysql.so mysqli.so curl.so
Chociaż najbardziej podejrzane są moduły związane z mySQL-em. Opisany przypadek dotyczy FreeBSD 7.x.
Baza danych
Utworzenie bazy danych:
createuser -U pgsql -SDR -PE kolejorz
createdb -U pgsql -O kolejorz -E UTF8 intercity
UWAGA! Zmiana dla PostgreSQL9: zmienił się format dla bytea. Aby działało poprawnie, należy w pliku postgresql.conf ustawić następującą zmienną:
bytea_output = 'escape' # hex, escape
Następnie zrestartować server Postgres i można działać dalej.
Wyłuskanie schematu bazy danych z dokumentacji
Nie ma oddzielnie schematu bazy danych. Tak więc należy wyłuskać go z dokumentacji /usr/local/share/doc/amavisd-new/README.sql-pg.
Instalacja schematu w bazie danych
psql -U kolejorz intercity < /var/tmp/_mailzu.sql
UPDATE 26.01.2011: Trzeba dodać następującą funkcję do bazy danych, aby poprawnie działało podsumowanie kwarantanny (symulacja funckji z mySQL):
1 CREATE OR REPLACE FUNCTION from_unixtime(unixts integer)
2 RETURNS timestamp without time zone AS
3 $BODY$SELECT CAST('epoch' As timestamp) + ($1 * INTERVAL '1 second') $BODY$
4 LANGUAGE 'sql' IMMUTABLE;
Konfiguracja amavisd
Do konfiguracji amavisd.conf należy dodać następujące elementy:
# --- zapisywanie kwarantanny w bazie danych ---------------------------------
#
@storage_sql_dsn = (
['DBI:Pg:database=<DATABASE>;host=127.0.0.1;port=5432', '<USER>',
'<PASSWORD>'
]);
$sql_allow_8bit_address = 1;
$inet_socket_port = [10024,9998];
# --- przypisanie si/e do wszystkich interfejs/ow, aby dobrze dzia/la/l MailZu
#
$inet_socket_bind = undef;
# --- policy bank ------------------------------------------------------------
#
$interface_policy{'9998'} = 'AM.PDP';
$policy_bank{'AM.PDP'} = {
protocol => 'AM.PDP',
inet_acl => [qw( 127.0.0.1 <IP_1> <IP_2> )],
};
$virus_quarantine_method = 'sql:';
$banned_files_quarantine_method = 'sql:';
$spam_quarantine_method = 'sql:';
$virus_quarantine_to = 'virus-quarantine'; # traditional local quarantine
$spam_quarantine_to = 'spam-quarantine';
$banned_quarantine_to = 'banned-quarantine';
Po wykonaniu zmian (trzeba wpisać w odpowiednich miejscach), należy wykonać restart amavisd:
rcrestart amavisd
Konfiguracja mailzu
Aplikacja mailzu (PHP) wymaga nieco poprawek oraz konfiguracji:
Polonizacja
Może z czasem pojawi się polska wersja mailzu, ale na razie trzeba posiłkować się pracą wtps0na:
cd /usr/local/www/mailzu/ # przekopiowanie polskiego tłumaczenia cp /var/tmp/mailzu/pl.* lang/
Patchowanie
Dodatkowo konieczne jest dodanie kilku patchy, aby aplikacja działała poprawnie:
Kandydaci do zgłoszenia do ports jako stałych patchy:
cd /usr/local/www/mailzu/
patch -p0 < /var/tmp/mailzu/DBEngine.class.php.patch
patch -p0 < /var/tmp/mailzu/langs.php.patch
patch -p0 < /var/tmp/mailzu/messagesAdmin.php.patch
patch -p0 < /var/tmp/mailzu/quarantine.template.php.patch
patch -p0 < /var/tmp/mailzu/read_mail.php.patch
# dop/oki nie b/edzie zg/loszone do ports
#
patch -p0 < /var/tmp/mailzu/patch-lib__Auth.class.php
patch -p0 < /var/tmp/mailzu/patch-lib__CmnFns.class.php
patch -p0 < /var/tmp/mailzu/patch-lib__Quarantine.lib.php
patch -p0 < /var/tmp/mailzu/patch-lib__Template.class.php
config/config.php
Plik konfiguracyjny jest opisany bardzo dobrze, tak więc kilka chwil czytania i plik jest gotowy...
cd /usr/local/www/mailzu/config/
mkdir -p RCS
Ustawienie uprawnień
Po wykonaniu konfiguracji, należy ustawić uprawnienia do plików:
cd /usr/local/www/mailzu/
find ./ -exec chgrp www {} \;
find ./ -type f -exec chmod 0040 {} \;
find ./ -type d -exec chmod 0050 {} \;
cd config/
chmod 0240 config.php
chmod 0750 RCS/
A potem to już pozostaje jedynie zabezpieczyć konfigurację przed zmianami.
Konfiguracja Apache'a
Konfiguracja Apache'a sprowadza się do wykonania aliasu, aby udostępnić MailZu:
# --- definicja stronek z HTMLem ---------------------------------
#
<Directory "/usr/local/www/mailzu/">
Options none
AllowOverride Limit
Order allow,deny
Allow from all
</Directory>
[...]
Alias /mq/ "/usr/local/www/mailzu/"Po wykonaniu zmian, trzeba przeładować konfigurację Apache'a:
apachectl graceful
Wszelkie sprawy do administratora.
