Skip to main content

[Thủ Thuật Linux] Hướng dẫn thêm SASL vào Postfix với Dovecot

SASL là gì?

SASL là viết tắt của Lớp xác thực và bảo mật đơn giản, đó là một khung cho phép các nhà phát triển thực hiện các cơ chế xác thực khác nhau và cho phép khách hàng(client) và máy chủ đàm phán một cơ chế chấp nhận lẫn nhau cho mỗi kết nối (thay vì mã hóa cứng hoặc định cấu hình trước chúng).

Tại sao nên cài SASL 

Nếu mail server chuyển thư đến một miền khác (nghĩa là địa chỉ của người nhận không thuộc miền của chúng ta) và thư bắt nguồn từ bên ngoài mạng của chúng tôi, server được gọi là chuyển tiếp mở (open replay) .

Trong tình huống này, những kẻ gửi thư rác thường xuyên theo dõi và lợi dụng gửi email spam. Postfix cố gắng bảo vệ chúng ta theo mặc định bằng cách chỉ chuyển tiếp các mail đến từ network của chúng ta. Thật không may, việc hạn chế người dùng hợp pháp chỉ gửi e-mail qua máy chủ là không thực tế khi họ dùng chung network của chúng ta.

Vậy nên, công thức này hướng dẫn bạn cách thêm xác thực Lớp bảo mật và Xác thực Đơn giản (SASL) vào cấu hình của Postfix và Dovecot. Sau đó, Postfix sẽ chuyển tiếp email cho người dùng đã xác thực , bất kể vị trí network của họ, trong khi vẫn từ chối làm như vậy cho bất kỳ ai khác.

Hướng dẫn thêm SASL vào Postfix với Dovecot

Bước 1 - Mở và edit file  /etc/dovecot/conf.d/10-master.conf

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

Bước 2 - Mở và edit file /etc/dovecot/conf.d/10-auth.conf

auth_mechanisms=	plain login 

Bước 3 - Mở và edit file /etc/postfix/main.cf

Thêm đoạn code bên dưới

smtpd_sasl_auth_enable	=	yes 
smtpd_sasl_type	=	dovecot 
smtpd_sasl_path	=	private/auth 
smtpd_sasl_security_options	=	noanonymous

Bước 4 - Restart postfix và dovecot 

systemctl restart postfix.service
systemctl restart dovecot.service

Bước 5 - Kiểm tra

Tạo một user để test bằng cách làm theo lần lượt như sau

# tạo user account
useradd ruan
echo password | passwd --stdin ruan 

#Encode text theo Base64
 perl -MMIME::Base64 -e 'print encode_base64("ruan");'
#kết quả : cnVhbg==

perl -MMIME::Base64 -e 'print encode_base64("password");'
#kết quả : cGFzc3dvcmQ=


Sau đó nhập

$telnet smtp.nguyenphudung.com 25

ehlo smtp.nguyenphudung.com

EHLO smtp.nguyenphudung.com
250-relay.smtp.nguyenphudung.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

AUTH LOGIN
334 VXNlcm5hbWU6
cnVhbg==
334 UGFzc3dvcmQ6
cGFzc3dvcmQ=
235 2.7.0 Authentication successful

Nếu xuất hiện như trên là bạn đã cài đặt thành công