Android

Cài đặt và tích hợp rspamd

How to Stop Spam With Postfix Linux Email Server

How to Stop Spam With Postfix Linux Email Server

Mục lục:

Anonim

Đây là phần thứ ba của Thiết lập và định cấu hình máy chủ thư của chúng tôi. Trong hướng dẫn này, chúng tôi sẽ thực hiện cài đặt và cấu hình hệ thống lọc thư rác Rspamd và tích hợp nó vào máy chủ thư của chúng tôi, tạo bản ghi DNS DKIM và DMARC.

Bạn có thể hỏi tại sao chúng tôi chọn đi với Rspamd mà không phải với Spamassassin. Rspamd được duy trì và viết tích cực hơn bằng C và nó nhanh hơn nhiều so với Spamassassin được viết bằng Perl. Một lý do khác là Rspamd đi kèm với một mô-đun ký DKIM vì vậy chúng tôi sẽ không phải sử dụng một phần mềm khác để ký email gửi đi của chúng tôi.

Điều kiện tiên quyết

Trước khi tiếp tục với hướng dẫn này, hãy đảm bảo bạn đã đăng nhập với tư cách là người dùng có quyền sudo.

Cài đặt Redis

Redis sẽ được Rspamd sử dụng làm hệ thống lưu trữ và lưu trữ, để cài đặt nó chỉ cần chạy:

sudo apt install redis-server

Cài đặt không giới hạn

Không ràng buộc là một trình phân giải DNS xác thực, đệ quy và bộ đệm ẩn rất an toàn.

Mục đích chính của việc cài đặt dịch vụ này là để giảm số lượng yêu cầu DNS bên ngoài. Bước này là tùy chọn và có thể bỏ qua.

sudo apt update sudo apt install unbound

Cài đặt Không giới hạn mặc định phải đủ cho hầu hết các máy chủ.

Để đặt không liên kết làm trình phân giải DNS chính của máy chủ của bạn chạy các lệnh sau:

sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head sudo resolvconf -u Nếu bạn không sử dụng độ resolvconf thì bạn cần chỉnh sửa tệp /etc/resolv.conf theo cách thủ công.

Cài đặt Rspamd

Chúng tôi sẽ cài đặt phiên bản ổn định mới nhất của Rspamd từ kho lưu trữ chính thức của nó.

Bắt đầu bằng cách cài đặt các gói cần thiết:

sudo apt install software-properties-common lsb-release sudo apt install lsb-release wget

Thêm khóa GPG của kho lưu trữ vào khóa nguồn apt của bạn bằng lệnh wget sau:

wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -

Kích hoạt kho lưu trữ Rspamd bằng cách chạy:

echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list

Khi kho lưu trữ được kích hoạt, hãy cập nhật chỉ mục gói và cài đặt Rspamd bằng các lệnh sau:

sudo apt update sudo apt install rspamd

Cấu hình Rspamd

Thay vì sửa đổi các tệp cấu hình stock, chúng tôi sẽ tạo các tệp mới trong thư mục /etc/rspamd/local.d/local.d/ sẽ ghi đè cài đặt mặc định.

Theo mặc định, normal worker của Rspamd, normal worker nhân quét các email nghe trên tất cả các giao diện trên cổng 11333. Tạo tệp sau để định cấu hình nhân viên bình thường Rspamd chỉ nghe giao diện localhost:

/etc/rspamd/local.d/worker-n normal.inc

bind_socket = "127.0.0.1:11333";

Nhân proxy worker lắng nghe trên cổng 11.332 và hỗ trợ giao thức milter. Để Postfix liên lạc với Rspamd, chúng ta cần kích hoạt chế độ vắt sữa:

/etc/rspamd/local.d/worker-proxy.inc

bind_socket = "127.0.0.1:11332"; milter = yes; timeout = 120s; upstream "local" { default = yes; self_scan = yes; }

Tiếp theo, chúng ta cần thiết lập mật khẩu cho máy chủ controller worker cung cấp quyền truy cập vào giao diện web Rspamd. Để tạo mật khẩu được mã hóa, hãy chạy:

rspamadm pw --encrypt -p P4ssvv0rD

Đầu ra sẽ trông giống như thế này:

$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb Đừng quên thay đổi mật khẩu ( P4ssvv0rD ) thành một cái gì đó an toàn hơn.

Sao chép mật khẩu từ thiết bị đầu cuối của bạn và dán nó vào tập tin cấu hình:

/etc/rspamd/local.d/worker-controll.inc

password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";

Sau đó, chúng tôi sẽ định cấu hình Nginx làm proxy ngược cho máy chủ web của trình điều khiển để chúng tôi có thể truy cập vào giao diện web Rspamd.

Đặt Redis làm phụ trợ cho thống kê Rspamd bằng cách thêm các dòng sau vào tệp classifier-bayes.conf :

/etc/rspamd/local.d/ classifier-bayes.conf

servers = "127.0.0.1"; backend = "redis";

Mở tệp milter_headers.conf và đặt tiêu đề milter:

/etc/rspamd/local.d/milter_headers.conf

use =;

Bạn có thể tìm thêm thông tin về các tiêu đề sữa ở đây.

Cuối cùng khởi động lại dịch vụ Rspamd để các thay đổi có hiệu lực:

sudo systemctl restart rspamd

Cấu hình Nginx

Trong phần đầu tiên của loạt bài này, chúng tôi đã tạo một khối máy chủ Nginx cho phiên bản PostfixAdmin.

Mở tệp cấu hình Nginx và thêm chỉ thị vị trí sau, tệp được tô sáng màu vàng:

/etc/nginx/sites-enables/mail.linuxize.com

… location /rspamd { proxy_pass http://127.0.0.1:11334/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }…

Tải lại dịch vụ Nginx để các thay đổi có hiệu lực:

sudo systemctl reload nginx

rspamadm pw https://mail.linuxize.com/rspamd/ , nhập mật khẩu bạn đã tạo trước đó bằng lệnh rspamadm pw và bạn sẽ được trình bày với giao diện web Rspamd.

Cấu hình Postfix

Chúng ta cần cấu hình Postfix để sử dụng bộ lọc Rspamd.

Chạy lệnh sau để cập nhật tệp cấu hình chính Postfix:

sudo postconf -e "milter_protocol = 6" sudo postconf -e "milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}" sudo postconf -e "milter_default_action = accept" sudo postconf -e "smtpd_milters = inet:127.0.0.1:11332" sudo postconf -e "non_smtpd_milters = inet:127.0.0.1:11332"

Khởi động lại dịch vụ Postfix để các thay đổi có hiệu lực:

sudo systemctl restart postfix

Cấu hình Dovecot

Chúng tôi đã cài đặt và định cấu hình Dovecot trong phần thứ hai của loạt bài này và bây giờ chúng tôi sẽ cài đặt mô đun lọc sieve và tích hợp Dovecot với Rspamd.

Bắt đầu bằng cách cài đặt mô-đun lọc Dovecot:

sudo apt install dovecot-sieve dovecot-managesieved

Khi các gói được cài đặt, mở các tệp sau và chỉnh sửa các dòng được tô màu vàng.

/etc/dovecot/conf.d/20-lmtp.conf

… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins sieve }… /etc/dovecot/conf.d/20-imap.conf

… protocol imap {… mail_plugins = $mail_plugins imap_quota imap_sieve… }… /etc/dovecot/conf.d/20-managesieve.conf

… service managesieve-login { inet_listener sieve { port = 4190 }… }… service managesieve { process_limit = 1024 }… /etc/dovecot/conf.d/90-sieve.conf

plugin {… # sieve = file:~/sieve;active=~/.dovecot.sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_before = /var/mail/vmail/sieve/global/spam-global.sieve sieve = file:/var/mail/vmail/sieve/%d/%n/scripts;active=/var/mail/vmail/sieve/%d/%n/active-script.sieve imapsieve_mailbox1_name = Spam imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_before = file:/var/mail/vmail/sieve/global/report-spam.sieve imapsieve_mailbox2_name = * imapsieve_mailbox2_from = Spam imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_before = file:/var/mail/vmail/sieve/global/report-ham.sieve sieve_pipe_bin_dir = /usr/bin sieve_global_extensions = +vnd.dovecot.pipe…. }

Lưu và đóng các tập tin.

Tạo một thư mục cho các kịch bản sàng:

mkdir -p /var/mail/vmail/sieve/global

Tạo bộ lọc sàng toàn cầu để di chuyển các email được đánh dấu là spam vào thư mục Spam :

/var/mail/vmail/sieve/global/spam-global.sieve

require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }

Hai tập lệnh sàng sau sẽ được kích hoạt bất cứ khi nào bạn di chuyển email vào hoặc ra khỏi Spam :

/var/mail/vmail/sieve/global/report-spam.sieve

require; pipe:copy "rspamc"; /var/mail/vmail/sieve/global/report-ham.sieve

require; pipe:copy "rspamc";

Khởi động lại dịch vụ Dovecot để các thay đổi có hiệu lực:

sudo systemctl restart dovecot

Biên dịch các kịch bản sàng và đặt quyền chính xác:

sievec /var/mail/vmail/sieve/global/spam-global.sieve sievec /var/mail/vmail/sieve/global/report-ham.sieve sudo chown -R vmail: /var/mail/vmail/sieve/

Tạo khóa DKIM

Thư xác định tên miền (DKIM) là một phương thức xác thực email có thêm chữ ký mã hóa vào các tiêu đề thư đi. Nó cho phép người nhận xác minh rằng một email tuyên bố có nguồn gốc từ một tên miền cụ thể thực sự được ủy quyền bởi chủ sở hữu của tên miền đó. Mục đích chính của việc này là để ngăn chặn các email giả mạo.

Chúng tôi có thể có các khóa DKIM khác nhau cho tất cả các tên miền của chúng tôi và thậm chí nhiều khóa cho một tên miền nhưng để đơn giản bài viết này, chúng tôi sẽ sử dụng một khóa DKIM duy nhất mà sau này có thể được sử dụng cho tất cả các tên miền mới.

Tạo một thư mục mới để lưu trữ khóa DKIM và tạo cặp khóa DKIM mới bằng tiện ích rspamadm :

sudo mkdir /var/lib/rspamd/dkim/ rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub sudo mkdir /var/lib/rspamd/dkim/ rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub

Trong ví dụ trên, chúng tôi đang sử dụng mail làm công cụ chọn DKIM.

Bây giờ bạn sẽ có hai tệp mới trong thư mục /var/lib/rspamd/dkim/ , mail.key là tệp khóa riêng của chúng tôi và mail.pub một tệp chứa khóa công khai DKIM. Chúng tôi sẽ cập nhật hồ sơ khu vực DNS của chúng tôi sau.

Đặt quyền sở hữu và quyền chính xác:

sudo chown -R _rspamd: /var/lib/rspamd/dkim sudo chmod 440 /var/lib/rspamd/dkim/*

Bây giờ chúng tôi cần cho Rspamd biết nơi tìm khóa DKIM, tên của bộ chọn và dòng cuối cùng sẽ cho phép ký DKIM cho các địa chỉ người gửi bí danh. Để làm điều đó, tạo một tệp mới với các nội dung sau:

/etc/rspamd/local.d/dkim_signing.conf

selector = "mail"; path = "/var/lib/rspamd/dkim/$selector.key"; allow_username_mismatch = true;

Rspamd cũng hỗ trợ ký cho chữ ký Chuỗi nhận được xác thực (ARC). Bạn có thể tìm thêm thông tin về đặc tả ARC tại đây.

Rspamd đang sử dụng mô-đun DKIM để xử lý chữ ký ARC để chúng tôi có thể sao chép cấu hình trước đó một cách đơn giản:

sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf

Khởi động lại dịch vụ Rspamd để các thay đổi có hiệu lực:

sudo systemctl restart rspamd

Cài đặt DNS

Chúng tôi đã tạo một cặp khóa DKIM và bây giờ chúng tôi cần cập nhật vùng DNS của mình. Khóa công khai DKIM được lưu trong tệp mail.pub . Nội dung của tệp sẽ như thế này:

cat /var/lib/rspamd/dkim/mail.pub

mail._domainkey IN TXT ("v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4yl" "nVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB");

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB

Chúng tôi cũng sẽ tạo Xác thực thư dựa trên tên miền ( DMARC ) được thiết kế để báo cho máy chủ nhận biết có chấp nhận email từ một người gửi cụ thể hay không. Về cơ bản, nó sẽ bảo vệ tên miền của bạn chống lại việc giả mạo tên miền trực tiếp và cải thiện danh tiếng tên miền của bạn.

chúng tôi sẽ thực hiện chính sách DMARC sau:

_dmarc IN TXT "v=DMARC1; p=none; adkim=r; aspf=r;"

Hãy phá vỡ kỷ lục DMARC ở trên:

  • v=DMARC1 - Đây là định danh DMARC p=none - Điều này cho người nhận biết phải làm gì với các thông báo không DMARC. Trong trường hợp của chúng tôi, nó được đặt thành không có nghĩa là không có hành động nếu một tin nhắn không thành công DMARC. Bạn cũng có thể sử dụng 'từ chối' hoặc quarantine adkim=r aspf=r - căn chỉnh DKIM SPF , r cho Thư giãn và s cho Nghiêm, trong trường hợp của chúng tôi, chúng tôi đang sử dụng Thư giãn cho cả DKIM và SPF.

Tương tự như trước đây nếu bạn đang chạy máy chủ DNS Bind của riêng mình, bạn chỉ cần sao chép và dán bản ghi vào tệp vùng miền của mình và nếu bạn đang sử dụng nhà cung cấp DNS khác, bạn cần tạo bản ghi TXT với _dmarc làm tên và v=DMARC1; p=none; adkim=r; aspf=r; v=DMARC1; p=none; adkim=r; aspf=r; như một giá trị / nội dung.

Có thể mất một lúc để các thay đổi DNS lan truyền. Bạn có thể kiểm tra xem các bản ghi đã được truyền bằng lệnh đào chưa:

dig mail._domainkey.linuxize.com TXT +short

"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGa" "VuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFdepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB"

dig _dmarc.linuxize.com TXT +short

"v=DMARC1; p=none; adkim=r; aspf=r;"

Bạn cũng có thể kiểm tra chính sách DMARC hiện tại của tên miền hoặc tạo chính sách DMARC của riêng bạn tại đây.

Phần kết luận

Đó là phần này của hướng dẫn. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ tiếp tục với cài đặt và cấu hình RoundCube.

bưu điện máy chủ bưu điện dovecot dns rspamd

Bài đăng này là một phần của Thiết lập và định cấu hình loạt máy chủ thư.

Các bài viết khác trong loạt bài này:

• Thiết lập máy chủ thư với PostfixAdmin • Cài đặt và định cấu hình Postfix và Dovecot • Cài đặt và Tích hợp Rspamd • Cài đặt và Định cấu hình Webmail Roundcube