petro@aromat:~$ sudo apt-get install postfix postfix-mysql postfix-ldap postfix-doc libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql dovecot-imapd dovecot-pop3d dovecot-common mysql-client mysql-server apache2 libapache2-mod-php5 php5 php5-mysql
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Уже установлена самая новая версия libsasl2-2.
Уже установлена самая новая версия libsasl2-modules.
Уже установлена самая новая версия libsasl2-modules-sql.
Уже установлена самая новая версия postfix.
Уже установлена самая новая версия postfix-doc.
Уже установлена самая новая версия postfix-ldap.
Уже установлена самая новая версия postfix-mysql.
Уже установлена самая новая версия sasl2-bin.
Уже установлена самая новая версия libpam-mysql.
Уже установлена самая новая версия apache2.
Уже установлена самая новая версия dovecot-common.
Уже установлена самая новая версия dovecot-imapd.
Уже установлена самая новая версия dovecot-pop3d.
Уже установлена самая новая версия libapache2-mod-php5.
Уже установлена самая новая версия mysql-client.
Уже установлена самая новая версия mysql-server.
Уже установлена самая новая версия php5.
Уже установлена самая новая версия php5-mysql.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 171 пакетов не обновлено.
petro@aromat:~$ mysqladmin -u root -p create mail
Enter password:
mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'mail'; database exists'
petro@aromat:~$ cat /etc/mysql/my.cnf | grep bind
bind-address = 127.0.0.1
petro@aromat:~$ sudo service mysql restart
mysql start/running, process 7920
petro@aromat:~$ sudo netstat -tap | grep mysql
tcp 0 0 localhost:mysql *:* LISTEN 7920/mysqld
tcp 0 0 localhost:mysql aromat.com.ua:43770 TIME_WAIT -
petro@aromat:~$ sudo nano /etc/postfix/mysql-virtual_domains.cf
petro@aromat:~$ sudo chmod o= /etc/postfix/mysql-virtual_*.cf
petro@aromat:~$ sudo chgrp postfix /etc/postfix/mysql-virtual_*.cf
petro@aromat:~$ ls -al /etc/postfix/mysql-virtual*.cf
-rw-r----- 1 root postfix 135 2012-04-02 16:22 /etc/postfix/mysql-virtual_domains.cf
-rw-r----- 1 root postfix 120 2012-04-02 16:24 /etc/postfix/mysql-virtual_email2email.cf
-rw-r----- 1 root postfix 133 2012-04-02 16:23 /etc/postfix/mysql-virtual_forwardings.cf
-rw-r----- 1 root postfix 189 2012-04-02 16:24 /etc/postfix/mysql-virtual_mailboxes.cf
-rw-r----- 1 root postfix 129 2012-04-02 16:24 /etc/postfix/mysql-virtual_transports.cf
petro@aromat:~$ sudo groupadd -g 5000 vmail \\
Usage: groupadd [options] GROUP
Options:
-f, --force exit successfully if the group already exists,
and cancel -g if the GID is already used
-g, --gid GID use GID for the new group
-h, --help display this help message and exit
-K, --key KEY=VALUE override /etc/login.defs defaults
-o, --non-unique allow to create groups with duplicate
(non-unique) GID
-p, --password PASSWORD use this encrypted password for the new group
-r, --system create a system account
petro@aromat:~$ sudo groupadd -g 5000 vmail
groupadd: группа vmail уже существует
petro@aromat:~$ sudo useradd -g vmail -u 5000 vmail -d /home/vmail -m
useradd: пользователь vmail уже существует
petro@aromat:~$ sudo postconf -e 'myhostname = aromat.com.ua'
petro@aromat:~$ sudo postconf -e 'mydestination = aromat.com.ua, localhost, localhost.localdomain'
petro@aromat:~$ sudo postconf -e 'mynetworks = 127.0.0.0/8'
petro@aromat:~$ sudo postconf -e 'virtual_alias_domains ='
petro@aromat:~$ sudo postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf'
petro@aromat:~$ sudo postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf'
petro@aromat:~$ sudo postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf'
petro@aromat:~$ sudo postconf -e 'virtual_mailbox_base = /home/vmail'
petro@aromat:~$ sudo postconf -e 'virtual_uid_maps = static:5000'
petro@aromat:~$ sudo postconf -e 'virtual_gid_maps = static:5000'
petro@aromat:~$ sudo postconf -e 'smtpd_sasl_auth_enable = yes'
petro@aromat:~$ sudo postconf -e 'broken_sasl_auth_clients = yes'
petro@aromat:~$ sudo postconf -e 'smtpd_sasl_authenticated_header = yes'
petro@aromat:~$ sudo postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'
petro@aromat:~$ sudo postconf -e 'smtpd_use_tls = yes'
petro@aromat:~$ sudo postconf -e 'smtpd_tls_cert_file = /etc/postfix/smtp.crt'
petro@aromat:~$ sudo postconf -e 'smtpd_tls_key_file = /etc/postfix/smtp.key'
petro@aromat:~$ sudo postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf'
petro@aromat:~$ sudo postconf -e 'virtual_create_maildirsize = yes'
petro@aromat:~$ sudo postconf -e 'virtual_mailbox_extended = yes'
petro@aromat:~$ sudo postconf -e '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_maps'
petro@aromat:~$ mkdir ~/CA_clean
petro@aromat:~$ nano ca.conf
petro@aromat:~$ sudo openssl genrsa -des3 -out ca.key 4096
Generating RSA private key, 4096 bit long modulus
...........................++
...................................................................................++
e is 65537 (0x10001)
Enter pass phrase for ca.key:
Verifying - Enter pass phrase for ca.key:
petro@aromat:~$ openssl req -new -x509 -nodes -sha1 -days 3650 -key ca.key -out ca.crt -config ca.conf
Enter pass phrase for ca.key:
petro@aromat:~$ openssl pkcs12 -export -in ca.cer -inkey ca.key -out ca.pfx
Error opening input file ca.cer
ca.cer: No such file or directory
unable to write 'random state'
petro@aromat:~$ openssl x509 -trustout -inform PEM -in ca.crt -outform DER -out ca.pfx
petro@aromat:~$ mkdir SERVERS
petro@aromat:~$ mkdir SERVERS/aromat.com.ua
petro@aromat:~$ nano SERVERS/aromat.com.ua/openssl.conf
petro@aromat:~$ sudo openssl genrsa -passout pass:1234 -des3 -out SERVERS/oban.aaa.ru/server.key.1 2048
SERVERS/oban.aaa.ru/server.key.1: No such file or directory
3077875864:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('SERVERS/oban.aaa.ru/server.key.1','w')
3077875864:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
petro@aromat:~$ sudo openssl genrsa -passout pass:1234 -des3 -out SERVERS/aromat.com.ua/server.key.1 2048
Generating RSA private key, 2048 bit long modulus
......................................................................+++
.......................................+++
e is 65537 (0x10001)
petro@aromat:~$ openssl rsa -passin pass:1234 -in SERVERS/aromat.com.ua/server.key.1 -out SERVERS/aromat.com.ua/server.key
writing RSA key
petro@aromat:~$ openssl req -config SERVERS/aromat.com.ua/openssl.conf -new -key SERVERS/aromat.com.ua/server.key -out SERVERS/aromat.com.ua/server.csr
petro@aromat:~$ rm -f SERVERS/aromat.com.ua/server.key.1
petro@aromat:~$ mkdir ca.db.certs
petro@aromat:~$ echo '01' > ca.db.serial
petro@aromat:~$ cp /dev/null ca.db.index
petro@aromat:~$ sudo openssl ca -batch -config sign.config -out SERVERS/aromat.com.ua/server.crt -infiles SERVERS/aromat.com.ua/server.csr
Using configuration from sign.config
Enter pass phrase for ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'UA'
stateOrProvinceName :PRINTABLE:'Ukraine Region'
localityName :PRINTABLE:'Kharkov'
organizationName :PRINTABLE:'Aromat OOO.'
commonName :PRINTABLE:'aromat.com.ua'
emailAddress :IA5STRING:'admin@aromat.com.ua'
Certificate is to be certified until Apr 1 14:03:31 2017 GMT (1825 days)
Write out database with 1 new entries
Data Base Updated
petro@aromat:~$ openssl verify -CAfile ca.crt SERVERS/aromat.com.ua/server.crt
SERVERS/aromat.com.ua/server.crt: OK
petro@aromat:~$ rm -f ca.db.serial.old
petro@aromat:~$ rm -rf ca.db.index.old
petro@aromat:~$ sudo cp SERVERS/aromat.com.ua/server.key /etc/ssl/private/aromat.key
petro@aromat:~$ sudo cp SERVERS/oban.aaa.ru/server.crt /etc/ssl/certs/aromat.crt
cp: невозможно выполнить stat для «SERVERS/oban.aaa.ru/server.crt»: Нет такого файла или каталога
petro@aromat:~$ sudo cp SERVERS/aromat.com.ua/server.crt /etc/ssl/certs/aromat.crt
petro@aromat:~$ sudo chmod og= /etc/ssl/private/aromat.key
petro@aromat:~$ sudo mkdir /usr/share/ca-certificates/com
mkdir: невозможно создать каталог «/usr/share/ca-certificates/com»: Файл существует
petro@aromat:~$ sudo cp ca.crt /usr/share/ca-certificates/com/
petro@aromat:~$ sudo dpkg-reconfigure ca-certificates
Updating certificates in /etc/ssl/certs... WARNING: Skipping duplicate certificate UbuntuOne-Go_Daddy_Class_2_CA.pem
WARNING: Skipping duplicate certificate UbuntuOne-Go_Daddy_Class_2_CA.pem
WARNING: Skipping duplicate certificate cert_igca_rsa.pem
WARNING: Skipping duplicate certificate cert_igca_rsa.pem
3 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
petro@aromat:~$ sudo mkdir -p /var/spool/postfix/var/run/saslauthd
petro@aromat:~$ sudo nano /etc/default/saslauthd
petro@aromat:~$ sudo nano /etc/pam.d/smtp
petro@aromat:~$ sudo chmod o= /etc/pam.d/smtp
petro@aromat:~$ sudo nano /etc/postfix/sasl/smtpd.conf
petro@aromat:~$ sudo chown postfix /etc/postfix/sasl/smtpd.conf
petro@aromat:~$ sudo chmod og= /etc/postfix/sasl/smtpd.conf
petro@aromat:~$ sudo adduser postfix sasl
Пользователь `postfix' уже является членом группы `sasl'.
petro@aromat:~$ sudo /etc/init.d/postfix restart
* Stopping Postfix Mail Transport Agent postfix [ OK ]
* Starting Postfix Mail Transport Agent postfix [ OK ]
petro@aromat:~$ sudo /etc/init.d/saslauthd restart
* Stopping SASL Authentication Daemon saslauthd [ OK ]
* Starting SASL Authentication Daemon saslauthd [ OK ]
petro@aromat:~$ perl -MMIME::Base64 -e 'print encode_base64("admin\@com.ua\0admin\@com.ua\0secret");'
YWRtaW5AY29tLnVhAGFkbWluQGNvbS51YQBzZWNyZXQ=
petro@aromat:~$ telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 aromat.com.ua ESMTP
421 4.4.2 aromat.com.ua Error: timeout exceeded
Connection closed by foreign host.
mail.log
Apr 2 17:18:28 aromat postfix/proxymap[12470]: warning: connect to mysql server 127.0.0.1: Access denied for user 'aroamt_admin'@'aromat.com.ua' (using password: YES)
Apr 2 17:18:28 aromat postfix/proxymap[12470]: warning: connect to mysql server 127.0.0.1: Access denied for user 'aromat_admin'@'aromat.com.ua' (using password: YES)
Apr 2 17:18:28 aromat postfix/trivial-rewrite[12553]: fatal: proxy:mysql:/etc/postfix/mysql-virtual_domains.cf(0,lock|fold_fix): table lookup problem
Apr 2 17:18:29 aromat postfix/smtpd[12542]: warning: problem talking to service rewrite: Success
Apr 2 17:18:29 aromat postfix/cleanup[12469]: warning: problem talking to service rewrite: Connection reset by peer
Apr 2 17:18:29 aromat postfix/master[12464]: warning: process /usr/lib/postfix/trivial-rewrite pid 12553 exit status 1
Apr 2 17:18:29 aromat postfix/master[12464]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling
Apr 2 17:18:40 aromat postfix/smtpd[12554]: warning: cannot get RSA certificate from file /etc/postfix/smtp.crt: disabling TLS support
Apr 2 17:18:40 aromat postfix/smtpd[12554]: warning: TLS library problem: 12554:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/postfix/smtp.crt','r'):
Apr 2 17:18:40 aromat postfix/smtpd[12554]: warning: TLS library problem: 12554:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
Apr 2 17:18:40 aromat postfix/smtpd[12554]: warning: TLS library problem: 12554:error:140DC002:SSL routines:SSL_CTX_use_certificate_chain_file:system lib:ssl_rsa.c:722:
Apr 2 17:18:40 aromat postfix/smtpd[12554]: connect from swift.flexo.net.ua[195.60.67.90]
Apr 2 17:18:40 aromat postfix/smtpd[12554]: disconnect from swift.flexo.net.ua[195.60.67.90]
Apr 2 17:18:50 aromat dovecot: pop3-login: Disconnected (tried to use disabled plaintext auth): rip=192.168.1.179, lip=192.168.1.254
Apr 2 17:18:54 aromat postfix/smtpd[12554]: connect from swift.flexo.net.ua[195.60.67.90]
Apr 2 17:19:09 aromat dovecot: pop3-login: Disconnected (tried to use disabled plaintext auth): rip=192.168.1.13, lip=192.168.1.254
Пользователь решил продолжить мысль 02 Апреля 2012, 18:24:39:
что может быть не так с БД
mysql> use mail;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+----------------+
| Tables_in_mail |
+----------------+
| domains |
| forwardings |
| transport |
| users |
+----------------+
4 rows in set (0.00 sec)
mysql> selct * from domains
-> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'selct * from domains' at line 1
mysql> select * from domains;
+----------------+
| domain |
+----------------+
| aaa.ru |
| aromat.com.ua |
| baromat.com.ua |
| bbb.ru |
| com.ua |
+----------------+
5 rows in set (0.04 sec)
mysql>