Proteção egípcia. Especialistas reconhecem o perigo. SysAdmin. Criptografia de emails com Anubis. Anubis



Documentos relacionados
FTP Protocolo de Transferência de Arquivos

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Parte I. Demoiselle Mail

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

Permite o acesso remoto a um computador;

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

CSAU Guia: Manual do CSAU 10.0 como implementar e utilizar.

ROTEIRO PARA INSTALAÇÃO DO BITVISE, CONFIGURAÇÃO DE CHAVES SSH, DEFINIÇÃO DAS PORTAS PARA OS TÚNEIS SSH E CONFIGURAÇÃO DO THUNDERBIRD

Curso de Informática Básica

Instalando servidor Apache com MySQL e as linguagens ColdFusion e PHP. XAMPP (xampp-win installer.exe), veja aqui.

Atualizaça o do Maker

INSTALANDO E CONFIGURANDO O MY SQL

Instalação rápida do Expresso

Processo de Envio de

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

Guia Rápido de Instalação

Conceitos de relação de confiança

UNIVERSIDADE FEDERAL DE PELOTAS

Configuração de servidores SMTP e POP3

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Sistema Operacional Unidade 12 Comandos de Rede e Acesso Remoto

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

3 SCS: Sistema de Componentes de Software

Configure seu Linux pela Web! Instalação à partir de um.tar.gz. Autor: Carlos Eduardo Ribeiro de Melo <eduardo at unisulma.edu.br> Data: 05/10/2004

Servidor de s e Protocolo SMTP. Professor: João Paulo de Brito Gonçalves Disciplina: Serviços de Redes

Obs: É necessário utilizar um computador com sistema operacional Windows 7.

Engenharia de Software III

Certificado Digital: Como Funciona (

Configurando um servidor DHCP

QUAL O PROCEDIMENTO PARA CONFIGURAR AS IMPRESSORAS DE REDE BROTHER EM UM SISTEMA DEC TCP / IP para VMS (UCX) Procedimento

Documentação Symom. Agente de Monitoração na Plataforma Windows

FTP - Protocolo. O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores.

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01

Projeto Integrador Projeto de Redes de Computadores

Servidor de Correio Eletrônico Postfix

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS COTAS DE DISCO. Professor Carlos Muniz

Guia do Administrador de Licenças de Usuários Autorizados do IBM SPSS Modeler

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Protocolos de Aplicação SSL, TLS, HTTPS, SHTTP

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

OpenSSH

INTRODUÇÃO: 1 - Conectando na sua conta

Mercado Eletrônico Instalação e Atualização MEConnect2

18/04/2006 Micropagamento F2b Web Services Web rev 00

Nesse artigo abordaremos os principais aspectos de instalação e uso do NTOP no Fedora Core 4.

NetEye Guia de Instalação

Maker Planet Manual do Usuário

Instalando o Internet Information Services no Windows XP

Manual do Remote Desktop Connection. Brad Hards Urs Wolfer Tradução: Marcus Gama

Nível de segurança de uma VPN

Guia de administração para a integração do Portrait Dialogue 6.0. Versão 7.0A

O Manual do Desktop Sharing. Brad Hards Tradução: Pedro Morais

GERENCIADOR DE CORREIO ELETRÔNICO (V. 2 26/04/2010)

Kerio Exchange Migration Tool

Introdução ao Sistema. Características

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

s editores de s Como configurar contas de nos principais Como configurar contas de s nos principais editores de s

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Programação Web Prof. Wladimir

Universidade Federal do Rio Grande do Norte

APOSTILA DE REDES DE COMPUTADORES PARTE - I I

Redes de Computadores

Aplicação Prática de Lua para Web

Técnicas e ferramentas de ataque. Natiel Cazarotto Chiavegatti

Auditando o Acesso ao Sistema de Arquivos no Windows 2008 Server R2

ACL Linux. O que são ACLs e por que usá-las?

Tutorial para Instalação do Ubuntu Server 10.04

Sistemas Operacionais

2. O AMBIENTE DE PROGRAMAÇÃO EM C

Arquitetura de Rede de Computadores

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 13

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Configuração de um servidor FTP. Campus Cachoeiro Curso Técnico em Informática

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

O Protocolo SMTP. Configuração de servidor SMTP

ESET Remote Administrator ESET EndPoint Solutions ESET Remote Adminstrator Workgroup Script de Logon

Atualizaça o do Playlist Digital

TRBOnet MDC Console. Manual de Operação

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Manual de Instalação do Agente Citsmart

Procedimento para instalação do OMNE-Smartweb em Raio-X

Configuração do cliente de Thunderbird para usuários DAC

MANUAL DO ANIMAIL Terti Software

Capítulo 5 Métodos de Defesa

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

Programando em PHP. Conceitos Básicos

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

Desenvolvendo Websites com PHP

Usando o Conference Manager do Microsoft Outlook

Transcrição:

SysAdmin Criptografia de emails com Proteção egípcia O daemon de gerenciamento de emails permite a centralização da criptografia para emails. por Daniel S. Haischt Especialistas reconhecem o perigo de se enviar planos, dados pessoais, acordos confidenciais em texto puro pela Internet. Já os usuários raramente prestam atenção nesses alertas. Dificilmente, alguém passa a usar ferramentas como o PGP, GnuPG [1] e S/Mime espontaneamente, por precaução. Assim, CTOs (Chief Technology Officers) têm duas opções: ou lamentam seu destino ou tomam atitudes proativas. Por exemplo, a implantação de um servidor PGP para o gerenciamento das chaves de assinatura digital dos usuários e para criptografar e descriptografar mensagens. Esses serviços acabam com a necessidade MUA 1 (Mutt) MUA 2 (Mozilla) MTA 1 (Exim) MTA 2 (Postfix) Figura 1: Em uma infraestrutura tradicional de email, cada cliente (MUA - Mail User Agent) passa mensagens ao servidor SMTP (MTA - Mail Transfer Agent), que cuida da entrega. Caixa de Entrada 64 julho 2006 edição 21

SysAdmin de longas e complicadas configurações PGP nos clientes de email de cada estação. Administradores Linux têm à disposição programas de criptografia livres como o GPG-Relay [2] ou o Kuvert [3], e há diversos aplicativos comerciais (como os listados em [4] e [5]), alguns disponíveis também para Windows. Para quem prefere evitar a dependência de aplicativos isolados, a melhor opção é o universal GNU [6]. Esse aplicativo, batizado com o nome de um deus egípcio ancestral, é um daemon para pré-processamento SMTP. Ele recebe mensagens de um Mail User Agent, ou cliente de email (representado na figura 2), como o Mutt, modifica as mensagens antes de passá-las a um Mail Transfer Agent (como o servidor Postfix, representado na figura 2). O pode processar mensagens de diversas maneiras, mas nesse caso, um dos truques mais úteis é a habilidade de criptografar as mensagens com o GnuPG. GPG Guile Mime MTA MUA NLS PAM PGP SASL S/ Mime SMTP SSL TLS Tabela 1: Abreviações deste artigo GNU Privacy Guard. MUA 1 (Mutt) GNU s Ubiquitous Intelligent Language for Extensions (interpretador da linguagem Scheme, derivada do Lisp). Multipurpose Internet Mail Extensions (formato padrão de emails). Mail Transfer Agent (servidor de email). Mail User Agent (cliente de email). Native Language Support. Pluggable Authentication Modules (mecanismo para integrar mecanismos de autenticação). Pretty Good Privacy (programa para criptografia e autenticação). Simple Authentication and Security Layer (framework de autenticação e segurança de dados). Secure Mime (padrão para assinatura digital e criptografia). Simple Mail Transfer Protocol. Secure Sockets Layer (protocolo para comunicação segura). Transport Layer Security (protocolo para comunicação segura). Figura 2: O GNU fica entre o MUA e o MTA. Do ponto de vista do cliente, o é o servidor de email. Nessa posição, o pode manipular as mensagens do tráfego. O é uma ferramenta madura, de código aberto, que permite a administradores configurar uma infraestrutura PGP centralizada. Já a descriptografia automática de emails que chegam ou o uso de um GNU padrão PGP/Mime para processar arquivos anexos requer programas externos como o GPG-Relay ou o Kuvert, mas o é a escolha perfeita para criptografar e assinar emails que saem. Quadro 1: Truques SMTP MTA 1 (Postfix) Caixa de Entrada Alguns programas de email, como o Mutt, chamam diretamente o binário do sendmail para enviar mensagens. Nesse caso, é impossível mudar o host SMTP e a porta na configuração do cliente, já que o comportamente do sendmail só pode ser configurado pelo administrador. Além disso, alguns clientes de email não são compatíveis com o mecanismo SMTP-AUTH. Programas como o MSMTP [9] ou o ESMTP [10] podem ajudar, agindo como proxies de email. Usuários podem configurar essas ferramentas de linha de comando individualmente, no arquivo de configuração ~/. esmtprc, no caso do ESMTP: hostname = anubis.abyssworld.de:24 username = "haischt" password = "access4anubis" starttls = disabled Nesse exemplo, o serviço envia uma mensagem ao servidor (anubis.abyssworld.de, porta 24) e autentica com as credenciais do usuário. A criptografia STARTTLS está desativada. O Mutt precisa saber se ele deve chamar o ESMTP em vez do executável do sendmail: set sendmail="/usr/local/bin/esmtp" Essa linha no arquivo de configuração do Mutt diz ao cliente de email qual serviço usar. julho 2006 edição 21 65

SysAdmin Listagem 1: Modo Pixie MUA 1 (Mutt) Ident- Daemon Figura 3: Em modo Pixie, o primeiro pergunta ao daemon Ident na estação de trabalho do remetente para identificar o usuário que abriu a conexão, antes de aceitar e processar a mensagem. SMTP Relay Uma técnica mais comum para criptografar ou assinar mensagens é cada cliente usar um plugin PGP como o Enigmail [11]. Já uma ferramenta como o oferece um caminho alternativo: processamento centralizado, que é mais fácil de administrar no caso de uma grande base de usuários. O cliente não mais envia email diretamente para o provedor de email, mas para o, que age como um proxy, remodelando o conteúdo, assinando/criptografando a mensagem e, finalmente enviando a mensagem para o provedor. O programa pode rodar em um servidor separado ou na mesma máquina do cliente de email ou MTA. Usuários apenas precisam configurar o como o servidor de email em seus clientes (leia o quadro 1: Truques SMTP ). Instalação Graças ao autoconf, o é realmente fácil de configurar e instalar. Mas certifique-se antes de qual banco de dados será usado para conter os GNU? dados dos usuários. No modo Pixie, também é possível autenticar usuários através de um daemon Ident rodando na estação do cliente de email. Essa opção, não requer um banco de dados relacional. Também é possível escolher uma configuração mais tarde e já ir compilando os módulos necessários: P Regex (para expressões regulares). P GSASL (autenticação de usuário). P O módulo para autenticação via daemon Ident está sempre incluído. P Guile (para scripts) P OpenSSL ou GnuTLS (para SSL) P GPG (GNU Privacy Guard) e GPGme P MySQL (banco de dados) P PostgreSQL (banco de dados) P GDBM e text file (essas opções aos bancos de dados estão sempre incluídas) Outros componentes são mais opcionais e só fazem sentido em cenários específicos: P PAM (autenticação) P Libwrap (wrapper TCP) P SOCKS (para SOCKS) P NLS (internacionalização) MTA 1 (Postfix) Caixa de entrada P PCRE (Regex com sintaxe Perl) 01 #> Reading system configuration file /usr/local/ etc/anubis/anubisrc... 02 #> UID:0 (root), GID:0, EUID:0, EGID:0 03 #> GNU bound to 192.168.1.6:24 04 #> [68239] GNU is running... 05 #> [68239] Connection from 192.168.120.239:1310 06 #> [68244] IDENT: connected to 192.168.120.239:113 07 #SERVER >>> 1310, 24 : USERID : UNIX : haischt(36) 08 #> [68244] IDENT: resolved remote user to haischt. 09 #> [68244] UID:65534 (nobody), GID:65534, EUID:65534, EGID:65534 10 #> [68244] Getting remote host information... 11 #> [68244] Connected to 192.168.1.6:25 12 #> [68244] Transferring message(s)... 13 #SERVER >>> 220 smtp. abyssworld.de ESMTP Postfix (2.2.3)(46) 14 #CLIENT <<< 220 smtp. abyssworld.de (GNU v4.0) ESMTP Postfix (2.2.3)(64) Infelizmente, o não é compatível com o serviço de diretório LDAP. Esse seria um recurso útil, já que tanto os dados de usuários quanto chaves PGP estão freqüentemente disponíveis através do OpenLDAP ou um servidor Active Directory. Por muito tempo, o usou apenas bancos de dados baseados em texto ou GDBM. A compatibilidade com bancos de dados relacionais é bastante nova. Então, vamos esperar que o LDAP venha logo depois. Verifique o arquivo config.log após completar o./configure para ver se 66 julho 2006 edição 21

SysAdmin Listagem 2: Configuração Dixie 01 # BEGIN CONTROL 02 ##... 03 #mode auth 04 ##... 05 # END 06 # 07 # BEGIN AUTH 08 #smtp-greeting-message ESMTP (4.0.0) 09 #smtp-help-message help message 10 ### Simple text database: 11 ## sasl-password-db file:/usr/ local/etc/anubisdb.txt os módulos foram configurados corretamente. Após a instalação, digite anubis-show-config-options para ver se os módulos requeridos estão realmente disponíveis. O espera encontrar seus dados de configuração em /etc/anubisrc. Esse caminho faz parte do programa, sendo indicado em src/header.h, mas é possível mudar esse local on the fly com a opção --altrc nomedoarquivo. O make install não vai criar um arquivo de configuração. Contudo, há um modelo em examples/2anubisrc, no pacote do código-fonte. Configuração pessoal Adicionalmente, usuários que precisam da possibilidade de enviar email através do daemon podem criar um arquivo ~/.anubisrc em seu diretório home. O arquivo examples/1anubisrc, no pacote-fonte, contém um exemplo desse arquivo. Para testes iniciais, o daemon também tem um modo de depuração: 12 ### Relational MySQL Database 13 #sasl-password-db mysql:// mail:access4anubis@mysql. abyssworld.de/ mail;table=anubis_user 14 #sasl-allowed-mech NTLM GSSAPI DIGEST-MD5 CRAM-MD5 15 # END 16 # 17 # BEGIN TRANSLATION 18 ##translate [USER@]ADDRESS into USERNAME 19 #translate me@daniel.stefan. haischt.name into haischt 20 # END para fornecer saída detalhada (-v), criar saída de depuração (-D), e rodar em primeiro plano (-f), em vez de omitir os canais de entrada e saída no modo normal do daemon. Autenticação Pixie O possui diversas maneiras de autenticar usuários. O modo Pixie é um dos mais simples. Ele é ativado pela entrada mode transparent no bloco do MUA 1 (Mutt) controle do arquivo de configuração global. Nessa configuração, um daemon Ident (protocolo AUTH) roda na estação do usuário. O requer que o usuário se autentique antes de gerenciar os emails (figura 3). Contudo, essa técnica apenas faz sentido em um cenário bastante específico. O servidor precisa confiar no daemon Ident, e esse tipo de verificação de segurança no cliente só funciona se a estação é usada por administradores responsáveis que conhecem seus usuários (como ter certeza que ninguém vai alterar as configurações de rede?)... O melhor é evitar esse modo de operação. Prático, mas inseguro Ao contrário do que o nome do protocolo AUTH sugere, o Identd não faz autenticação. É um daemon projetado para monitorar ataques: o administrador do sistema atacado pode usar o Ident para verificar a identidade dos usuários de uma máquina fonte em GNU? RDBMS MTA 1 (Postfix) Caixa de entrada anubis --altrc /usr/local/etc/anubis/u anubisrc --mode=transparent -v -D -f Isso diz ao para rodar em modo transparente sem autenticação, Figura 4: No modo Dixie, considerado a melhor maneira de se realizar esse processo, o servidor usa o método SMTP-AUTH para providenciar autenticação de usuário segura. Para que esse procedimento funcione, o servidor precisa armazenar as credenciais de todos os usuários de email em um banco de dados. julho 2006 edição 21 67

SysAdmin uma conexão TCP. Com base nesses dados, o administrador pode, então, contatar o administrador dessa máquina fonte. Muitas implementações Ident simplesmente usam um ID padrão ([7] e [8]). A listagem 1 mostra uma sessão em modo Pixie. As linhas 6 (tentativa de autenticação Ident) e 8, em que o usuário de email é mapeado à conta Unix local do usuário haischt, é que nos interessam. Depois da fase de autenticação, o daemon GNU passa a mensagem para o servidor (linhas 11 a 14). Clientes Windows XP com freqüência têm um firewall integrado que pode causar problemas durante a fase de testes. Na configuração padrão, o firewall restringe (justificadamente) todas as requisições Ident à porta 113. Isso precisa ser alterado (desbloqueando essa porta ou desativando o firewall). Além disso, o programa de email não pode usar nomes de usuário SMTP-AUTH em modo Pixie. Campo Authid Passwd Account Config Alternativa melhor O modo Dixie (figura 4) é novo e melhor que o Pixie. Ele se baseia no padrão SMTP-AUTH. O lê o nome do usuário, senha e outras credenciais de um banco de dados (um simples arquivo de texto ou um banco de dados relacional). A opção de arquivo de texto inclui o ID de usuário (SMTP-AUTH-ID), a senha e, opcionalmente, a conta Unix e o caminho para a configuração específica do usuário (tabela 2). Tabela 2: Campos do banco de dados Dixie Significado Corresponde ao nome configurado pelo usuário nas preferências do cliente de email. Requerido para autenticação SMTP. O usuário também configura uma senha no cliente de email, requerida para autenticação por SMTP. Corresponde à conta Unix. Esse campo mapeia os nomes dos usuários de email às contas Unix, para encontrar um arquivo de configuração do no diretório home do usuário, por exemplo. Esse campo tem o caminho (absoluto ou relativo) para o arquivo de configuração desse usuário. Caminhos relativos começam com o diretório home do usuário. O arquivo de texto tem uma linha para cada usuário; e os campos são separados por espaços. Segundo a documentação oficial, os campos deveriam ser separados por dois-pontos ( : ), mas essa sintaxe não funciona nem no 4.0. O opção de texto funciona bem para testes ou para ambientes pequenos. Já para gerenciar um número maior de usuários, é preferível um banco de dados. A figura 5a mostra um esquema apropriado de tabelas para esse banco. O campo authid é definido como chave primária e todos os campos são do tipo texto. Como mostra a figura 5b, o conteúdo da tabela reflete o arquivo de texto. O seguinte comando importa um arquivo de texto para um banco de dados MySQL: anubisadm --create 'mysql://mail:u access4anubis@mysql.abyssworld.de/u mail;table=anubis_test' < /usr/local/u etc/anubis/anubisdb.txt Figura 5a: O PHP MyAdmin mostra uma estrutura de tabela MySQL usada como um repositório de dados Dixie para o. Todos os quatro campos são do tipo texto: user ID, password, Unix name e o caminho do arquivo de configuração. O comando especifica uma tabela alvo em um parâmetro do tipo URL a notação é confusa, já que os parâmetros não estão separados por &, como em um endereço HTTP, mas por ponto-e-vírgula ( ; ). A URL e os parâmetros precisam estar entre aspas simples ( ' ) para evitar que o shell se confunda. 68 julho 2006 edição 21

SysAdmin Quadro 2: Formatos de expressões regulares O entende algumas variantes de expressões regulares. A configuração usa as seguintes tags para identificar expressões regulares: P :regex ou :re - Expressão regular simples (Default Posix Extended). P :basic - Muda para Posix Basic. P :extended - Muda para Posix Extended (padrão) P :perl ou :perlre - Expressões regulares compatíveis com Perl (somente se o suporte PCRE estiver embutido no ). P :exact ou :ex - Sem expressões regulares. O padrão precisa casar perfeitamente. P :scase - Sensível a maiúsculas. P :icase - Insensível a maiúsculas. Uma declaração pode conter uma seqüência de tags. Por exemplo, :perl:scase significa sensível a maiúsculas, com expressões PCRE. A declaração regex :perl :scase configura isso como um padrão permanente. Integração Para especificar que o deve usar a nova tabela, o administrador precisa mudar o modo de autenticação de mode transparent para mode auth na seção de controle da configuração global anubisrc (veja a listagem 2, da linha 1 a 5). Também é necessário acrescentar o caminho das credenciais de usuário à seção AUTH (linhas 7 a 15). A listagem 2 mostra como fazer isso com um banco de dados MySQL. Além disso, usuários precisam dizer ao programa de email para usar a autenticação SMTP-AUTH ao enviar email. A listagem 3 mostra uma sessão Dixie funcional. A partir da linha 7, um cliente de email está se comunicando com o daemon. O cliente pode usar os mecanismos SASL, DIGEST-MD5 e CRAM- MD5 para autenticar. Todos os métodos transmitem uma senha em hash no lugar de texto puro. Na linha 9, é possível ver o programa de email lançando o comando STARTTLS para estabelecer uma conexão segura SSL com o daemon. Isso falha, pois o ainda não está configurado para esse tipo de conexão. Na linha 16, o programa de email e o concordam quanto ao mecanismo SASL CRAM-MD5. O daemon, então, procura pelo banco de dados MySQL por um registro que case com as credenciais do usuário haischt, e encontra esse registro (linhas 18 a 20). A linha 20 contém um detalhe interessante. É aqui que o associa o usuário haischt com o endereço me@daniel.stefan.haischt.name. A seção TRANSLATION cuida de mapear endereços de email a nomes locais (veja as últimas quatro linhas da listagem 2). Essa seção TRANSLATION do arquivo de configuração também pode mapear todos os endereços em um domínio para um nome compartilhado (translate Domain into user). O modo Dixie é útil, já que ele agrega padrões atuais como SMTP-AUTH e dá acesso a usuários sem uma conta Unix. Mas também é verdade que a implementação atual do modo Dixie tem algumas fraquezas. Figura 5b: A tabela MySQL tem as credenciais para o usuário haischt, que usa o modo Dixie de autenticação. A conta Unix desse usuário tem o mesmo nome. O arquivo de configuração está localizado em /home/haischt/.anubisrc. julho 2006 edição 21 69

SysAdmin Senhas são armazenadas no banco de dados de maneira aberta. O campo para o arquivo de configuração de usuário aponta para um arquivo existente. Seria mais prático armazenar parâmetros em um campo BLOB (Binary Large Object) para conjuntos de dados binários em um banco de dados ou em uma tabela separada. Como o tem as credenciais do usuário, o processamento de determinadas mensagens agora é possível. Por exemplo, é possível configurar o para assinar ou criptografar emails. Para permitir que isso ocorra, usuários precisam adicionar entradas à seção RULE de seus arquivos ~/.anubisrc. Você verá que é bem simples acrescentar atributos ao cabeçalho do email usando a sintaxe add header [nome] value: add header[x-processed-by] "GNU " O também entende execução condicional. Se um email tem um cabeçalho with-signature que contém um valor arbitrário (veja o quadro 2: Formatos de expressões regulares ), as seguintes linhas são tudo o que é necessário para remover o cabeçalho e acrescentar uma assinatura de texto no final da mensagem: if header [with-signature] :re ".*" remove [with-signature] signature-file-append yes A expressão signature-file-append yes acrescenta um separador --, seguido do conteúdo do arquivo ~/.signature. Já body-append acrescentaria o conteúdo de um arquivo qualquer no final da mensagem, enquanto bodyclear-append removeria a mensagem original, antes de fazer isso. Assunto Alguns clientes de email tornam difícil o acréscimo de cabeçalhos pelos usuários. O simplifica esse processo, através da análise (parsing) da linha de assunto: if header [Subject] "^ *\\[sig\\](.*)" remove [Subject] add [Subject] "\1" signature-file-append yes Essa instrução if verifica se o assunto começa com [sig] (sintaxe estendida Posix, especificada sem precisão). A linha do assunto é então removida completamente e uma nova linha que reflete a parte original do Listagem 3: Sessão Dixie 01 #> Reading system configuration file /usr/local/ etc/anubis/anubisrc... 02 #> UID:0 (root), GID:0, EUID:0, EGID:0 03 #> GNU bound to 192.168.1.6:24 04 #> [68643] GNU is running... 05 #> [68643] Connection from 192.168.120.10:40501 06 #CLIENT <<< 220 abyssone. abyssworld.de GNU ESMTP; Identify yourself(64) 07 #CLIENT >>> EHLO [192.168.121.2](22) 08 #CLIENT <<< 250- is pleased to meet you.(36) 09 #CLIENT <<< 250-STARTTLS(14) 10 #CLIENT <<< 250-AUTH DIGEST-MD5 CRAM-MD5 (31) 11 #CLIENT <<< 250 HELP(10) 12 #CLIENT >>> STARTTLS(10) 13 #[68647] anubis.pem: No such file or directory 14 #CLIENT <<< 454 TLS not available due to temporary reason(47) 15 #CLIENT >>> AUTH CRAM-MD5(15) assunto após [sig] é acrescentada. Para fazer isso, o \1 referencia a cadeia de caracteres nos parênteses passados pela expressão regular. A linha de assunto é tão útil para o envio de comandos que o tem sua própria sintaxe para cuidar disso, através de gatilhos. Usuários podem disparar eventos via email simplesmente incluindo comandos no final do assunto, seguidos por duas arrobas ( @@ ). Por exemplo, assunto@@assinar. O seguinte gatilho cuida de todo o resto: trigger "assinar" gpg-sign me@daniel.stefan.haischt.name done 16 #SASL mech=cram-md5, inp=null 17 #CLIENT <<< 334 PDE0MTU0NTMyOT UzMDA2MzI0MTIzLjBAbG9jYWxob3N0 Pg==(54) 18 #CLIENT >>> agfpc2nodca5zmq1md hkytyzyzq3odrioguwmzmzztnhmmuy M2VjZQ==(58) 19 #> [68647] Found record for `haischt. 20 #> [68647] Authentication passed. User name haischt, Local user haischt. Welcome! 21 #CLIENT <<< 235 Authentication successful.(32) 22 #> [68647] UID:1001 (haischt), GID:20, EUID:1001, EGID:20 23 #> [68647] Reading user configuration file /home/ haischt/.anubisrc... 24 #> [68647] Getting remote host information... 25 #> [68647] Connected to 192.168.1.6:25 26 #> [68647] Starting SMTP session... 27 #SERVER >>> 220 smtp. abyssworld.de ESMTP Postfix (2.2.3)(46) 70 julho 2006 edição 21

SysAdmin O comando gpg-sign assina o corpo do email com a chave ID especificada. Para permitir que isso aconteça, a keyring GPG precisa estar disponível no diretório ~/.gnupg, e o arquivo de configuração de usuário ~/.anubisrc precisa conter a senha GPG (gpg-passphrase minhasenha ). O GPG precisa da chave do usuário para criptografia. Um gatilho extendido que analise dados adicionais na linha do assunto também pode cuidar disso: trigger :extended "^encrypt:(.*)" gpg-encrypt "\1" add [X-GPG-Comment] "Encrypted for \1" done A linha de assunto deve conter o gatilho encrypt, seguida pela chave ID do destinatário: Olá João!@@encrypt: Receiver-Key. Conclusões Tarefas mais complexas precisam de uma linguagem de programação mais poderosa. O fornece isso na forma da linguagem de script Guile (um dialeto do Scheme). Também é possível usar programas externos para a manipulação de emails. Em combinação com comandos integrados, o GNU ainda possibilita técnicas extremamente flexíveis para o processamento de cabeçalhos e conteúdos de emails. A verdadeira força desse aplicativo é a habilidade de fazer qualquer tipo de manipulação de email que se possa imaginar. Ao mesmo tempo, o suporte PGP/GnuPG economiza bastante tempo que seria gasto com configurações. A autenticação de usuários ainda tem muito o que melhorar (o modo Pixie aplica a insegura técnica Ident, e o modo Dixie guarda senhas em texto puro no banco de dados). Keyrings PGP e configurações específicas de usuários são armazenadas no sistema de arquivos em vez do banco de dados. Fora isso, não há conectividade LDAP e PGP/Mime, junto com o fato de o sozinho ser incapaz de descriptografar mensagens que chegam. Esperamos que o futuro desenvolvimento continue a melhorar esse verdadeiro deus da manipulação de emails. Sobre o autor Informações [1] GNU Privacy Guard: www.gnupg.org [2] GPG Relay: sites.inka.de/tesla/gpgrelay.html [3] Kuvert: www.snafu.priv.at/mystuff/kuvert/ [4] PGP Universal: www.pgp.com/products/universal/ [5] GPG Shell (Windows): www.jumaros.de/rsoft/ [6] GNU : www.gnu.org/software/anubis/ [7] Python Ident Daemon: www.alcyone.com/software/fauxident/ [8] Windows Identd: identd.dyndns.org/identd/ [9] MSMTP: msmtp.sourceforge.net [10] ESMTP: esmtp.sourceforge.net [11] Plugin Enigmail: enigmail.mozdev.org Daniel S. Haischt já cursou um MBIS (Master Business Information Systems) e agora enfrenta um MBIM (Master Business Information Management) em Reutlingen, na Alemanha. Nas horas vagas, contribui em uma série de projetos de código aberto, se divertindo muito com configurações complexas de servidores. julho 2006 edição 21 71