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:
* Wstęp
* Pierwsze kroki, założenia
* Named
* Apache + PHP
* Postfix + ....
* Apache httpd.conf
* Postfixadmin
* Mysql
* Old files
* phpMyAdmin
* RoundCube Webmail
* Autor
[NOTE]
UKład strony troszeczkę pokrzaczył to i owo dlatego odsyłam do tego dokumetu
[/NOTE]
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
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
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
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





