A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Linux

Debian + Postfix + PostfixAdmin + SquirrelMail

Sab

16

Mai

2009


01:19

(19 votos, média 4.53 de 5) 


Adicionando a home page

Faça o download da home page. Esta página descreve as características do sistema de email para novos usuários. Estes serviços ainda não estão instalados, mas podemos publicar esta página. Assim que estiver disponível, edite-a (você pode usar o WinSCP para fazer isto) para que atenda seus objetivos:

cd /var/www
wget wget -U NoSuchBrowser/1.0 http://www.numaboa.com/debian/virtual.index.html
cp index.html index.html-apache-original
cp virtual.index.html index.html
sed -i 's/Our Organization/Minha Empresa Ltda/' index.html
sed -i 's/somehost.domain.tld/nome_do_host.exemplo.com/' index.html
sed -i 's/domain.tld/exemplo.com/' index.html
chown root:www-data index.html

Instalar e Configurar o phpMyAdmin

apt-get install phpmyadmin

Escolha apache2 no prompt "Web server to reconfigure automatically:". Lembre-se, barra de espaço para selecionar e tecla Tab para se movimentar.

Neste ponto nosso programa https://nome_do_host.exemplo.com/phpmyadmin está sujeito a abusos. Vamos conferir segurança a ele obscurecendo sua URL, definindo um nome de usuário e senha e, opcionalmente (mas altamente recomendado), permitindo que apenas determinados endereços IP possam acessar a URL. Obscureça a URL mudando seu nome:

sed -i 's/Alias \/phpmyadmin /Alias \/phpmyadmiNx /' /etc/apache2/conf.d/phpmyadmin.conf

Com as configurações atuais do /etc/apache2/apache2.conf, os arquivos que controlam acessos (arquivos como o .htpasswd) não serão usados, a menos que informemos ao apache2 para que os use. Vamos modificar o arquivo de controle de acesso original e depois alterar o /etc/apache2/conf.d/phpmyadmin.conf para que o utilize. O nome de usuário atual é 'admin'. Vamos começar obscurecendo o nome do usuário:

sed -i 's/admin/myadmin_nome_usuário/' /etc/phpmyadmin/htpasswd.setup

Depois, crie uma senha para este usuário:

htpasswd -c /etc/phpmyadmin/htpasswd.setup myadmin_nome_usuário

New password: myadmin_senha
Re-type new password: myadmin_senha

Agora vamos fazer com que o apache2 use este arquivo de acesso colocando diretivas em /etc/apache2/conf.d/phpmyadmin.conf. Quando isto estiver feito, as chamadas para o diretório /phpmyadmiNx vão receber uma caixa de diálogo de login. Note que nossa versão de /etc/apache2/apache2.conf contém o comando "Include /etc/apache2/conf.d" de modo que quaisquer arquivos config colocados neste diretório serão lidos. Também vou mostrar como limitar o acesso a uma única estação de trabalho (a sua, naturalmente). Isto é opcional, mas recomendado. Se você precisar dar permissão para uma rede de máquinas, use um endereço IP parcial (por exemplo 192.168), veja http://httpd.apache.org/docs/2.2/howto/access.html. Abra o editor com

vi /etc/apache2/conf.d/phpmyadmin.conf

e insira o seguinte na posição mostrada, certificando-se de que o endereço IP seja o endereço IP da sua estação de trabalho (como o servidor de email a vê). Se preferir, você pode colocar um ou mais dos últimos octetos do endereço IP para permitir que uma gama maior de hosts possa acessar o prompt de login do phpMyAdmin. Mesmo assim, eles vão precisar passar pelas duas camadas de segurança.

<Directory /usr/share/phpmyadmin/>

 order deny,allow
 deny from all
 allow from 666.666.666.666

 AuthUserFile /etc/phpmyadmin/htpasswd.setup
 AuthGroupFile /dev/null
 AuthName "phpMyAdmin"
 AuthType Basic
 Require valid-user

Salve o arquivo, depois reinicie o apache2

/etc/init.d/apache2 restart

e chame o phpMyAdmin no browser:

https://nome_do_host.exemplo.com/phpmyadmiNx

O primeiro login é o nome de usuário e a senha do phpMyAdmin: myadmin_nome_usuário myadmin_senha. O segundo login é seu login do mysql (neste ponto é root e senha_do_root). Você pode fechar a página web do phpMyAdmin.

Algumas configurações preliminares do Postfix

Vamos determinar explicitamente nosso nome de domínio e nome do host no Postfix para que não haja possibilidade do Postfix encontrar alguma coisa diferente. Também vamos remover uma linha por que queremos habilitar ou desabilitar o TLS em master.cf:

postconf -e "mydomain = exemplo.com"
postconf -e "myorigin = exemplo.com"
postconf -e "myhostname = nome_do_host.exemplo.com"
postconf -e "mydestination = exemplo.com, nome_do_host.exemplo.com, localhost.exemplo.com, localhost"
sed -i 's/smtpd_use_tls=yes//' /etc/postfix/main.cf
postfix reload

Neste ponto, se você der o comando

postconf -n

o Postfix deveria mostrar que o main.cf está configurado da seguinte forma:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = exemplo.com, nome_do_host.exemplo.com, localhost.exemplo.com, localhost
mydomain = exemplo.com
myhostname = nome_do_host.exemplo.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = exemplo.com
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_tls_CAfile = /etc/ssl/certs/cacert.exemplo.com.pem
smtpd_tls_cert_file = /etc/ssl/certs/dovecot.pem
smtpd_tls_key_file = /etc/ssl/private/dovecot.pem
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

Por favor, note que 'postconf -n' não mostra necessariamente todas as configurações que temos no main.cf. O Postfix deve aceitar emails para os endereços listados em /etc/aliases e entregá-los numa caixa de correio em /var/mail. Você deve testar isto. Configure um MUA para usar este servidor de emails como seu servidor de saída SMTP.

Para fazer os testes eu uso vários MUAs diferentes (Outlook, Outlook Express, Thunderbird, The Bat!) instalados e configurados na estação de trabalho local de onde envio os emails. Não envie emails a partir da linha de comando (usando sendmail ou outros meios) quando testar este sistema. Em todos os testes que serão realizados, espero que você envie mensagens de teste através de um cliente externo (a não ser que estejamos testando algo como o SquirrelMail). Envie agora uma mensagem para postmaster@exemplo.com. Veja o que /var/log/mail.log diz sobre a transação (procure por erros). Ele também deve mostrar o usuário para o qual a mensagem foi enviada:

tail -50 /var/log/mail.log
ls -l /var/mail

No diretório /var/mail você deve ver a caixa de correio do usuário para o qual a mensagem foi enviada. Você pode dar o comando ' more /var/mail/user ' para ler o conteúdo da caixa de correio.

Pegue o código fonte do Postfix (vamos precisar de alguns deles):

cd /usr/local/src
wget http://ftp.debian.org/debian/pool/main/p/postfix/postfix_2.5.5.orig.tar.gz
tar xzf postfix_2.5.5.orig.tar.gz

Dê o primeiro comando isoladamente:

cp -i /usr/local/src/postfix-2.5.5/conf/* /etc/postfix
cp -i /etc/postfix/header_checks /etc/postfix/body_checks
cp -i /etc/postfix/access /etc/postfix/sender_access
cp -i /etc/postfix/access /etc/postfix/rbl_client_exceptions
cp -i /etc/postfix/access /etc/postfix/rbl_sender_exceptions
cp -i /etc/postfix/access /etc/postfix/rbl_recipient_exceptions
cp /usr/local/src/postfix-2.5.5/examples/chroot-setup/LINUX2 /usr/sbin
chmod +x /usr/sbin/LINUX2
LINUX2

No Debian, o Postfix roda num chroot. O script LINUX2 é usado para copiar os arquivos para a jaula chroot.

Informações adicionais