Thứ Hai, 11 tháng 5, 2015

Bảo mật VPS với Mod Security


Để sử dụng mod_security bạn phải cấu hình cho nó( cái này tùy vào mỗi hệ thống mà sẽ dẫn đến những cấu hình khác nhau). Trước tiên bạn mở file httpd.conf ra và thêm vào dòng sau:
<IfModule mod_security.c>
# file cấu hình cho mod_security
</IfModule>
hoặc bạn có thể tạo riêng một file là modsecurity.conf trong thư mục conf của apache và include nó tù file cấu hình của apache httpd.conf:
<IfModule mod_security.c>
include conf/modsecurity.conf
</IfModule>
Sau khi cài đặt mặc định bộ máy filtering sẽ disable ( muốn dùng mod_security chúng ta phải bật nó lên).
Ban chỉ việc thêm vào dòng sau trong file modsecurity.conf: 
SecFilterEngine On
 ( or Off , DynamicOnly )

Sau đây là cách cấu hình cho mod_security để hạn chế những kiểu tấn công cơ bản: #Chống lại kiểu tấn công thực thi các lệnh:
SecFilter /etc/passwordSecFilter /bin/ls
#Chống lại kiểu tấn công Directory traversal
SecFilter "\.\./"
 #Lọc các kí tự hay dùng trong shell code
SecFilterForceByteRange 32 126
#Lọc các kí tụ hay dùng trong XSS attack
SecFilter "<(.|\n)+>"
SecFilter "<[[:space:]]*script"
#Chống lại kiểu tấn công XSS thông qua PHP session cookie
SecFilterSelective ARG_PHPSESSID "!^[0-9a-z]*quot;SecFilterSelective COOKIE_PHPSESSID "!^[0-9a-z]*quot;
#Hạn chế SQL injection attack
SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "select.+from"
#Hạn chế MSSQL injection attack
SecFilter xp_enumdsnSecFilter xp_filelistSecFilter xp_availablemediaSecFilter xp_cmdshellSecFilter xp_regreadSecFilter xp_regwriteSecFilter xp_regdeletekey
#Chống spam mail
<Location /cgi-bin/FormMail> SecFilterSelective "ARG_recipient" "!@modsecurity\.orgquot;</Location>
#Phát hiện xâm nhập
SecFilterSelective OUTPUT "Volume Serial Number"
SecFilterSelective OUTPUT "Command completed"
SecFilterSelective OUTPUT "Bad command or filename"
SecFilterSelective OUTPUT "file(s) copied"
SecFilterSelective OUTPUT "Index of /cgi-bin/"
SecFilterSelective OUTPUT ".*uid\=\("
# Ghi lại log
SecAuditLog logs/audit.log
SecFilterDebugLog logs/modsec.log
SecFilterDebugLevel 0
#Muốn mod_security phân tích POST request, dùng:
 SecFilterScanPOST On
# Để mod_security *kiểm tra* URL encoding và UTF-8.
SecFilterCheckURLEncoding On
SecFilterCheckUnicodeEncoding On
Lưu ý: Nếu bạn dùng SecFilterCheckUnicodeEncoding On, một số bộ gõ hay input tiếng Việt sẽ không hoạt động, một số bộ gõ hay input tiếng Việt sẽ không hoạt động

Nếu bạn chạy web với nhiều virtualhost và muốn một site trong nhiều sites không dùng mod_security, bạn có thể dùng:
SecFilterSelective SERVERNAME "^tên_của_web_site$" nolog,allow

Không có nhận xét nào:

Đăng nhận xét