HOWTO: Postfix + Courier-Imap + Mysql + SASL2 +PostfixAdmin +bind/named (named.conf, pliki strefy, revdensy) Apache +PHP (httpd.conf) + phpMyAdmin +RoundCube Webmail

Wersja 0.2 (30.01.2008)

Zawartość HOWTO:

AleOsochozi

Co tu ściemniać OpenBSD pod względem prostoty wypiera wszystkie OS'y. Zacznijmy od tego, że w base mamy apache, nameda na dodatek zchrotowanego wystarczy kliknąć vim'em tu i tam. Zakładam sytuacje , że system jest świeżo po instalacji i mamy aktualne porty i src. Nie będe się rozpisywał co to postfix lub Courier i do czego służy bo nie to jest tematem HOWTO

Skupimy się na Ctrl+c, Ctrl+v ;] a tak poważnie to nie bierz poważnie tego HOWTO

Achtung achtung... !!!

Proszę sprawdzać wszystkie kopiowane plików na zasadzie Ctrl+c i wklejanie do vim'a, może załamać ci linie

Góra strony

Pierwsze kroki

Co nam będzie potrzebne hmm... na pewno klawiatura

Wszystko co będziemy klepać w klawiaturę dotyczy oczywiście OpenBSD 4.0

Zakładam, że masz wykupioną domenę i wydelegowaną właśnie na ten serwer, domena niech na potrzeby howto będzie to backup.netbsd.net.pl. Edytor jakiego będę używał to tylko i wyłącznie vim i na początku ułatwimy sobie prace z nim pisząc co nieco w .vimrc

Niestety vim nie jest domyślnym edytorem i trzeba go instalnąć. Proszę zwrócić uwagę na -no_x11 . Wydając poniższe polecenie zostaną również zainstalowane inne wymagane pakiety.

root@gsm:~> vim-7.0.42-no_x11

Poniżej mój mały .vimrc zapisz go oczywiście w /root/.vimrc


 syntax on                       " podświetlanie składni
 set autoindent                  " auto-wcięcia
 set background=dark             " ciemne tło
 set backspace=2                 " backspace usuwa wszystko
 set hlsearch                    " podświetlenie wyszukiwanego ciągu
 set termencoding=iso8859-2      " kodowanie terminala
 set fileencoding=iso8859-2      " kodowanie plików
 set encoding=iso8859-2          " kodowanie
 filetype plugin on              " rozpoznawanie plików
 filetype indent on				 
 set ts=4                        " tab stop
 set sw=4                        " shift width (przy autoindent)
 set textwidth=2048              " szerokość tekstu
 "set nu                         " numerki lini
 set guifont=Courier\ New\ 9     " czcionka
 set lcs=tab:>.,eol:$            " pokazywanie znaków niedrukowalnych
 set whichwrap+=<,>,[,]          " po czym łamać długie linie
 set gdefault                    " /g domyślnie przy s///
 set showcmd                     " pokazywanie wpisywanych komend
 set wildmenu                    " pokazanie (bash-like) przy tab
 set incsearch                   " pokazywanie tego co sie wpisuje przy /
 set statusline=%<%f\ (%{&encoding})\ %h%m%r%=%-14.(%l,%c%V%)\ %P
 set laststatus=2                " zawsze pokazujemy statusline
 set fileencodings^=iso8859-2    " Prefer ISO-8859-2 :)


Warto też instalnąć colorls co by nam ładnie konsola wyglądała i dać kilka aliasów do .profile


root@gsm:~> pkg_add colorls

/root/.profile


PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin
TERM=nxterm
export PATH
umask 022
#if [ -x /usr/bin/tset ]; then
#   eval `/usr/bin/tset -sQ \?$TERM`
#fi
alias tcpdump='tcpdump -n -e -ttt -i pflog0'
alias ll='ls -l'
alias ls='colorls -G'
alias vi='vim'

TO by było na tyle

Góra strony

Named

Najsamprzód :


root@gsm:~> cd /var/named/
root@gsm:/var/named> mkdir log
root@gsm:/var/named> touch log/{named.log,security.log,xferout.log}
root@gsm:/var/named> chown -R named.named log/
root@gsm:/var/named> cd etc/
root@gsm:/var/named/etc> touch rndc.key
root@gsm:/var/named/etc> rndc-confgen -a -c rndc.key
root@gsm:/var/named/etc> vi named.conf

Konfigurujemy named.conf ustawiając naszą domenę backup.netbsd.net.pl


acl clients {
    localnets;
    ::1;
};
options {
    version ""; // remove this to allow version queries
    listen-on    { any; };
    listen-on { 127.0.0.1; };
        forwarders {
        192.168.0.2;
        };
    notify no;
    allow-query { any; };
    allow-transfer { any; };
    auth-nxdomain no;
    allow-recursion { clients; };
    listen-on-v6 { any; };
    };

//logging {
//  category lame-servers { null; };
//};
controls {
    inet 127.0.0.1 allow {localhost; } keys {rndc.key; };
};
logging {
    channel default {
        file "log/named.log" versions 3 size 10m ;
        severity info;
        print-category yes;
        print-severity yes;
        print-time yes;
        };
    channel security_log {
        file "log/security.log" versions 3 size 10m;
        severity info;
        print-time yes;
        };
    channel xfreout_log {
        file "log/xferout.log" versions 3 size 1m;
        severity info;
        print-time yes;
        };
    category default { default; };
    category security { security_log; };
    category xfer-out { xfreout_log; };
    category lame-servers { null; };
};
// Standard zones
//
zone "." {
    type hint;
    file "standard/root.hint";
};
zone "localhost" {
    type master;
    file "standard/localhost";
    allow-transfer { localhost; };
};
zone "127.in-addr.arpa" {
    type master;
    file "standard/loopback";
    allow-transfer { localhost; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" {
    type master;
    file "standard/loopback6.arpa";
    allow-transfer { localhost; };
};
zone "com" {
    type delegation-only;
};
zone "net" {
    type delegation-only;
};
// Master zones
zone "backup.netbsd.net.pl" {
    type master;
    file "master/backup.netbsd.net.pl.zone";
    notify yes;
};

Kolej na plik strefy


root@gsm:/var/named/etc> cd ../master/
root@gsm:/var/named/master> vi backup.netbsd.net.pl.zone

Główny plik strefy naszej domeny


$TTL 86400
$ORIGIN backup.netbsd.net.pl.
@   IN  SOA backup.netbsd.net.pl. root.backup.netbsd.net.pl. (
            2008012901  ; Serial
            3600    ; Refresh 2 d
            7200    ; Retry   8 h
            1209600 ; Expire  1000 hours
            60480 ) ; Minimum (ttl default) 0.7 d

@   IN  NS  gsm.backup.netbsd.net.pl.
    IN  MX  10 mail.backup.netbsd.net.pl.
backup.netbsd.net.pl.   IN  TXT "v=spf1 +mx ip4:91.194.18.60 +a:backup.netbsd.net.pl -all"

@       IN  A   91.194.18.60
mail    IN  A   91.194.18.60
gsm IN  A   91.194.18.60
mta IN  A   91.194.18.60
mail.backup.netbsd.net.pl IN  MX  10  91.194.18.60
poczta  IN  A   91.194.18.60
www IN  A   91.194.18.60
admin   IN  A   91.194.18.60

root@gsm:/var/named/master> chown named.named backup.netbsd.net.pl.zone

Na razie to wystarczy. Najlepiej mieć 2 konsole na pierwszej podgląd w logi:


root@gsm:~> tail -f /var/named/log/named.log

Na drugiej testujemy named


root@gsm:/var/named/master> named

W logach powinniśmy zobaczyć coś takiego:


29-Jan-2008 11:01:58.206 general: info: zone 127.in-addr.arpa/IN: loaded serial 1
29-Jan-2008 11:01:58.211 general: info: zone 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 1
29-Jan-2008 11:01:58.215 general: info: zone localhost/IN: loaded serial 1
29-Jan-2008 11:01:58.219 general: info: zone backup.netbsd.net.pl/IN: loaded serial 2008012901
29-Jan-2008 11:01:58.224 general: notice: running

Na razie to wszystko odnośnie nameda, na koniec pokaże jak powinien wyglądać plik strefy pod revdns'y

Góra strony

Apache + PHP

Tu nie ma co się rozpisywać tylko zdać się na instynkt i klepać to co poniżej ;]

Zaczniemy co prawda od mysql'a ale omówimy go w dalszej części teraz sama instalacja


root@gsm:~> pkg_add mysql-server-5.0.24a
mysql-server-5.0.24a:mysql-client-5.0.24a: complete
mysql-server-5.0.24a:p5-Net-Daemon-0.39: complete
mysql-server-5.0.24a:p5-PlRPC-0.2018: complete
mysql-server-5.0.24a:p5-DBI-1.51: complete
mysql-server-5.0.24a:p5-DBD-mysql-2.9004: complete
mysql-server-5.0.24a: complete
--- mysql-server-5.0.24a -------------------
WARNING: The host 'gsm.my.domain' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing all prepared tables
Fill help tables
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/bin/mysqladmin -u root password 'new-password'
/usr/local/bin/mysqladmin -u root -h gsm.my.domain password 'new-password'
See the manual for more instructions.

Please report any problems with the /usr/local/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com

Narazie nic więcej z mysql'em nie robimy. I jedziemy dalej:


root@gsm:~> pkg_add php5-core-5.1.4p2
php5-core-5.1.4p2:libxml-2.6.26: complete
php5-core-5.1.4p2: complete
--- php5-core-5.1.4p2 -------------------
To finish the install, enable the php5 module with:
    /usr/local/sbin/phpxs -s

To enable parsing of PHP scripts, add the following to
/var/www/conf/httpd.conf:

    AddType application/x-httpd-php .php

Copy the config file below into /var/www/conf/php.ini
/usr/local/share/examples/php5/php.ini-recommended

Don't forget that the default OpenBSD httpd is chrooted
into /var/www by default, so you may need to create support
directories such as /var/www/tmp for PHP to work correctly.

root@gsm:~> /usr/local/sbin/phpxs -s
[activating module `php5' in /var/www/conf/httpd.conf]
cp /usr/local/lib/php/libphp5.so /usr/lib/apache/modules/libphp5.so
chmod 755 /usr/lib/apache/modules/libphp5.so
cp /var/www/conf/httpd.conf /var/www/conf/httpd.conf.bak
cp /var/www/conf/httpd.conf.new /var/www/conf/httpd.conf
rm /var/www/conf/httpd.conf.new

You should copy the sample configuration files from
/usr/local/share/examples/php5 to /var/www/conf/php.ini

root@gsm:~> cp /usr/local/share/examples/php5/php.ini-recommended /var/www/conf/php.ini
root@gsm:~> pkg_add php5-mysql-5.1.4p0
php5-mysql-5.1.4p0: complete
--- php5-mysql-5.1.4p0 -------------------
Enable this module in php.ini using the following command:

      /usr/local/sbin/phpxs -a mysql
root@gsm:~> /usr/local/sbin/phpxs -a mysql
Activating extension : mysql
root@gsm:~> pkg_add php5-imap-5.1.4p0
php5-imap-5.1.4p0:c-client-4.61p0: complete
php5-imap-5.1.4p0: complete
--- php5-imap-5.1.4p0 -------------------
Enable this module in php.ini using the following command:

      /usr/local/sbin/phpxs -a imap

root@gsm:~> /usr/local/sbin/phpxs -a imap
Activating extension : imap
root@gsm:~> pkg_add php5-pear
php5-pear-5.1.4p1: complete

Teraz przed dodaniem php5-gd-5.1.4p0-no_x11 należy instalnąć xbase40.tgz w tym celu:


root@gsm:~> wget ftp://spargel.kd85.com/pub/OpenBSD/4.0/i386/xbase40.tgz
root@gsm:~> tar -C / -xzphf xbase40.tgz

W tym momencie musisz rebotnąć serwer jeżeli nie możesz to polecam man ldconfig ja się nie wczytywałe i zrobiłem reboot. Następnie kontynułujemy instalacje:


root@gsm:~> pkg_add php5-gd-5.1.4p0-no_x11
root@gsm:~> /usr/local/sbin/phpxs -a gd
Activating extension : bz2
root@gsm:~> mkdir /var/www/php
root@gsm:~> mkdir /var/www/php/includes
root@gsm:~> cp -pR /usr/local/lib/php/* /var/www/php/includes

I to by było na tyle, httpd.conf zajmiemy się przy konfiguracjach.

Góra strony

Postfix + ....

Najsamprzód :

root@gsm:~> pkg_add courier-imap
courier-imap-3.0.5p4:gdbm-1.8.3p0: complete
courier-imap-3.0.5p4: complete
--- courier-imap-3.0.5p4 -------------------
Example config files for Courier-IMAP have been installed
in /usr/local/share/examples/courier-imap.

Copy all of the files to /etc/courier-imap and
edit them to your site's needs.  Pay particular attention to
the details in imapd.cnf, and read ssl(8) if necessary.
You MUST set the CN in imapd.cnf to the hostname by which
your IMAP server is accessed, or else clients will complain.

When this is done, you can use the 'mkimapdcert' script
to automatically generate a server certificate, which
is installed into /etc/ssl/private/imapd.pem

To control the daemon use /usr/local/libexec/imapd.rc and
/usr/local/libexec/imapd-ssl.rc, and to run the authdaemon,
place the following in /etc/rc.local:

mkdir -p /var/run/courier-imap
/usr/local/libexec/authlib/authdaemond start

If you require userdb or quota support, then install the
courier-utils package.
root@gsm:~> mkdir -p /var/run/courier-imap
root@gsm:~> pkg_add courier-mysql
courier-mysql-3.0.5p1: complete
root@gsm:~> pkg_add courier-pop3
courier-pop3-3.0.5p1: complete
--- courier-pop3-3.0.5p1 -------------------
You now need to copy the Courier-POP3 configuration files to
/etc/courier-imap from /usr/local/share/examples/courier-imap
and edit them appropriately.

To use POP3-SSL, be sure to read ssl(8) and run the
mkpop3dcert script if you require a self-signed certificate
cp -r /usr/local/share/examples/courier-imap/ /etc/courier-imap

Pora na urzycie portów, bo inaczej nie uzyskamy postfix'a z obsługą mysql'a

root@gsm:~> cd /usr/ports/mail/postfix/stable
root@gsm:~> make show=FLAVORS
root@gsm:~> env FLAVOR="sasl2 mysql" make

Troszkę się pokompiluje dociągając to co potrzeba, a następnie


root@gsm:~> env FLAVOR="sasl2 mysql" make install

root@gsm:~> /usr/local/sbin/postfix-enable
root@gsm:~> touch /usr/local/lib/sasl2/smtpd.conf

i w zawartość /usr/local/lib/sasl2/smtpd.conf wpisujemy

pwcheck_method: saslauthd
log_level: 3
mech_list: PLAIN LOGIN
saslauthd_path: /var/run/sasl2/mux

Nastęnie


root@gsm:/usr/ports/mail/postfix/stable> mkdir /var/spool/postfix/vmail
root@gsm:/usr/ports/mail/postfix/stable> chown -R _postfix._postfix /var/spool/postfix/vmail
root@gsm:/usr/ports/mail/postfix/stable> chmod -R 771 /var/spool/postfix/vmail

W zasadzie wszystko już mamy, pora teraz zająć sie konfiguracjiami, zaczniemy od postfixa

Postfix

root@gsm:/usr/ports/mail/postfix/stable> cd /etc/postfix/
root@gsm:/etc/postfix> vi main.cf

Nie będę opisywał każdej opcji po prostu tak musi być ;)

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
mail_owner = _postfix
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
debugger_command =
     PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
     xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/sbin/newaliases
mailq_path = /usr/local/sbin/mailq
setgid_group = _postdrop
html_directory = /usr/local/share/doc/postfix/html
manpage_directory = /usr/local/man
sample_directory = /etc/postfix
readme_directory = /usr/local/share/doc/postfix/readme
############
# general settings
myhostname = mail.backup.netbsd.net.pl
myorigin = $myhostname
mydestination = $myhostname
mynetworks = 127.0.0.0/8
#relay_domains = hash:/etc/mail/relay_domains
alias_database = hash:/etc/mail/aliases
alias_maps = hash:/etc/mail/aliases
# postfixadmin stuff
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:507
virtual_mailbox_base = /var/spool/postfix/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 507
virtual_transport = virtual
virtual_uid_maps = static:507
# Additional for quota support
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes
# store backup mx domains in mysql
#relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf
#sasl2 stuff
broken_sasl_auth_clients = yes
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,
 reject_rbl_client opm.blitzed.org,
 reject_rbl_client list.dsbl.org,
 reject_rbl_client bl.spamcop.net,
 reject_rbl_client sbl-xbl.spamhaus.org
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous

Tereaz stworzymy konfigi pod mysql'a

root@gsm:/etc/postfix> touch mysql_relay_domains_maps.cf mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf

mysql_relay_domains_maps.cf


user = postfix
password = djeIJ786dadasd23123kpqsxz
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'

mysql_virtual_alias_maps.cf


user = postfix
password = djeIJ786dadasd23123kpqsxz
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s'

mysql_virtual_domains_maps.cf


user = postfix
password = djeIJ786dadasd23123kpqsxz
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'

mysql_virtual_mailbox_limit_maps.cf


user = postfix
password = djeIJ786dadasd23123kpqsxz
hosts = localhost
dbname = postfix
query = SELECT quota FROM mailbox WHERE username='%s'

mysql_virtual_mailbox_maps.cf


user = postfix
password = djeIJ786dadasd23123kpqsxz
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s'

Następnie zmieniamy prawa

root@gsm:/etc/postfix> chown root.wheel mysql_virtual_mailbox_maps.cf
root@gsm:/etc/postfix> chmod o-r mysql_*
root@gsm:/etc/postfix> chmod g+r mysql_virtual_mailbox_maps.cf

Courier-Imap


root@gsm:/etc/postfix> cd /etc/courier-imap/
root@gsm:/etc/courier-imap> vi authmysqlrc

authmysqlrc


MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD djeIJ786dadasd23123kpqsxz
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
DEFAULT_DOMAIN mail.backup.netbsd.net.pl
MYSQL_UID_FIELD '507'
MYSQL_GID_FIELD '507'
MYSQL_LOGIN_FIELD username
MYSQL_CRYPT_PWFIELD password
MYSQL_HOME_FIELD '/var/spool/postfix/vmail'
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
Góra strony

Apache, httpd.conf

Przysła kryska na matyska. Dopisujemy lub ustawiamy to co poniżej do /var/www/conf/httpd.conf


ServerName backup.netbsd.net.pl
DirectoryIndex index.php index.html index.htm
AddType application/x-httpd-php .php
AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz

Nie będę pisał o konfiguracji pod Virtualhosty bo to chyba oczywiste

Góra strony

Postfixadmin


root@obsd:/etc/courier> cd /var/www/htdocs/
root@obsd:/var/www/htdocs> wget http://switch.dl.sourceforge.net/sourceforge/postfixadmin/postfixadmin-2.2.0-RC1.tar.gz
root@obsd:/var/www/htdocs> tar zxvf postfixadmin-2.2.0-RC1.tar.gz
root@obsd:/var/www/htdocs> mv postfixadmin-2.2.0-rc1/ postfixadmin
root@obsd:/var/www/htdocs> cd postfixadmin

Skonfigurujemy plik konfiguracyjny config.inc.php


root@gsm:/var/www/htdocs/postfixadmin> vi config.inc.php

Nie będe cytował całego pliku tylko to co nas interesuje


$CONF['configured'] = true;
$CONF['postfix_admin_url'] = 'http://backup.netbsd.net.pl/postfixadmin/';
// 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'] = 'postfixadmin';
$CONF['database_password'] = 'djeIJ786dadasd23123kpqsxz'; //Ustawiamy hasło
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';

// Site Admin
// Define the Site Admins email address below.
// This will be used to send emails from to create mailboxes.
$CONF['admin_email'] = 'postmaster@backup.netbsd.net.pl';

STOP !!

Góra strony

Mysql

Przyszła pora na mysql'a, odpalamy go w następujący sposób

root@gsm:~> /usr/local/bin/mysqld_safe --log --open-files-limit=256 --default-character-set=latin2 &

I logujemy się do niego w celu zmiany hasła


root@gsm:~> mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.24a-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
mysql> use mysql;
Database changed
mysql> UPDATE user SET password=PASSWORD('muciosgracjastajnosos') WHERE User="root" AND Host="localhost";
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> quit ;

Powracamy do postfixadmina, edytujemy plik:


root@gsm:~> cd /var/www/htdocs/postfixadmin/
root@gsm:/var/www/htdocs/postfixadmin> vi DATABASE_MYSQL.TXT

W pliku tym trzeba odhaszować kilka linijek i ustawić hasło które podaliśmy w plikać dla postfiksa. Wklejam tylko początek bo to jest najistotniejsze:


USE mysql;
CREATE DATABASE IF NOT EXISTS postfix;
# Postfix user & password
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfix',password('djeIJ786dadasd23123kpqsxz'));
# Postfix Admin user & password
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfixadmin',password('djeIJ786dadasd23123kpqsxz'));
# Priviledges
INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','postfix','postfix','Y');
INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv) VALUES ('localhost', 'postfix', 'postfixadmin', 'Y', 'Y', 'Y', 'Y');
FLUSH PRIVILEGES;
GRANT USAGE ON postfix.* TO postfix@localhost;
GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfix@localhost;
GRANT USAGE ON postfix.* TO postfixadmin@localhost;
GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfixadmin@localhost;
USE postfix;

I klepiemy


root@gsm:/var/www/htdocs/postfixadmin> mysql -u root -p < DATABASE_MYSQL.TXT
Enter password:

Podajem hasło które przed chwilą ustawiliśmy czli muciosgracjastajnosos

Trzeba także pozmieniać troszkę uprawnień


root@gsm:/var/www/htdocs/postfixadmin> chown -R www.www ../postfixadmin/
root@gsm:/var/www/htdocs/postfixadmin> cd admin/
root@gsm:/var/www/htdocs/postfixadmin/admin> chmod 640 *.php
root@gsm:/var/www/htdocs/postfixadmin/admin> cd ../images/
root@gsm:/var/www/htdocs/postfixadmin/images> chmod 640 *.png
root@gsm:/var/www/htdocs/postfixadmin/images> cd ../languages/
root@gsm:/var/www/htdocs/postfixadmin/languages>  chmod 640 *.lang
root@gsm:/var/www/htdocs/postfixadmin/languages> cd ../templates/
root@gsm:/var/www/htdocs/postfixadmin/templates> chmod 640 *.tpl
root@gsm:/var/www/htdocs/postfixadmin/templates> cd ../users/
root@gsm:/var/www/htdocs/postfixadmin/users> chmod 640 *.php

Pozostaje odalić http://backup.netbsd.net.pl/postfixadmin i dokończyć konfigiracje, proszę nie zapomniec o usunięciu pliku setup.php Góra strony

OLD files

Pora dopisac co nie co tu i ówdzie, zaczniemy od /etc/rc.conf szukająć httpd_flags=NO i zmieniamy, tak samo named_flags=NO


httpd_flags="-u"    # for normal use: "" (or "-DSSL" after reading ssl(8))
named_flags=""      # for normal use: ""

Następny plik to /etc/rc.conf.local, jeżeli go nie ma to tworzymy go wpisujemy:


mysql=YES # for stop service: NO
syslogd_flags="-a /var/spool/postfix/dev/log"
sendmail_flags="-bd -q30m"

Kolejny plik to /etc/rc.local

Achtung achtung... !!!

proszę o sprawdzenie wszystkich kopiowanych plików, jak robisz Ctrl+c i wklejsza do vim'a to może załamać ci linie

d

echo -n 'starting local daemons:'

if [ X"${mysql}" == X"YES" -a -x /usr/local/bin/mysqld_safe ]; then
    echo -n " mysqld"; /usr/local/bin/mysqld_safe --log --open-files-limit=256 --default-character-set=latin2 &
    for i in 1 2 3 4 5 6; do
        if [ -S /var/run/mysql/mysql.sock ]; then
            break
            else
            sleep 1
            echo -n "."
        fi
    done
    # Apache chroot Settings
    mkdir -p /var/www/var/run/mysql
    sleep 2
    ln -f /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock
    # Postfix chroot Settings
    if [ "X${postfix_flags}" != X"NO" ]; then
        mkdir -p /var/spool/postfix/var/run/mysql
        sleep 2
        ln -f /var/run/mysql/mysql.sock /var/spool/postfix/var/run/mysql/mysql.sock
    fi
fi
#Courier-Imap settings
if [ -x /usr/local/libexec/imapd.rc -a -x /usr/local/libexec/imapd-ssl.rc ]; then
    mkdir -p /var/run/courier-imap
    echo -n ' imapd'; /usr/local/libexec/imapd.rc start
#   echo -n ' imapd-ssl'; /usr/local/libexec/imapd-ssl.rc start
fi
#Courier-Pop3d settings
if [ -x /usr/local/libexec/pop3d.rc -a -x /usr/local/libexec/pop3d-ssl.rc ]; then
    echo -n ' pop3d'; /usr/local/libexec/pop3d.rc start
#   echo -n ' pop3d-ssl'; /usr/local/libexec/pop3d-ssl.rc start
fi
#Cyrus SASL Authentication Daemon
if [ -x /usr/local/sbin/saslauthd ]; then
    mkdir -p /var/spool/postfix/var/run/sasl2
    sleep 2
    echo -n ' saslauthd'; /usr/local/sbin/saslauthd -r -m /var/spool/postfix/var/run/sasl2 -a rimap -O 127.0.0.1
fi

echo '.'

Nie zapomnijmi o sendmailu w tym celu :


root@gsm:~> crontab -e

I zahaszować linie


# sendmail clientmqueue runner
#*/30   *       *       *       *       /usr/sbin/sendmail -L sm-msp-queue -Ac -q

Wspominałem też coś o revdnsach ;] Mianowicie chodzi o to, że jeżeli masz /24 to provaider ma obowiązek dać ci możliwość własnej konfiguracji revdns'ów. Zrobimy to w następujący sposób


root@gsm:/var/named> cd /var/named/standard/
root@gsm:/var/named/standard> touch 18.194.91.in-addr.arpa
root@gsm:/var/named/standard> chown named.named 18.194.91.in-addr.arpa

Poniżej przykład


; $OpenBSD: db.18.194.91.in-addr.arpa,v 1.2 2005/02/07 06:08:10 david Exp $

$ORIGIN 18.194.91.in-addr.arpa.
$TTL 6h
@   IN  SOA bsd.skylan.com.pl. root.skylan.com.pl. (
        2008012201   ; serial
        1h  ; refresh
        30m ; retry
        7d  ; expiration
        1h )    ; minimum
    NS  bsd.skylan.com.pl.
    NS  giga.proinfo.com.pl.

1   PTR skylan.com.pl.
10  PTR kochany.misio.pl.
11  PTR netiamobile.com.pl.
12  PTR misio.be.
13  PTR obsd.eu.org.
$GENERATE   14-254  $   PTR ip-91-194-18-$.skylan.com.pl.

Pozostaje dopisać go do named.conf


// PTR
zone "18.194.91.in-addr.arpa" {
    type master;
    file "standard/18.194.91.in-addr.arpa";
    notify yes;
};
Góra strony

phpMyAdmin

Też się przyda


root@gsm:~> cd /var/www/htdocs/
root@gsm:/var/www/htdocs> wget http://ovh.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.11.4-all-languages.tar.bz2
root@gsm:/var/www/htdocs> bzip2 -dc phpMyAdmin-2.11.4-all-languages.tar.bz2 |tar xvf -
root@gsm:/var/www/htdocs> mv phpMyAdmin-2.11.4-all-languages pM
root@gsm:/var/www/htdocs> cd pM/
root@gsm:/var/www/htdocs/pM> mv config.sample.inc.php config.inc.php
root@gsm:/var/www/htdocs/pM> vi config.inc.php

I wystarczy zmienić


$cfg['blowfish_secret'] = 'koeoj[re665708&*&dkowe[wed'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Wsjo odnośnie phpMyAdmin można się logować

Góra strony

RoundCube Webmail

Co tu dużo pisać, bardzo fajny, ładny ..... :P nada się


root@gsm:~> cd /var/www/htdocs/
root@gsm:/var/www/htdocs> wget http://switch.dl.sourceforge.net/sourceforge/roundcubemail/roundcubemail-0.1-rc2.tar.gz
root@gsm:/var/www/htdocs> tar zxvf roundcubemail-0.1-rc2.tar.gz
root@gsm:/var/www/htdocs> mv roundcubemail-0.1-rc2 roundcubemail
root@gsm:/var/www/htdocs> cd roundcubemail
root@gsm:/var/www/htdocs/roundcubemail> chown -R root.www temp
root@gsm:/var/www/htdocs/roundcubemail> chown -R root.www logs/
root@gsm:/var/www/htdocs/roundcubemail> cd SQL/
root@gsm:/var/www/htdocs/roundcubemail/SQL> vi mysql.initial.sql

I teraz mały myk, trzeba do tego pliku mysql.initial.sql dopisać co nie co na początku pliku


USE mysql;
CREATE USER 'roundcubemail'@'localhost' IDENTIFIED BY 'haslosendpocztas';
GRANT USAGE ON * . * TO 'roundcubemail'@'localhost' IDENTIFIED BY 'haslosendpocztas' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `roundcubemail` ;
GRANT ALL PRIVILEGES ON `roundcubemail` . * TO 'roundcubemail'@'localhost';
USE roundcubemail;

Dla pewności pokaże nieco więcej


USE mysql;
CREATE USER 'roundcubemail'@'localhost' IDENTIFIED BY 'haslosendpocztas';
GRANT USAGE ON * . * TO 'roundcubemail'@'localhost' IDENTIFIED BY 'haslosendpocztas' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `roundcubemail` ;
GRANT ALL PRIVILEGES ON `roundcubemail` . * TO 'roundcubemail'@'localhost';
USE roundcubemail;
CREATE TABLE `cache` (
  `cache_id` int(10) unsigned NOT NULL auto_increment,
  `user_id` int(10) unsigned NOT NULL default '0',
  `session_id` varchar(40) default NULL,
  `cache_key` varchar(128) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `data` longtext NOT NULL,
  PRIMARY KEY  (`cache_id`),
  KEY `user_id` (`user_id`),
  KEY `cache_key` (`cache_key`),
  KEY `session_id` (`session_id`)
);

-- --------------------------------------------------------

--
-- Table structure for table `contacts`
--

Pozostaje wykonać instalacje bazy


root@gsm:/var/www/htdocs/roundcubemail/SQL> mysql -u root -p < mysql.initial.sql
Enter password:

I podać hało muciosgracjastajnosos. Pozostraje skonfigurować roundcubemail


root@gsm:/var/www/htdocs/roundcubemail> cd config/
root@gsm:/var/www/htdocs/roundcubemail/config> mv db.inc.php.dist db.inc.php
root@gsm:/var/www/htdocs/roundcubemail/config> mv main.inc.php.dist main.inc.php
root@gsm:/var/www/htdocs/roundcubemail/config> vi db.inc.php

Zmieniamy


$rcmail_config['db_dsnw'] = 'mysql://roundcubemail:haslosendpocztas@localhost/roundcubemail';

Kolej na main.inc.php


root@gsm:/var/www/htdocs/roundcubemail/config> vi main.inc.php

I zmieniamy


$rcmail_config['default_host'] = 'http://backup.netbsd.net.pl/roundcubemail/';
$rcmail_config['ip_check'] = TRUE;
$rcmail_config['locale_string'] = 'pl';

W zasadzie można się już logną i w pełni używać RoundCube jednakże polecam lekture main.inc.php w celu dopasowania pod swoje potrzeby, plik jest dobrze opisany.

Autor

Marcin Stryjski aka Tata (marcin at obsd dot eu dot org)

Góra strony