[Zimbra]Kiểm soát trạng thái account trên máy chủ Zimbra

Tác giả: 16/07/2023

Tình trạng spam xảy ra rất nhiều trên máy chủ của bạn, bạn muốn kiểm soát tính năng login của account.

Hôm nay Nhân Hòa sẽ hướng dẫn bạn cách chuyển trạng thái user mail tại các thời gian không mong muốn như vào các thời điểm nghỉ,không làm việc của công ty, ban đêm đi ngủ…, bạn khó có thể theo dõi, chỉ cho phép nhận mail trong khoảng thời gian này.

Ở bài LAB này mình sẽ làm với khung thời gian là chỉ cho các account hoạt động hàng ngày ,gửi mail từ 8h sáng đến 24h, còn lại là khóa gửi email nhưng vẫn nhận email.

Các trạng thái tài khoản người dùng trong Zimbra

Hiện tại trên zimbra 8.8.15 mình đang chạy có 5 trạng thái của 1 account

  • Active là trạng thái hoạt động bình thường của tài khoản
  • Pending là trạng thái có thể được chỉ định khi tài khoản mới được tạo và chưa sẵn sàng hoạt động. Đăng nhập bị vô hiệu hóa và tin nhắn bị trả lại.
  • Locked là trạng thái hộp thư bị khóa, người dùng không thể đăng nhập, nhưng thư vẫn được gửi đến tài khoản. Trạng thái bị khóa có thể được đặt, nếu bạn nghi ngờ rằng tài khoản thư đã bị tấn công hoặc đang được sử dụng trái phép.
  • Closed là trạng thái hộp thư bị đóng, đăng nhập bị vô hiệu hóa và thư bị trả lại. Trạng thái này được sử dụng để xóa mềm một tài khoản trước khi xóa tài khoản khỏi máy chủ. Tài khoản bị đóng không làm giảm số lượng giấy phép tài khoản.
  • Maintenance khi trạng thái hộp thư được đặt thành bảo trì, đăng nhập sẽ bị tắt và thư được gửi đến tài khoản được xếp hàng đợi tại MTA. Một tài khoản có thể được đặt ở chế độ bảo trì để sao lưu, nhập hoặc khôi phục hộp thư.

Như vậy là để tài khoản có thể chỉ nhận thư chúng ta hãy chuyển status account sang Locked.

Kịch bản :

  • 0h-8h List account Locked
  • 8h-24h List account Open
  • Trạng thái người dùng là root

 

Chuyển trạng thái account tự động

Vì  muốn bỏ kiểm soát tài khoản admin và 1 số account khác của hệ thống nên chúng ta sẽ tiến hành export list user trên giao diện admin dưới dạng file csv

Chỉnh sửa file csv gốc chúng ta sẽ được 1 file như hình bên dưới đây, file này dùng để chuyển trạng thái user sang Locked.

Chúng ta hãy cd vào /opt và tạo 1 file locked.sh

cd /opt

vi locked.sh

Dán vào đoạn mã sau:

#!/bin/bash
#locked account

TODAY=`/bin/date +%Hh-%d%m%Y`
su - zimbra -c
"zmprov
ma
tu1@tudv10.tudv.xyz
zimbraAccountStatus
locked"
su - zimbra -c
"zmprov
ma
tu2@tudv10.tudv.xyz
zimbraAccountStatus
locked"
su - zimbra -c
"zmprov
ma
tu3@tudv10.tudv.xyz
zimbraAccountStatus
locked"
su - zimbra -c
"zmprov
ma
tu10@tudv10.tudv.xyz
zimbraAccountStatus
locked"
echo Da locked list account luc $TODAY >> /opt/log.txt
exit 0

Tiếp theo ta chỉnh sửa file csv trên thay các giá trị locked thành active để tạo thêm 1 file open.sh trong /opt

cd /opt

vi open.sh

Dán vào đoạn mã sau:

#!/bin/bash
#open account

TODAY=`/bin/date +%Hh-%d%m%Y`
su - zimbra -c
"zmprov
ma
tu1@tudv10.tudv.xyz
zimbraAccountStatus
active"
su - zimbra -c
"zmprov
ma
tu2@tudv10.tudv.xyz
zimbraAccountStatus
active"
su - zimbra -c
"zmprov
ma
tu3@tudv10.tudv.xyz
zimbraAccountStatus
active"
su - zimbra -c
"zmprov
ma
tu10@tudv10.tudv.xyz
zimbraAccountStatus
active"
echo Da open list account luc $TODAY >> /opt/log.txt
exit 0

Đừng quên cấp quyền thực thi cho 2 file trên:

chmod a+x open.sh
chmod a+x locked.sh

Bước cuối cùng là điều chỉnh crontab
crontab -e

Thêm vào

0 0 * * * cd /opt;./locked.sh


0 8 * * * cd /opt;./open.sh

Trên thực tế vì lệnh chạy rất chậm, các bạn hãy tính toán thời gian hợp lý với số lượng user của mình để điều chỉnh thời gian thực thi trong crontab.

Lời Kết

Như vậy Nhân Hòa đã hướng dẫn các bạn xử lý một vấn đề chống dò mật khẩu ban đêm của các tool,chặn login vào giờ đi ngủ, tránh được tình trạng email người dùng bị hack, spam ra ngoài mà ta không thể theo dõi được.

Chúc các bạn thực hiện thành công và hẹn gặp lại các bạn tại các bài viết sau tại wiki.nhanhoa.com


 

 

Trả lời