Path: csiph.com!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Patricia Ferreira Newsgroups: pt.comp.programacao Subject: Re: como montar um servidor de e-mail nos =?utf-8?Q?padr=C3=B5es?= de hoje Date: Tue, 12 Nov 2024 22:40:05 -0300 Organization: A noiseless patient Spider Lines: 165 Message-ID: <877c97lxmy.fsf@example.com> References: <87frpl43k7.fsf@example.com> <87setkyyj5.fsf@lispclub.com> <87setkyoux.fsf@example.com> <87frpi69c8.fsf@lispclub.com> <87ldyinvb2.fsf@example.com> <87r089wque.fsf@lispclub.com> <87a5exmbh9.fsf@example.com> <87plns7hrh.fsf@lispclub.com> <87v7xkjqu1.fsf@example.com> <87r088fhqv.fsf@lispclub.com> <87sesohzg9.fsf@example.com> <87ed3kwp6z.fsf@example.com> <87v7wwozkp.fsf@ic.ufrj.br> <871pzjxdut.fsf@example.com> <87r07jvyp0.fsf@example.com> <87cyj1rgtk.fsf@example.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Wed, 13 Nov 2024 02:40:05 +0100 (CET) Injection-Info: dont-email.me; posting-host="28366000ab524cbe2c77653d04aed304"; logging-data="1978682"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Hgc2DTbeiLKXyezoFETy2zjXPvJow6VU=" Cancel-Lock: sha1:GnX38XE9Fgg0Qm25x4b1YMzHO34= sha1:CH6QTv0+NYXnMePYHR92oDKr3KQ= Xref: csiph.com pt.comp.programacao:345 Patricia Ferreira writes: > Patricia Ferreira writes: > >> Patricia Ferreira writes: >> >>> Patricia Ferreira writes: >>> >>> [...] >>> >>>>> Vou precisar recompilar o sendmail pra habilitar autenticação de >>>>> clientes: o sendmail precompilado do FreeBSD não vem com suporta a >>>>> autenticação. Nem com AUTH PLAIN nem qualquer outro mecanismo. >>>> >>>> Cerqueira, estou com um sendmail perfeitamente operacional. >>>> Retransmissão de e-mail completamente fechada exceto pra usuários com >>>> senha devidamente cadastrada. Métodos de autenticação DIGEST-MD5 e >>>> CRAM-MD5. STARTTLS em perfeita operação também. Servidor POP3 em >>>> operação também e exigindo TLS. Mas sem DKIM. Próxima tarefa então vai >>>> ser aderir ao DKIM. Mais notícias em breve. >>> >>> Cerqueira, tenho DKIM em operação. Mas tem coisas a serem >>> investigadas. Por exemplo, agora num primeiro teste, a mensagem é >>> realmente enviada e encontro uma assinatura nela: >>> >>> --8<-------------------------------------------------------->8--- >>> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=my.domain; s=default; >>> t=1731254856; bh=ecGWgWCJeWxJFeM0urOVWP+KOlqqvsQYKOpYUP8nk7I=; >>> h=Date:To:From:Subject; >>> b=Hg9ThE+cWPxSdOxilB/8JDzVG6PqWfvVg4Kjz1hdcC7iUoh6BVvqW2crkd2z0xsWb >>> NK7y07dwf+y3+0rJOg4XIXH4+Csl+AYhYFa9kZEqpNH3oIrBjc2NSmkjf/84KZ8HWW >>> pPVkxQtkY1TL4lu9hBokdgDJNoXO/gcBuN96Rk7Y= >>> --8<-------------------------------------------------------->8--- >>> >>> Por outro lado, mx.google.com anota o seguinte cabeçalho: >>> >>> --8<-------------------------------------------------------->8--- >>> Authentication-Results: mx.google.com; >>> dkim=permerror (no key for signature) header.i=@my.domain header.s=default header.b=Hg9ThE+c; >>> spf=pass (google.com: domain of me@my.domain designates 1.2.3.4 as permitted sender) smtp.mailfrom=me@my.domain >>> --8<-------------------------------------------------------->8--- >>> >>> Note que troquei meu domínio verdadeiro por my.domain e meu usuário por >>> me, bem como meu endereço IP por 1.2.3.4. Somos tão sensíveis na >>> Internet de hoje. :) >>> >>> Note que minha chave está cadastrada na minha zona de DNS: >>> >>> --8<-------------------------------------------------------->8--- >>> %host -t txt my.domain >>> my.domain descriptive text "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9yjHh4+28QGxMOXOVIxQM5kpESx1ILsdtVRwqwVEmnNozOgPdx8N42iHPlpvYALsDdHxX/sY6AYurdZCgtRSlnieoCFu2eeA7KczpO8o8evpqzUqEUnxH7YIFbi4ZqP+FMocNal4WCPWr5XLdsyQ7mQacVb3L/AxUOIyUvclPnQIDAQAB" >>> my.domain descriptive text "v=spf1 a mx ip4:1.2.3.4 -all" >>> --8<-------------------------------------------------------->8--- >> >> Cadastrei-a incorretamente. A chave pública precisa estar em >> >> default._domainkey.my.domain. >> >> Ajustei e learndmarc.com confirma a instalação. O mx.google.com >> continua a dizer que não encontra a chave pública do filtro dkim, mas >> isso pode ser caching the DNS em mx.google.com. Agora é esperar. Ele >> deveria usar o cache por no máximo 1 minuto, já que esse é o tempo de >> caching que tenho configurado na minha zona, mas não há mais nada a >> fazer senão esperar. Valeu! > > Era caching mesmo. > > Aproveitei o momento SMTP da minha vida e configurei DMARC também. > Comecei com a política mais agressiva possível: > > # host -t txt _dmarc.my.domain > _dmarc.my.domain descriptive text "v=DMARC1; p=reject; aspf=s; adkim=s; rua=mailto:postmaster@my.domain;" > > Instalei o OpenDMARC. > > Não parece ainda que tudo está certo. Embora mx.google.com confirme que > tudo está certo e aprove meus e-mails pra lá, parece que meu próprio > sendmail não aprova minhas próprias mensagens. Eis uns cabeçalhos > recebidos por mx.google.com de uma mensagem minha enviada pra lá. > > --8<-------------------------------------------------------->8--- > Delivered-To: me@remote.host > Received: by 2002:a17:505:5392:b0:1be7:a527:160d with SMTP id ma18csp4442001njb; > Mon, 11 Nov 2024 05:14:27 -0800 (PST) > X-Google-Smtp-Source: [...] > X-Received: by 2002:a05:6808:1520:b0:3e6:63b5:f248 with SMTP id [...]; > Mon, 11 Nov 2024 05:14:26 -0800 (PST) > ARC-Seal: i=1; a=rsa-sha256; t=1731330866; cv=none; > d=google.com; s=arc-20240605; > b=[...] > ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; > h=message-id:subject:from:to:date:dkim-signature; > bh=[...]; > fh=[...]; > b=[...]; > dara=google.com > ARC-Authentication-Results: i=1; mx.google.com; > dkim=pass header.i=@my.domain header.s=default header.b=hlrKpCsb; > spf=pass (google.com: domain of me@my.domain designates 1.2.3.4 as permitted sender) smtp.mailfrom=me@my.domain; > dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=my.domain > Return-Path: > Received: from my.domain (mx.my.domain. [1.2.3.4]) > by mx.google.com with ESMTPS id [...] > for > (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); > Mon, 11 Nov 2024 05:14:26 -0800 (PST) > Received-SPF: pass (google.com: domain of me@my.domain designates 1.2.3.4 as permitted sender) client-ip=1.2.3.4; > Authentication-Results: mx.google.com; > dkim=pass header.i=@my.domain header.s=default header.b=hlrKpCsb; > spf=pass (google.com: domain of me@my.domain designates 1.2.3.4 as permitted sender) smtp.mailfrom=me@my.domain; > dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=my.domain > Received: from my.domain (mx.my.domain [1.2.3.4]) > (authenticated bits=0) > by my.domain (8.18.1/8.18.1) with ESMTPA id 4ABDEK9W052215 > for ; Mon, 11 Nov 2024 10:14:21 -0300 (-03) > (envelope-from me@my.domain) > Authentication-Results: my.domain; dmarc=fail (p=reject dis=none) header.from=my.domain > DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=my.domain; > s=default; t=1731330861; > bh=[...]; > h=Date:To:From:Subject; > b=[...] > Date: Mon, 11 Nov 2024 10:14:18 -0300 > To: me@remote.host > From: me@my.domain > Subject: test Mon, 11 Nov 2024 10:14:18 -0300 > Message-Id: <20241111101418.052214@my.domain> > X-Mailer: swaks v20240103.0 jetmore.org/john/code/swaks/ > X-Test: test email > > [... body ...] > --8<-------------------------------------------------------->8--- Primeiro note aí que na verdade meu sendmail não adiciono um cabeçalho SPF como eu disse que adicionava. Mas mesmo depois de corrigir isso, o resultado continuou o mesmo. O que me disseram pra fazer é simplesmente não permitir que o OpenDMARC faça essas verificações de mensagens originadas do meu próprio sendmail. Não compreendi bem por quê desse /rationale/, mas segui o conselho e pedi ao OpenDMARC pra ignorar qualquer conexão autenticada, --8<-------------------------------------------------------->8--- ## IgnoreAuthenticatedClients { true | false } ## default "false" ## ## If set, causes mail from authenticated clients (i.e., those that used ## SMTP AUTH) to be ignored by the filter. # IgnoreAuthenticatedClients true --8<-------------------------------------------------------->8--- o que se aplica a todas que disparam e-mail pelo meu sendmail. Sendo assim, o problema foi eliminado. Meu próximo passo é aguardar por relatórios DMARC oriundos de sistemas Internet afora e também preparar o envio dos meus. Sendo que, na verdade, antes vou trabalhar num novo programa em Common Lisp. É um programa que escrevi em Perl, na verdade. Ele foi quebrado devido a alguma evolução Perl. Quero entender o que houve, consertá-lo e também reescrevê-lo em Lisp. O programa é muito útil pra ficar em Perl. O programa consome um artigo NNTP pela entrada padrão e posta num servidor NNTP. Valeu, Cerqueira, por toda a ajuda. Acho que já podemos descansar um pouco de SMTP---por ora.