Postfix – Configuração correta para rejeitar envio de emails com remetente de endereço diferente do autenticado.

Esta configuração faz o postfix verificar se quem esta enviando (endereço do remetente MAIL FROM) é o mesmo endereço do autenticado (SASL USERNAME).

Muito útil contra spammers e usuários maliciosos para não enviarem emails com o endereço diferente do qual foi autenticado.

Adicione no arquivo /etc/postfix/sender_map :

/^(.*)$/        $1

Adicione as seguintes configurações no /etc/postfix/main.cf :

smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch

smtpd_sender_login_maps = regexp:/etc/postfix/sender_map

 

SPF – Sender Policy Framework – Configuração correta

Configuração no arquivo da zona do dns:

dominio.com. IN TXT “v=spf1 mx ip4:x.x.x.x  ip4:x.x.x.x -all”

 

com -all bloqueou alguns sistemas que enviam email incorretamente
por exemplo alguns sistemas de NFE de algumas prefeituras, enviam email com o seu domínio, o que está incorreto.
Aí voce precisa liberar o IP deles no SPF ou deixar ~all.

 

Todas as opções de prefixos são:

  • +Pass
  • -Fail
  • ~SoftFail
  • ?Neutral

 

Enviar email para teste:

mailtest@unlocktheinbox.com

check-auth@verifier.port25.com

 

 

http://antispam.br/admin/spf/

mailtest@unlocktheinbox.com

Sincronizando contas IMAP com imapsync

 

1) instalar modulos perl:

perl -e shell -MCPAN

  install Mail::IMAPClient
install Digest::MD5
install Term::ReadKey
install IO::Socket::SSL
install File::Spec
install Digest::HMAC_MD5
install Authen::NTLM

2) instalar imapsync
wget https://fedorahosted.org/released/imapsync/imapsync-1.456.tgz
tar xzpvf imapsync-1.456.tgz
cd imapsync-1.456
make install

3) o comando

imapsync --host1 mail.servidor1.com --user1 logindousuario --password1 senhadousuario
--host2 mail.servidor2.com --user2 logindousuario2 --password2 senhaxxx

Obs. Se estiver importando/exportando do gmail precisa habilitar opção para clientes inseguros:
https://www.google.com/settings/security/lesssecureapps?pli=1

Roundcube: mostrando o domínio na tela de login.

Adicionar no arquivo rcube_template.php

$dominio = getenv(‘HTTP_HOST’);
$dominio = str_replace(“webmail.”, “”, $_SERVER[HTTP_HOST]);
if (strcmp(strtolower(substr($dominio,0,5)),”webmail.”) == “”)
{
$dominio = substr($dominio,5);
}
if (strcmp(strtolower(substr($dominio,0,4)),”www.”) == “”)
{
$dominio = substr($dominio,4);
}
$textodominio = “@$dominio”;
$table->add(‘title’,html::label(‘textarea’,’Dominio’));
$table->add(‘textarea’,$textodominio);

 

entre:

$table->add(‘title’, html::label(‘rcmloginuser’, Q(rcube_label(‘username’))));
$table->add(‘input’, $input_user->show(get_input_value(‘_user’, RCUBE_INPUT_GPC)));

e:

$table->add(‘title’, html::label(‘rcmloginpwd’, Q(rcube_label(‘password’))));
$table->add(‘input’, $input_pass->show());

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