Tự cài đặt mail server dùng cho pentest và các mục đích khác

Tram Ho

Intro

Nhiều lúc bạn muốn có thật nhiều tài khoản mail để:

  • Đăng ký diễn đàn hoặc newleters và những thứ linh tinh khác, nói chung là email có thể xác thực được, khi mà các trang email disposable như yopmail.com bị block càng nhiều
  • Như mình là pentester cần có nhiều email để đăng ký nhiều account để test các lỗi như IDOR, BAC, PE…
  • Khi không thể sử dụng mail alias với +
  • …cho vui

Trong bài này ta sẽ setup thử mail server với các yêu cầu trên.

Những thứ bạn cần có:

  • Một VPS có địa chỉ IP tĩnh và public trên internet. Hiện mình đang dùng dịch vụ của Digital Ocean với giá 5$/tháng, bạn có thể dùng bất cứ dịch vụ nào khác cũng được.
  • Một domain mà bạn muốn thiết lập nhận mail. Có rất nhiều dịch vụ cho phép đăng ký domain free, mình dùng dot.tk và đăng ký domain: minhtuanact.tk

(thực ra domain và VPS đều là của đứa trong team, mình setup hộ để lấy ảnh viết bài viblo write-up)

Let’s go!

Cài đặt cấu hình DNS

Để có thể được mail thì ta cần thiết lập một số DNS record:

  • Một record A với domain/subdomain của mail server, chỉ đến địa chỉ IP của VPS. VD: trang web của bạn ở địa chỉ minhtuanact.tk và bạn muốn nhận mail ở một subdomain khác, ở đây mình sử dụng mail.minhtuanact.tk thì điền Name là: MAIL.
  • Một record MX để chỉ rõ subdomain nào sẽ đảm nhận việc nhận và gửi mail.
  • Một record TXT với tên là _DMARC dùng để thông báo về các policy trong việc gửi mai: khi bị spam mail thì như thế nào, gửi thông báo trong các trường hợp lỗi như thế nào, vân vân và vân vân… Mình cũng ko quan tâm lắm đến cái này nên dùng tạm cấu hình mặc định như sau. Điền email của bạn vào phần ruaruf nhé:

Vớ Freenom thì bạn vào link: https://my.freenom.com/clientarea.php?managedns=YYYY&domainid=XXXX và cấu hình tương tự như dưới đây. Có thể đặt TTL nhỏ để DNS nhanh chóng được cập nhật ( tối thiểu là 300).

Sau khi đã cấu hình xong, để có thể kiểm tra các record đã ok chưa, ta có thể dùng công cụ: https://mxtoolbox.com/, điền domain chính vào và check. Khi record chưa được sẽ như thế này:

Còn ngon rồi thì sẽ như thế này:

Cài đặt mail server

Postfix

Để nhận mail, chúng ta sử dụng Postfix, một trong những mail server quá phổ biến và quen thuộc. Cài đặt thì cũng không có gì phức tạp cả.

Khi cài đặt sẽ hiện lên màn hình cấu hình như dưới đây, chỉ cần đọc và chọn theo hướng dẫn là ok:

  • General type of mail configuration?: Internet Site
  • System mail name: minhtuanact.tk
  • Root and postmaster mail recipient: sẽ là user chính trên server của bạn, trong trường hợp của mình là: minhtuan

Còn cụ thể chúng ta sẽ cấu hình thêm ở phía sau. Còn nếu lỡ làm sai ở đâu đó thì có thể dùng câu lệnh sau để cấu hình lại:

Dovecot

Chúng ta cần cài đặt thêm Dovecot: là phần mềm mã nguồn mở email server dùng cho hai giao thức IMAP và POP3 dùng để quản lý mail từ mail server. Dovecot sẽ được dùng để chuyển các mail đến hộp thư của từng user trên server.
Cài đặt thì cũng không có gì quá khó cả:

Cấu hình postfix

Đối với postfix, cấu hình sẽ nằm ở file /etc/postfix/main.cf. Mở file này ra và chúng ta thêm cấu hình như dưới đây:

  • alias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliases: dùng để chuyển hướng mail từ user này sang user khác. Ví dụ, chúng ta muốn những mail gửi đến [email protected] sẽ được chuyển sang cho user root chẳng hạn (vì server vốn không tồn tại user postmaster).

  • Chỉnh myoriginmydestination về localhost
  • home_mailbox = Maildir/: định dạng Maildir sẽ cho phép chia các email thành các file riêng biệt và di chuyển các file này giữa các folder tùy thuộc và hành động của người dùng. Một định dạng khác là mbox sẽ lưu tất cả vào một file.
  • virtual_alias_domains = hash:/etc/postfix/virtual_domains dùng để setup trong trường hợp VPS này được dùng chung cho nhiều domain khác nhau, ví dụ khi muốn kiểm tra mối liên quan giữa 2 domain: example.comxn--exmple-qta.com (tức là exámple.com sau khi punny decode) xem web app có thực hiện việc convert domain không, ta có thể dùng chung luôn mà ko cần thêm 1 VPS khác:

  • virtual_alias_maps = hash:/etc/postfix/virtual: Cấu hình gồm domain và user sẽ nhận email cho domain đó. Cấu hình như thế này còn có tác dụng là tất cả các email gửi đến domain dù cho bất cứ user nào, kể cả không tồn tại đi nữa sẽ đều bị redirect về 1 hòm mail duy nhất của user được cài đặt.

Sau khi cấu hình các file này nhớ thực hiện các lệnh sau để generate DB:

và load lại postfix:

Để có thể check mail, ta có thể cài đặt thêm công cụ mailutils:

Cài xong ta có thể sử dụng lệnh mail để kiểm tra thư của user hiện tại:

Cấu hình dovecot

Mở file /etc/dovecot/conf.d/10-auth.conf và chỉnh cấu hình như sau:

và sửa auth_username_format = %n (sẽ được dùng khi dùng với rainloop ở phía sau).

Mở /etc/dovecot/conf.d/10-mail.conf và chỉnh như sau để chuyển sang sử dụng định dạng Maildir.

Bước cuối là chỉnh sửa /etc/dovecot/conf.d/10-master.conf, tìm đến block smtp-auth và chỉnh như sau:

Và không quên reload lại dovecot

Cấu hình mail client

Với mail client, mình sử dụng rainloop do cấu hình rất đơn giản và nhanh gọn, chỉ cần cài đặt PHP không yêu cầu sử dụng DB gì cả. Tải về tại: https://www.rainloop.net/ và unzip vào /var/html/rainloop

Rainloop yêu cầu PHP, ở đây mình dùng PHP 7.2 vài cài đặt các thư viện như sau:

Sau khi cài đặt theo hướng dẫn https://www.rainloop.net/docs/installation/, chú ý phân quyền đúng và với nginx, ta có thể cấu hình như sau:

Chú ý cấu hình server_name với subdomain mà bạn muốn host rainloop trên đó, ở ví dụ trên là: inbox.minhtuanact.tk (nhớ setup DNS record nữa nhé).

Ok, bật rainloop lên và cấu hình nào, vào http://inbox.minhtuanact.tk/?adminvà điền tài khoản:

Default login is “admin”, password is “12345”.

ta cấu hình giống ảnh, và đừng quên đổi password mặc định của admin nha:

  • Chỉnh domain mặc định:
  • Thêm domain:
  • Đừng quên đổi pass nhá:

Xong xuôi ta có thể vào http://inbox.minhtuanact.tk/#/mailbox/INBOX và đăng nhập với username và password trên hệ thống để check mail. Thử gửi vài cái mail test xem có nhận được không nào

Kết

Đừng lấy mail server đăng ký rồi đi spam nha, bị block là khổ đấy

Hiện mail server của chúng ta mới có thể nhận được email, còn để gửi mail thì sẽ cần thêm chút cấu hình nữa, có lẽ sẽ để dành bài sau. Bye!

Tham khảo

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo