[FTP] Tìm hiểu về chức năng “pure-uploadscript” của dịch vụ Pure-FTPd

Tìm hiểu về chức năng “pure-uploadscript”
của dịch vụ Pure-FPTd

Bài viết nằm trong khuôn khổ của dịch vụ Pure-FTPd server, được sử dụng để cung cấp lý thuyết cho 2 bài viết “Hướng dẫn quét virus file upload trên dịch vụ Pure-FPTd Server CentOS” và “Hướng dẫn ghi log thông tin file được upload lên Pure-FTPd Server CentOS”, mà mình sẽ giới thiệu sau.

Sau khi người dùng user upload một file nào đó lên hệ thống Pure-FPTd server, thì quản trị viên thường muốn kiểm soát được thông tin về file đó là gì như thế nào nên sẽ gọi các chương trình thực thi hoặc shell script được gọi ra nhằm thực thi mục đích quản trị. Điều này khá là có ích cho các việc như sau : quét virus, ghi log file upload, thông báo email cho quản trị viên về việc file nào đó vừa được upload lên,…

Với hệ thống dịch vụ Pure-FTPd thì để có thể sử dụng chức năng trên ta phải đảm bảo thêm option “–with-uploadscripts” trong lúc compile source dịch vụ. Thông thường nếu bạn cài đặt thông qua “yum” hay các chương trình CMS như cPanel, DirectAdmin đã mặc định enable khi compile cho bạn rồi.

Để chỉ định cho Pure FTP server sử dụng upload scripts, thì ta phải chạy 1 dịch vụ nền riêng lẻ là “pure-uploadscript” được cung cấp cùng với mã nguồn khi cài đặt Pure-FTPd. Cách thức hoạt động sẽ đơn giản như sau :
– Một “named pipe”, named pipe là gì thì các bạn google nhé, sẽ được tạo ra với đường dẫn và tên gọi như sau : /var/run/pure-ftpd.upload.pipe
– Một file quan trọng còn được gọi là “file locking” : /var/run/pure-ftpd.upload.lock
– Sau khi user upload thành công, thì tên của file upload sẽ được ghi vào pipe, lúc này dịch vụ pure-uploadscript sẽ đọc thông tin trong pipe nhằm gọi các chương trình hoặc script cho việc xử lý các file vừa được upload.

Các biến môi trường hỗ trợ thông tin cho bạn

– Các bạn có thể sử dụng thông tin biến môi trường sau được pure-uploadscript sử dụng cho các mục đích ghi nhận thông tin của quản trị viên.
+ UPLOAD_PERMS : phân quyền file upload
+ UPLOAD_SIZE : dung lượng file upload
+ UPLOAD_UID : uid của file upload
+ UPLOAD_GID : gid của file upload
+ UPLOAD_USER : user dùng để upload file
+ UPLOAD_GROUP : group mà user thuộc
+ UPLOAD_VUSER : tên virtual user sử dụng trong pure-ftpd
+ $1 : đường dẫn tuyệt đối của file vừa được upload lên sẽ tương ứng giá trị $1

Lưu ý :

– Bạn phải khởi chạy dịch vụ Pure-FTPd trước , sau đấy mới nên khởi tạo dịch vụ Pure-Uploadscript.
– Không thể thực thi cùng lúc hai chương trình script hoặc binary cho mỗi lần upload thành công 1 file nào đấy.

Để khởi động dịch vụ “pure-uploadscript” chạy chỉ định script nào sẽ được sử dụng

# pure-uploadscript -B -r /etc/pure-ftpd/scripts/clamav_scan_and_log.sh

Cùng với đó là đưa dịch vụ này vào việc tự khởi động mỗi khi reboot hệ thống hay tắt/mở hệ thống bằng cách thêm nội dung khởi động dịch vụ pure-uploadscript vào file /etc/rc.d/rc.local

# echo 'pure-uploadscript -B -r /etc/pure-ftpd/scripts/clamav_scan_and_log.sh' >> /etc/rc.d/rc.local

Cám ơn các bạn đã theo dõi bài viết này, mình sẽ cung cấp 2 bài viết “Hướng dẫn quét virus file upload trên dịch vụ Pure-FPTd Server CentOS” và “Hướng dẫn ghi log thông tin file được upload lên Pure-FTPd Server CentOS” sau.

Previous article[CTF] Writeup “hackertest.net” level 1 – 6
Next article[Linux] Fix lỗi cronjobs chạy sai giờ hệ thống trên CentOS
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 !