Configurando um servidor de e-mail Debian com Postfix + Postfixadmin + Courier IMAP/POP + SASL + TLS + Roundcube + Postgrey+ AMAVIS + SpamAssassin

1. Introdução

O Serviço de E-Mail hoje é de fundamental importancia para organizações. Há vários sistemas “prontos” para se administrar um servidor de e-mail,  comerciais e de distribuição gratuita. A implantação de um sistema completo de emails instalando componente por componente pode ser mais trabalhoso, mas pode trazer várias vantagens. É importante estudar cada caso para se escolher a melhor solução. Neste artigo será abordado as principais vantagens e desvantagens de se utilizar um sistema “manual” e a implantação completa de um sistema “manual”.

O problema

 

Soluçoes livres

 

Soluções comerciais

Componentes utilizados, descrever cada um

 

Implantação

 

1.1 Instalando os pacotes necessários:

apt-get install postfix postfix-mysql apache2 php5 courier-imap courier-imap-ssl courier-authlib courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-ssl mysql-server php5-imap php5-mysql php5-mcrypt phpmyadmin postgrey roundcube roundcube-core roundcube-mysql sasl2-bin vim fam libfam0  libsasl2-modules postfix-policyd-spf-python clamav clamav-daemon clamav-base libpam-mysql clamsmtp opendkim spamassassin

Atualize as definições de vírus e inicie o clamav:

freshclam
service clamav-daemon start

Copiar arquivo vacation.pl para /var/spool/vacation/vacation.pl

1.2 Criando nosso banco no MySQL:

root@fullz:/# mysql -p
Enter password:

mysql> create database postfix;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on postfix.* to postfix@localhost identified by ‘xxxx’;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Criar a tabelas conforme o arquivo sql: postfix.sql.txt

Insira alguns dados:

1.3 Configurando o Postfix:

1.4 PostfixAdmin

Baixar o postfixadmin: http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.6/postfixadmin-2.3.6.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpostfixadmin%2F&ts=1361974909&use_mirror=ufpr

Inserir dados no mysql para acesso ao postfixadmin:

INSERT INTO `postfix`.`admin` (`username`, `password`, `created`, `modified`, `active`) VALUES (‘admin’, MD5(‘1234’), NOW(), ‘0000-00-00 00:00:00’, ‘1’);
INSERT INTO `postfix`.`domain_admins` (`username`, `domain`, `created`, `active`) VALUES (‘admin’, ‘ALL’, NOW(), ‘1’);

Configurando o PostfixAdmin, edite o arquivo config.inc.php e modifique as seguintes variaveis:

$CONF[‘configured’] = true;

$CONF[‘default_language’] = ‘pt-br’;

$CONF[‘database_type’] = ‘mysql’;
$CONF[‘database_host’] = ‘localhost’;
$CONF[‘database_user’] = ‘postfix’;
$CONF[‘database_password’] = ‘postfixadmin’;
$CONF[‘database_name’] = ‘postfix’;

 

Saslauthd

Modificar no arquivo /etc/default/saslauthd:

START=yes
OPTIONS=”-r -c -m /var/spool/postfix/var/run/saslauthd”

Criar diretórios: mkdir /var/spool/postfix/var/run

 dpkg-statoverride –add root sasl 710 /var/spool/postfix/var/run/saslauthd

Crie o arquivo /etc/pam.d/smtp com o conteudo:

auth    required   pam_mysql.so user=postfix passwd=suasenha host=127.0.0.1 db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=1account sufficient pam_mysql.so user=postfix passwd=suasenha host=127.0.0.1 db=postfix table=mailbox usercolumn=username passwdcolumn=password crypt=1

Crie o arquivo /etc/postfix/sasl/smtpd.conf com o conteudo:

pwcheck_method: saslauthd
mech_list: plain login cram-md5 digest-md5
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: postfix
sql_passwd: suasenha
sql_database: postfix
loglevel: 0
sql_select: select password from mailbox where username = ‘%u@%r’

COURIER:
Modificar arquivo /etc/courier/authdaemonrc
authmodulelist=”authmysql”

Modificar arquivo /etc/courier/authmysqlrc
DEFAULT_DOMAIN          seudomain.com.br
MYSQL_CRYPT_PWFIELD     password
MYSQL_DATABASE          postfix
MYSQL_GID_FIELD         ‘8’
MYSQL_HOME_FIELD        ‘/var/mail/virtual’
MYSQL_LOGIN_FIELD       username
MYSQL_MAILDIR_FIELD     maildir
MYSQL_NAME_FIELD        name
MYSQL_OPT               0
MYSQL_PASSWORD          suasenha
#MYSQL_PORT             0
#MYSQL_QUOTA_FIELD      quota
MYSQL_SERVER            localhost
# Default FreeBSD Socket
#MYSQL_SOCKET           /var/mysql/mysql.sock
# Default RedHat Socket
#MYSQL_SOCKET           /var/lib/mysql/mysql.sock
MYSQL_UID_FIELD         ‘1001’
MYSQL_USERNAME          postfix
MYSQL_USER_TABLE        mailbox

 

Conclusão

Gerenciamento de Projetos RedMine

Neste tópico irei falar um pouco sobre o RedMine, que é um sistema web para gerenciamento de projetos.

Uso muito ele para gerenciar os meus projetos de software.

O RedMine foi tema do TCC de um colega meu, o Guilherme Mazur, o tcc pode ser baixado aqui. Tambem usei ele para gerenciar o projeto do meu software de conclusão de curso.

 

Falar do redmine: segundo wikipedia:

Redmine é um software livre, gerenciador de projetos baseados na web e ferramenta de gerenciamento de bugs. Ele contém calendário e gráficos de Gantt para ajudar na representação visual dos projetos e seus deadlines (prazos de entrega). Ele pode também trabalhar com múltiplos projetos.
O design do Redmine design foi influenciado pelo Trac, um pacote de software semelhante.
O Redmine é escrito usando o framework Ruby on Rails. Ele é multiplataforma e suporta diversos Banco de Dados.

Próximo tópico: instalando o redmine

 

Redmine é um software livre, gerenciador de projetos baseados na web e ferramenta de gerenciamento de bugs. Ele contém calendário e gráficos de Gantt para ajudar na representação visual dos projetos e seus deadlines (prazos de entrega). Ele pode também trabalhar com múltiplos projetos.

O design do Redmine design foi influenciado pelo Trac, um pacote de software semelhante.

O Redmine é escrito usando o framework Ruby on Rails. Ele é multiplataforma e suporta diversos Banco de Dados.

Gerenciando versões no Visual Studio com AnkhSvn + Subversion

1. Configurar nosso diretório no linux:

$svnadmin create nossodiretoriosvn

conteúdo do arquivo:  nossodiretoriosvn/conf/passwd:

[users]
 usuario = senhadousuario

conteúdo do arquivo: nossodiretoriosvn/conf/svnserve.conf

[general]
password-db = /var/svn/conf/passwd
anon-access = read
auth-access = write
realm = VNSERVER

Figura 1: Estrutura do nossodiretoriosvn

2. Inicializar o daemon svnserve:

svnserve -d -r /var/svn

3. Baixe e instale a versão atual do AnkhSvn em:  http://ankhsvn.open.collab.net/

4. Reinicie o Visual Studio

5. Selecione o plug-in AnkhSvn no menu Tools, Options, Source Control.

Figura 2. Seleção do plugin AnkhSvn no Visual Studio

 

Compilando o kernel 2.6 rapidinho

Como Compilar um Kernel.
Genilto Dallo
V0.1 14/03/2009

Vamos utilizar como exemplo a versao 2.6.28 no Debian
Utilize o usuario root

Pacotes necessários para compilar:
- gcc
- make
- libncurses5 e libncurses5-dev
- glibc-dev
- wget, etc

1) Baixe um kernel:
wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.7.tar.gz

2) Descompacte em /usr/src
tar zxpvf linux-2.6.28.7.tar.gz -C /usr/src/

3) Configurar:
cd /usr/src/linux-2.6.28.7
make menuconfig
Configure os módulos conforme o seu hardware...
4) Compilar e instalar:
make; make install; make modules; make modules_install

5) Criar initrd:
mkinitramfs -o /boot/initrd.img-2.6.28.7 2.6.28.7

6) Atualizar o grub:
edite o arquivo /boot/grub/menu.lst e adicine
ou
update-grub

agora é só reiniciar ;o)

Se quiser personalizar a versao (nome) do kernel
modifique a variavel EXTRAVERSION =  no arquivo Makefile
exemplo: EXTRAVERSION = gd_amd64
uname -a: Linux gd 2.6.28.gd_amd64 #1 SMP Sat Mar 14 11:25:09 BRT 2009 x86_64 GNU/Linux