Cài đặt ParseDMARC trên Ubuntu 20.04

Giới thiệu về ParseDMARC #

DMARC là một tiêu chuẩn để chặn spammer khỏi việc sử dụng domain của người sở hữu mà không được sự cho phép của họ mà ta hay gọi nó là spoofing. Thực tế, khi sử dụng mail, bất kỳ ai cũng có thể giả mạo địa chỉ tại trường “From” trong mail gửi đi một cách dễ dàng. DMARC sẽ đảm bảo những mail giả mạo này sẽ bị chặn trước khi chúng đến được mailbox của người nhận và hơn thế nữa, chỉ những mail hợp lệ mới được chấp nhận vào hệ thống. ParseDMARC là một công cụ mã nguồn mở giúp người quản trị theo dõi và xuất báo cáo dựa trên dữ liệu về DMARC hiện tại trên Mail Server.

Chuẩn bị môi trường #

Do ParseDMARC sử dụng dữ liệu được thu thập và phân tích bởi Elasticsearch và Kibana nên cấu hình tối thiểu là:

  • CPU 4 core
  • 4GB RAM
  • 10GB dung lượng trống
  • Ubuntu Server 20.04
  • User có quyền sudo

Cài đặt ParseDMARC #

Trước hết cần cài đặt python3-pip và geoipupdate:

sudo apt install python3-pip geoipupdate

Sau đó cài đặt ParseDMARC:

sudo -H pip3 install -U parsedmarc

Sau khi cài xong, bạn có thể xác nhận lại rằng quá trình cài đặt đã thành công:

parsedmarc --help

Cài đặt Elasticsearch và Kibana #

ParseDMARC là một chương trình dựa trên các câu lệnh. Chính vì vậy mà việc đọc các thông tin xuất ra sẽ rất khó khăn. Do đó, để thuận tiện cho việc theo dõi thông tin và đọc báo cáo, mình sẽ sử dụng Elasticsearch và Kibana. Trước hết, bạn hãy cài 2 công cụ này như sau:

sudo apt-get install -y apt-transport-https

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

sudo apt-get update

sudo apt-get install -y default-jre-headless elasticsearch kibana

Sau đó, bạn hãy bật dịch vụ Elasticsearch và kích hoạt khởi động cùng hệ thống:

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Tương tự bạn cũng bật với Kibana:

sudo systemctl start kibana
sudo systemctl enable kibana

Cài đặt Reverse Proxy sử dụng Nginx cho Elasticsearch #

Elastic Web Server sẽ lắng nghe tại 127.0.0.1:5601 nên ban cần sử dụng Nginx để cho phép người dùng từ xa có thể truy cập vào. Trước hết cài đặt Nginx như sau:

sudo apt install nginx

Tạo file cấu hình cho Elastic:

sudo nano /etc/nginx/conf.d/elastic.conf

Thêm đoạn cấu hình sau vào file:

server {
      listen 80;
      listen [::]:80; 
      server_name dmarc.yourdomain.com;

      access_log /var/log/nginx/dmarc.access;
      error_log /var/log/nginx/dmarc.error;

      add_header X-Frame-Options SAMEORIGIN; 
      add_header X-Content-Type-Options nosniff;

      location / {
         proxy_pass http://127.0.0.1:5601;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
}

Lưu lại file cấu hình và kiểm tra cú pháp xem các cấu đã đúng hay chưa:

sudo nginx -t

Thực hiện làm mới Nginx với cấu hình mới trên:

sudo systemctl reload nginx

Kích hoạt HTTPS #

Để sử dụng HTTPS cho Elastic Web Server, bạn cần tạo ssl sử dụng Let’s Encrypt. Do vậy, thực hiện cài đặt như sau:

sudo apt install certbot
sudo apt install python3-certbot-nginx

Sau khi cài đặt xong, bạn hãy thực hiện tạo chứng chỉ ssl cho Nginx theo câu lệnh sau:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d dmarc.yourdomain.com

Giới hạn truy cập vào Elastic Web #

Mặc định, Elastic Web không cung cấp cơ chế xác thức người dùng. Chính vì thế, bạn cần cấu hình thêm phương thức xác thực để tăng bảo mật. Thực hiện cài đặt gói cần thiết như bên dưới:

sudo apt install apache2-utils

Sau đó, thực hiện tạo người dùng admin như bên dưới:

sudo htpasswd -c /etc/nginx/htpasswd admin

Tiếp tục chỉnh sửa file cấu hình Elastic của Nginx:

sudo nano /etc/nginx/conf.d/elastic.conf

Thêm các cấu hình sau vào phần listen 443 ssl:

auth_basic "Login required";
auth_basic_user_file /etc/nginx/htpasswd;

Làm mới lại Nginx để cập nhật cấu hình mới:

sudo systemctl reload nginx

Như vậy, khi bạn truy cập vào Elastic Web sẽ phải nhập tài khoản và mật khẩu tương ứng đã tạo trước đó.

Cấu hình ParseDMARC #

Để ParseDMARC có thể gửi dữ liệu tới Elasticsearch, bạn cần tạo file cấu hình như sau:

sudo nano /etc/parsedmarc.ini

Thêm đoạn cấu hình sau:

[general]
# Save aggregate and forensic reports to Elasticsearch
save_aggregate = True
save_forensic = True

[imap]
# Log into the DMARC report email address and download data.
host = mail.yourdomain.com
port = 993
ssl = True
user = dmarc@yourdomain.com
password = your_password_here
watch = True

[elasticsearch]
# Send data to Elastichsearch, which listens on port 9200.
hosts = 127.0.0.1:9200
ssl = False

[smtp]
# For sending email
host = mail.yourdomain.com
port = 587
ssl = True
user = dmarc@yourdomain.com
password = your_password_here
from = dmarc@yourdomain.com

# send results to this address
to = admin@yourdomain.com

Lưu lại file cấu hình trên.

Tạo service cho ParseDMARC #

Để tiện cho việc tự động bật ParseDMARC cùng hệ thống, bạn cần phải tạo một service để thực thi bởi systemd. Thực hiện tạo file cấu hình service như bên dưới:

sudo nano /etc/systemd/system/parsedmarc.service

Thêm đoạn cấu hình sau:

[Unit]
Description=parsedmarc mailbox watcher
Documentation=https://domainaware.github.io/parsedmarc/
Wants=network-online.target
After=network.target network-online.target elasticsearch.service

[Service]
ExecStart=/usr/local/bin/parsedmarc -c /etc/parsedmarc.ini
User=parsedmarc
Group=parsedmarc
Restart=always
RestartSec=5m

[Install]
WantedBy=multi-user.target

Lưu lại file cấu hình trên, Systemd sẽ chạy service trên với người dùng parsedmarc nên bạn cần phải tạo user này như sau:

sudo adduser --system --no-create-home --group parsedmarc

Tiếp theo cần chỉnh sửa quyền của file cấu hình:

sudo chown parsedmarc /etc/parsedmarc.ini
sudo chmod 600 /etc/parsedmarc.ini
sudo setfacl -R -m "u:parsedmarc:rwx" /usr/share/elasticsearch/modules/ingest-geoip/

Cuối cùng là chạy dịch vụ và bật khởi động cùng hệ thống cho dịch vụ parsedmarc:

sudo systemctl start parsedmarc
sudo systemctl enable parsedmarc

Nhập khung phân tích ParseDMARC vào Kibana #

Để có thể sử dụng Kibana cho việc hiển thị thông tin của ParseDMARC, bạn cần nhập vào khung phân tích của ParseDMARC lên Kibana. Trước hết, bạn tải về khung phân tích đường dẫn bên dưới bên dưới:

https://raw.githubusercontent.com/domainaware/parsedmarc/master/kibana/export.ndjson

Sau đó, bạn hãy truy cập vào Kibana:

access-kibana

Chọn Add your data:

add-data-kibana

Tiếp theo chọn Saved Objects rồi chọn Import để tải lên khung phân tích tải về trước đó:

load-data-kibana

Như vậy là Kibana đã có thể hiển thị thông tin DMARC của Mail Server bằng cách điều hướng theo Saved Objects => DMARC Summary

Kết luận #

Ở trên mình đã hướng dẫn bạn cách cài ParseDMARC kết hợp với Elasticsearch và Kibana để thu thập, thống kê, hiển thị thông tin DMARC của Mail Server. Cuối cùng, bất kì thắc mắc và lỗi nào phát sinh trong quá trình cài đặt, bạn hãy bình luận bên dưới để mình hỗ trợ nhé.

Nguồn bài viết: https://www.linuxbabe.com/

Mình là Tùng, hiện đang là DevOps tại Công Ty CP EcoIT. Với kinh nghiệm có được từ trong công việc, mình muốn chia sẻ cho bạn đọc cùng biết và cùng nhau học thêm nhiều điều mới trong lĩnh vực DevOps.

Powered by BetterDocs

Để lại bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *