[Linux] Bảo mật dịch vụ “Cron” trong hệ thống máy chủ

Bảo mật dịch vụ “Cron” trong hệ thống Linux

Cron là một dịch vụ giúp cho các quản trị viên Linux tự động hoá các tác vụ theo thời gian được quy định trước giúp cho công việc có thể thực thi mà không cần tác động của người quản trị. Điều này mang lại lợi ích vô cùng to lớn, nhưng ở chế độ mặc định dịch vụ cron được sử dụng bởi tất cả user và nếu không phần quyền phù hợp sẽ dễ bị xâm phạm thay đổi hoặc coi các lịch trình tác vụ tự động gây nguy hiểm không cần thiết.

Ở bài hướng dẫn này mình không chi tiết vào việc sử dụng dịch vụ cron mà tập trung vào việc bảo mật cơ bản dịch vụ cron, được áp dụng trong trường hợp máy chủ bạn phục vụ private và cần cẩn trọng trong việc chia sẻ dịch vụ cron.

“Cron”
Các thư mục của cron
Các script chứa trong các thư mục sau sẽ được chạy bởi cron tại mỗi giờ, ngày, tháng tùy theo tên tương ứng của thư mục. Các script này được kích hoạt bởi nội dung của /etc/crontab

/etc/cron.hourly/*
/etc/cron.daily/*
/etc/cron.monthly/*

Quyền sử dụng cron
Có hai file kiểm soát truyền truy cập tới crontab:

File allow – /var/spool/cron/allow hoặc /etc/cron.allow
File deny – /var/spool/cron/deny hoặc /etc/cron.deny

Nếu file allow tồn tại, tên của người dùng phải có mặt trong file đó thì người dùng mới có quyển sử dụng câu lệnh crontab. Nếu file deny tồn tại, tên của người dùng phải không có trong đó thì người dùng mới có quyền sử dụng crontab. Nếu cả hai file đều không tồn tại thì tất cả mọi người hoặc không một ai có quyền dùng crontab (điều này phụ thuộc vào tùy chọn lúc biên dịch hệ thống)


Các bước bảo mật cơ bản với 2 dịch vụ “cron
1. Phân quyền sở hữu và quyền hạn sử dụng với file hệ thống crontab chính

# chown root:root /etc/crontab
# chmod 600 /etc/crontab

2. Giới hạn quyền và sở hữu với các thư mục hệ thống crontab chính

# cd /etc
# chown -R root:root cron.hourly cron.daily cron.weekly cron.monthly cron.d
# chmod -R go-rwx cron.hourly cron.daily cron.weekly cron.monthly cron.d

3. Giới hạn khả năng sử dụng của user
Ta sẽ sử dụng 2 file /etc/cron.allow/etc/cron.deny . Ở đây mặc định lúc biên dịch thì /etc/cron.allowđộ ưu tiên cao hơn và được xét trước, nên nếu bạn cùng để tên user vào /etc/cron.allow/etc/cron.deny thì user đó vẫn sẽ được phép thực thi câu lệnh “crontab“. Vậy ta sẽ tận dụng thủ thuật sau:
– Ta sẽ xoá hẳn file /etc/cron.deny

# rm /etc/cron.deny

– Thêm user được phép thực thi crontab hoặc để trắng file /etc/cron.allow 

# cat /dev/null > /etc/cron.allow

Tại sao ? Vì file /etc/cron.allow chỉ cho phép các user có tên trong file này mới được phép thực thi lệnh crontab, vậy nếu bạn có đang tồn tại file /etc/cron.deny hay không, thì nếu file /etc/cron.allow cũng tồn tại mà không có tên bất cứ user nào thì sẽ không có user nào được thực thi crontab. Nên chúng ta quản trị Linux cần chú trọng việc phân quyền thực thi cho các dịch vụ yêu cầu “crontab”

Mình đã hoàn thành bài hướng dẫn “Bảo mật dịch vụ “cron” “”
Chúc các bạn thành công !

Previous articleCCleaner 5.06.5219
Next articleUniKey 4.2 RC4 Build 140823
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !