Re: Ny Postfix howto

From: Thomas Steen Rasmussen (none@thomas--gibfest.dk.lh.bsd-dk.dk)
Date: Fri 13 Aug 2010 - 18:25:49 CEST


Date: Fri, 13 Aug 2010 18:25:49 +0200
From: Thomas Steen Rasmussen <none@thomas--gibfest.dk.lh.bsd-dk.dk>
To: bsd-dk@nerdgirl.dk
Subject: Re: Ny Postfix howto

On 13-08-2010 16:02, Jette Derriche wrote:
> På dette års "The Camp" fik jeg lejlighed til at modernisere mit
> mail-setup, som nu ser således ud:
>
> Postfix, MySQL, Dovecot, Sieve, Amavis, ClamAV, Roundcube
> ... og med FreeBSD 8.1 under motorhjelmen.
>
> Jeg har med vanlig præcision nedfældet mine handlinger.
> http://www.nerdgirl.dk/?p=455
>
> Håber nogen får glæde af det... Ligesom jeg havde glæde af alle de rare
> og hjælpsomme mennesker på Græsrodsgården i uge 30 :-)
>
>
> /Jette
>
>
>
Hej Jette,

Sikke et arbejde, godt lavet!
To små kommentarer, begge sikkerhedsrelaterede:

1. Man bør ikke nøjes med en md5 hash af passwords i databasen. Grunden
til dette er at hvis din server en dag bliver hacket og databasen bliver
stjålet så er det relativt nemt/billigt i cpu tid at reverse en md5 hash
til
klar-tekst passwords hvis man bruger en rainbow table eller et site som
http://www.c0llision.net/webcrack.php - der er mange måder.
Mange brugere anvender jo desværre samme password til forskellige services
så det er naturligvis noget skidt hvis passwords kan findes rimelig nemt.
Løsningen er at bruge noget salt i hashen, den kan vi tage en dag til
happy hacking hvis det er. Men i bund og grund vælger du i Dovecot et
andet password scheme i din dovecot-sql.conf:

default_pass_scheme = MD5-CRYPT

Og så bruger du programmet dovecotpw til at generere hashes som så
puttes i databasen, uden yderligere ændringer til configs.

2. Du verificerer ikke afsender adresser. Jeg ved ikke hvor meget du
stoler på dine brugere, men principielt bør brugere jo kun have adgang
til at sende mail fra deres egen adresse. Det løser man i Postfix med:

smtpd_sender_restrictions = reject_sender_login_mismatch

og

smtpd_sender_login_maps = pgsql:/usr/local/etc/postfix/sendermaps.sql

(du bruger dog naturligvis mysql istedet for pgsql)

.sql filen indeholder:
[tykling@mail ~]$ cat /usr/local/etc/postfix/sendermaps.sql
hosts=10.16.255.155
user=dovecot
password=fjernet
dbname=mail
query = SELECT * FROM envelope_sender_permissions WHERE envelope_sender
= '%s'

og tabellen ser således ud:
mail=# SELECT * from envelope_sender_permissions where
permitted_sasl_usernames = 'thomas@gibfest.dk';
  id | envelope_sender | permitted_sasl_usernames
----+-------------------+--------------------------
   8 | thomas@gibfest.dk | thomas@gibfest.dk
  38 | abuse@gibfest.dk | thomas@gibfest.dk

Som du kan se har jeg ret til at sende fra min egen adresse
(naturligvis) men
også fra abuse@gibfest.dk (som iøvrigt kun er et alias). Hvis jeg prøver
at sende fra
en anden adresse får jeg en afvisning fra Postfix.

Ellers ser det meget fint ud, ligner meget min egen opsætning :)

Mvh

Thomas Tykling

ps. Jeg kendte ikke "telnet relay-test.mail-abuse.org" - den er nice nok.|
|



This archive was generated by hypermail 2b30 : Tue 31 Aug 2010 - 23:00:00 CEST