Cách tích hợp ClamAV vào PureFTPd để quét vi-rút trên CentOS 7

theanh

Administrator
Nhân viên
Hướng dẫn này giải thích cách bạn có thể tích hợp ClamAV vào PureFTPd để quét vi-rút trên hệ thống CentOS 7. Cuối cùng, bất cứ khi nào một tệp được tải lên thông qua PureFTPd, ClamAV sẽ kiểm tra tệp đó và xóa tệp đó nếu tệp đó chứa vi-rút hoặc phần mềm độc hại.


1 Lưu ý sơ bộ​

Bạn nên có thiết lập PureFTPd đang hoạt động trên máy chủ CentOS 7 của mình, ví dụ: như được hiển thị trong hướng dẫn này: Lưu trữ ảo với PureFTPd và MySQL (Bao gồm Quản lý hạn ngạch và băng thông) trên CentOS 7.


2 Cài đặt ClamAV​

ClamAV không có sẵn trong kho lưu trữ CentOS chính thức, do đó, chúng tôi kích hoạt kho lưu trữ EPEL (nếu bạn chưa thực hiện. Bắt đầu bằng cách nhập khóa GPK RPM.
Mã:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Sau đó, chúng tôi kích hoạt kho lưu trữ EPEL trên Hệ thống CentOS vì nhiều gói mà chúng ta sẽ cài đặt trong hướng dẫn này không có trong kho lưu trữ CentOS 7 chính thức:
Mã:
yum -y install epel-release
Mã:
yum -y install yum-priorities
Chỉnh sửa /etc/yum.repos.d/epel.repo...
Mã:
nano /etc/yum.repos.d/epel.repo
... và thêm dòng priority=10 vào phần [epel]:
Mã:
[epel]name=Gói bổ sung cho Enterprise Linux 7 - $basearch#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearchmirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearchfailovermethod=priorityenabled=1priority=10gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7[...]
Sau đó, chúng tôi cập nhật các gói hiện có trên hệ thống:
Mã:
yum update
Sau đó, chúng tôi có thể cài đặt ClamAV như sau:
Mã:
yum -y clamav clamav-server clamav-data clamav-update clamav-filesystem clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
Chỉnh sửa file/etc/freshclam.conf và chú thích dòng Example:
Mã:
nano/etc/freshclam.conf
bằng cách thêm # vào trước dòng Example:
Mã:
.....
# Chú thích hoặc xóa dòng bên dưới.
# Example

....
Sau đó chỉnh sửa file/etc/clamd.d/scan.conf:
Mã:
nano/etc/clamd.d/scan.conf
và chú thích dòng Example như chúng ta đã làm trong file ở trên và xóa # vào trước dòng LocalSocket.
Mã:
.....
# Chú thích hoặc xóa dòng bên dưới.
# Example

....
LocalSocket /var/run/clamd.scan/clamd.sock
....
Tiếp theo, chúng ta tạo các liên kết khởi động hệ thống cho clamd và khởi động nó:
Mã:
systemctl enable[emailprotected]
freshclam
Sau đó, khởi động dịch vụ clamav:
Mã:
systemctl start [emailprotected]
Bạn có thể kiểm tra trạng thái của daemon ClamAV bằng lệnh này:
Mã:
systemctl status clamd@scan
Kết quả sẽ như thế này:
Mã:
[root@server1 system]# systemctl status clamd@scan
? [emailprotected] - Chương trình nền quét clamav chung
Đã tải: đã tải (/usr/lib/systemd/system/[emailprotected]; đã tắt; cài đặt trước của nhà cung cấp: đã tắt)
Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ năm 2016-04-07 15:44:28 CEST; 1 phút 48 giây trước
PID chính: 10945 (clamd)
CGroup: /system.slice/system-clamd.slice/[emailprotected]
??10945 /usr/sbin/clamd -c /etc/clamd.d/scan.conf --nofork=yes
Mã:
07/04 15:44:36 server1.example.com clamd[10945]: Đã bật hỗ trợ HTML.
07/04 15:44:36 server1.example.com clamd[10945]: Đã bật hỗ trợ XMLDOCS.
07/04 15:44:36 server1.example.com clamd[10945]: Đã bật hỗ trợ HWP3.
07/04 15:44:36 server1.example.com clamd[10945]: Tự kiểm tra sau mỗi 600 giây.
07/04 15:44:36 server1.example.com clamd[10945]: Hỗ trợ PDF được bật.
07/04 15:44:36 server1.example.com clamd[10945]: Hỗ trợ SWF được bật.
07/04 15:44:36 server1.example.com clamd[10945]: Hỗ trợ HTML được bật.
07/04 15:44:36 server1.example.com clamd[10945]: Hỗ trợ XMLDOCS được bật.
07/04 15:44:36 server1.example.com clamd[10945]: Hỗ trợ HWP3 được bật.
07/04 15:44:36 server1.example.com clamd[10945]: Tự kiểm tra sau mỗi 600 giây.

3 Cấu hình PureFTPd​

Đầu tiên, chúng ta mở /etc/pure-ftpd/pure-ftpd.conf và đặt CallUploadScript thành yes :
Mã:
nano /etc/pure-ftpd/pure-ftpd.conf
Mã:
[...]# Nếu pure-ftpd của bạn đã được biên dịch với hỗ trợ pure-uploadscript,# điều này sẽ khiến pure-ftpd ghi thông tin về các lần tải lên mới vào# /var/run/pure-ftpd.upload.pipe để pure-uploadscript có thể đọc thông tin đó và# tạo một tập lệnh để xử lý việc tải lên.# Không bật tùy chọn này nếu bạn không thực sự sử dụng pure-uploadscript.CallUploadScript có[...]
Tiếp theo, chúng ta tạo tệp /etc/pure-ftpd/clamav_check.sh (sẽ gọi /usr/bin/clamdscan bất cứ khi nào tệp được tải lên thông qua PureFTPd)...
Mã:
nano /etc/pure-ftpd/clamav_check.sh
Mã:
#!/bin/sh/usr/bin/clamdscan --fdpass --remove --quiet --no-summary -c /etc/clamd.d/scan.conf "$1"
... và làm cho nó có thể thực thi:
Mã:
chmod 755 /etc/pure-ftpd/clamav_check.sh
Bây giờ, chúng ta bắt đầu pure-uploadscript dưới dạng daemon - nó sẽ gọi tập lệnh /etc/pure-ftpd/clamav_check.sh của chúng ta bất cứ khi nào một tệp được tải lên thông qua PureFTPd:
Mã:
pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh
Tất nhiên, bạn không muốn khởi động daemon theo cách thủ công mỗi khi khởi động hệ thống - do đó, chúng ta mở /etc/rc.local...
Mã:
nano /etc/rc.local
... và thêm dòng /usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh vào đó - ví dụ: như sau:
Mã:
#!/bin/sh## Tập lệnh này sẽ được thực thi *sau* tất cả các tập lệnh init khác.# Bạn có thể đặt nội dung khởi tạo của riêng mình vào đây nếu bạn không# muốn thực hiện toàn bộ nội dung init theo phong cách Sys V./usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.shtouch /var/lock/subsys/local
Cuối cùng, chúng ta khởi động lại PureFTPd:
Mã:
systemctl restart [emailprotected]
Vậy là xong! Bây giờ, bất cứ khi nào ai đó cố gắng tải phần mềm độc hại lên máy chủ của bạn thông qua PureFTPd, các tệp "xấu" sẽ bị xóa một cách âm thầm.


4 Ảnh máy ảo​

Hướng dẫn này có sẵn dưới dạng máy ảo sẵn sàng sử dụng ở định dạng OVA / OVF dành cho người đăng ký Howtoforge. Định dạng VM tương thích với VMWare và Virtualbox và các công cụ khác có thể nhập định dạng này. Bạn có thể tìm thấy liên kết tải xuống ở menu bên phải trên cùng. Nhấp vào tên tệp để bắt đầu tải xuống.

Chi tiết đăng nhập của VM là:

Đăng nhập SSH​

Tên người dùng: root
Mật khẩu: howtoforge

Đăng nhập MariaDB​

Tên người dùng: root
Mật khẩu: howtoforge

Vui lòng thay đổi mật khẩu sau lần khởi động đầu tiên.




5 Liên kết​

 
Back
Bên trên