Servidor Email Com POSTFIX
Servidor Email Com POSTFIX
Servidor Email Com POSTFIX
szazz.com.br/2010/12/06/servidor-de-e-mail-com-postfix-postfixadmin-roundcube-mysql-pop-smtp-e-imap-autenticado/ 1/6
Servidor de E-mail Com Postfix + PostfixAdmin +
Roundcube +MySQL + POP, SMTP e IMAP Autenticado
06/12/2010 POSTFIX 0 COMMENTS
By DK (Dheykson Santos)
Neste post iremos aprender configurar um servidor de e-mail completo, veremos cada passo detalhadamente.
Este post surgiu devido durante muito tempo eu ter tentado criar um servidor de e-mail, e no encontrar material
em portugus com tanta facilidade, ento com essa dificuldade toda eu resolvi junta vrios tutoriais em um
nico post.
Espero que gostem, e qualquer dvida s enviar um e-mail para [email protected].
Mos a obra.
1. Instalando o Postfix
Este servio responsvel pelo servio conhecido como SMTP.
$ sudo apt-get install -y postfix postfix-mysql
Aparecer alguns questionamento, basta apenas selecionar as opoes.
- OK
- Site Internet
- [email protected] ( coloque aqui seu e-mail do domnio para qual voc est criando seu servidor ).
$ sudo cp -p /usr/share/postfix/main.cf.debian /etc/postfix/main.cf
Estamos copiando um arquivo padro de configurao do postfix, arquivo chamado main.cf.
2. Pacotes de Autenticao POP3/IMAP
Estes pacotes so para estabelecer conexo segura entre o cliente pop3/imap e o servidor de e-mails.
$ sudo apt-get install -y courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap
courier-imap-ssl
3. Pacotes de Autenticao SMTP
J estes pacotes sero utilizados para autenticar usurios para envio de e-mails no deixando que um spammer
fique enviando e-mail a partir do nosso servidor.
$ sudo apt-get install -y libsasl2-modules libsasl2-modules-sql openssl sasl2-bin libpam-mysql
4. Criando o Banco de Dados para o Postfix
4.1. Baixo o arquivo .sql abaixo para criarmos a database e as tabelas.
wget http://www.dheykson.com.br/downloads/Postfix.sql
OBS.: No esquecer de editar o arquivo com o comando vim e trocar a senha ( SENHA ).
4.2 Vamos instalar o Mysql-server
$ sudo apt-get install -y mysql-server
4.3 Vamor importar para o myslq, o banco responsvel pelos mapas do postfix.
$ mysql -uroot -p < Postfix.sql
OBS.: Digite a senha cadastrada na instalao do mysql.
5. Configurando os mapas do Postfix
Uma vez que as tabelas foram criadas, configura o postfix para realizar
o mapeamento editando cada um dos arquivos, e no esquecendo de alterar as
credenciais de acesso ao banco de dados.
$ sudo vi /etc/postfix/mysql_virtual_alias_maps.cf
user = postfix
Search
POSTS RECENTES
Qual o tamanho dos bancos de dados
em sua instncia MySQL?
Usando chave publica para conexo
SSH
Design Patterns Flyweight
Morte de qualquer maneira!
Contos sem baboseiras
LAST TWEET
@chevectra87 - 2 weeks, 5
days ago
Morre Hugo Chvez
http://t.co/2ug5w8M2fV
#mortehugochavez
TO LISTEN
TAGS
SOBRE
26/03/13 :: SZAZZ :: Servidor de E-mail Com Postfix + PostfixAdmin + Roundcube +MySQL + POP, SMTP e IMAP Autenticado
szazz.com.br/2010/12/06/servidor-de-e-mail-com-postfix-postfixadmin-roundcube-mysql-pop-smtp-e-imap-autenticado/ 2/6
password = SENHA(cadastrada no arquivo Postfix.sql)
hosts = 127.0.0.1
dbname = postfix
table = alias
select_field = goto
where_field = address
$ sudo vi /etc/postfix/mysql_virtual_domains_maps.cf
user = postfix
password = SENHA(cadastrada no arquivo Postfix.sql)
hosts = 127.0.0.1
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = 0 and active = 1
$ sudo vi /etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = SENHA(cadastrada no arquivo Postfix.sql)
hosts = 127.0.0.1
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
additional_conditions = and active = 1
$ sudo vi /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = SENHA(cadastrada no arquivo Postfix.sql)
hosts = 127.0.0.1
dbname = postfix
table = mailbox
select_field = quota
where_field = username
additional_conditions = and active = 1
$ sudo vi /etc/postfix/mysql_relay_domains_maps.cf
user = postfix
password = SENHA(cadastrada no arquivo Postfix.sql)
hosts = 127.0.0.1
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = 1
-
Alterar permisso dos mapas para somente root alterar e o postfix poder ler,
visto que temos credenciais de acesso ao banco nos arquivos.
$ sudo chgrp postfix /etc/postfix/mysql_*.cf
$ sudo chmod 640 /etc/postfix/mysql_*.cf
Criar usurio vmail para armazenar os e-mails de todos os vhosts, no necessitando assim uma conta no
sistema para cada usurio
$ sudo groupadd -g 5000 vmail
$ sudo useradd -m -g vmail -u 5000 -d /home/vmail -s /bin/bash vmail
6. Configura o Postfix para Utilizar os Mapa
Uma vez que temos o banco de dados criados, os arquivos que fazem o mapeamento, temos que configurar no
Postfix para o mesmo utilizar cada um dos mapeamentos para determinada tarefa, como segue:
$ sudo vi /etc/postfix/main.cf
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME postfix
MYSQL_PASSWORD SENHA(cadastrada no arquivo Postfix.sql)
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD /home/vmail
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD concat(quota,S)
26/03/13 :: SZAZZ :: Servidor de E-mail Com Postfix + PostfixAdmin + Roundcube +MySQL + POP, SMTP e IMAP Autenticado
szazz.com.br/2010/12/06/servidor-de-e-mail-com-postfix-postfixadmin-roundcube-mysql-pop-smtp-e-imap-autenticado/ 4/6
START=yes
e verifique neste arquivo se os mecanismos esto configurados como:
MECHANISMS=pam
e altere a opo OPTIONS:
OPTIONS=-c -m /var/spool/postfix/var/run/saslauthd -r
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
log_level: 5
Configura o mdulo smtp no pam para que o sasl use este mtodo para autenticar atravs do mesmo.
$ sudo vi /etc/pam.d/smtp
Como estamos utilizando nosso smtp em uma jail, temos que realizar as seguintes alteraes:
Crie o grupo sasl e adicione o usurio postfix ao mesmo adicionando esta linha no arquivo /etc/group
$ sudo vi /etc/group
sasl:x:45:postfix
Crie os arquivos/diretrios que ficaro dentro da jail para o postfix autenticar no sasl
$ sudo mkdir -p /var/spool/postfix/var/run/
$ sudo mv /var/run/saslauthd /var/spool/postfix/var/run/saslauthd
$ sudo ln -ns /var/spool/postfix/var/run/saslauthd /var/run/saslauthd
$ sudo cp /etc/sasldb2 /var/spool/postfix/etc/
$ sudo chgrp sasl /var/spool/postfix/etc/sasldb2
$ sudo chmod g+w /var/spool/postfix/etc/sasldb2
Reinicie os servio e cheque o log
$ sudo /etc/init.d/courier-authdaemon restart
$ sudo /etc/init.d/saslauthd restart
$ sudo /etc/init.d/postfix restart
26/03/13 :: SZAZZ :: Servidor de E-mail Com Postfix + PostfixAdmin + Roundcube +MySQL + POP, SMTP e IMAP Autenticado
szazz.com.br/2010/12/06/servidor-de-e-mail-com-postfix-postfixadmin-roundcube-mysql-pop-smtp-e-imap-autenticado/ 5/6
$ sudo tail -f /var/log/mail.info
10 Instalar o Postfixadmin
Baixe o postfixadmin na sua ltima verso.
$ sudo apt-get install -y apache2 php5 php5-imap php5-mysql
$sudo a2enmod php5
$sudo /etc/init.d/apache2 restart
$ wget http://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin_2.3rc5.tar.gz
Descompacte o arquivo e copie para dentro do seu webroot
$ tar xvzf postfixadmin_2.3rc5.tar.gz
$ sudo mv postfixadmin-2.3rc5/ /var/www/postfixadmin/
Altere o arquivo de configurao para configurar o sistema de deix-lo pronto para o setup
$ sudo vi /var/www/postfixadmin/config.inc.php
-
$CONF['configured'] = true;
$CONF['database_type'] = mysqli;
$CONF['database_host'] = localhost;
$CONF['database_user'] = postfix;
$CONF['database_password'] = SENHA(cadastrada no arquivo Postfix.sql) ;
$CONF['database_name'] = postfix;
$CONF['domain_path'] = YES;
$CONF['domain_in_mailbox'] = NO;
-
Acesse o setup.php em http://seudominio.com.br/postfixadmin/setup.php
Voc vai criar uma senha para o setup quando em clicar em gerar a senha, ele vai lhe dar um hash:
$CONF['setup_password'] = 09f7acdd93b6c11b:0c68a098ba0940acec16cf36f784f7551e019852;
Copie ele e substitua a varivel abaixo no arquivo config.inc.php
$CONF['setup_password'] = changeme
Novamente acesse o setup.php em http://seudominio.com.br/postfixadmin/setup.php, informe a senha de setup
que acabou de cadastrar, um e-mail vlido e uma senha, este e-mail e a senha ser seus dados de acesso, pois
cadastr-los, basta acessar http://seudominio.com.br/postfixadmin/ e logar.
11 Instalando o RoundCube
Agora vamos baixar e instalar o roundcube, seu webmail.
wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.3.1/roundcubemail-
0.3.1.tar.gz
tar zxvf roundcubemail-0.3.1.tar.gz
mv roundcubemail-0.3.1 /var/www/webmail
chmod 777 /var/www/webmail/temp
chmod 777 /var/www/webmail/logs
Agora vamos criar o banco para o RoundCube, no esquea de trocar a SENHA do arquivo abaixo.
wget http://www.dheykson.com.br/downloads/Roundcube.sql