Chặn truy cập apache thông qua chuỗi tác nhân người dùng


8

Tôi đã có một người viết kịch bản đang sử dụng proxy để tấn công trang web tôi đang phục vụ.

Tôi đã nhận thấy rằng họ có xu hướng truy cập trang web thông qua phần mềm với một chuỗi tác nhân người dùng phổ biến nhất định (ví dụ : http://www.itsecteam.com/en/projects/project1_page2.htm "Phần mềm tiêm sql nâng cao Havij" với chuỗi user_agent của Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) Havij). Tôi biết rằng bất kỳ phần mềm bẻ khóa nào có giá trị muối đều có thể sửa đổi chuỗi tác nhân người dùng, nhưng tôi vẫn ổn với trình biên dịch phải xử lý tính năng đó vào một lúc nào đó.

Vì vậy, có phần mềm nào ngoài đó để tự động chặn truy cập & danh sách đen vĩnh viễn bằng cách khớp chuỗi tác nhân người dùng không?

Câu trả lời:


18

bạn có thể từ chối quyền truy cập bằng BrowserMatch và Từ chối từ SetEnv If Ví dụ:

SetEnvIfNoCase User-Agent "^Wget" bad_bot
SetEnvIfNoCase User-Agent "^EmailSiphon" bad_bot
SetEnvIfNoCase User-Agent "^EmailWolf" bad_bot
<Directory "/var/www">
        Order Allow,Deny
        Allow from all
        Deny from env=bad_bot
</Directory>

Để chặn chúng vĩnh viễn, bạn phải viết tệp nhật ký tùy chỉnh và sử dụng fail2ban chẳng hạn để cấm chúng với iptables

Ví dụ: tạo LogFormat

LogFormat "%a %{User-agent}i" ipagent

Thêm đăng nhập vào vhost / toàn máy chủ của bạn

CustomLog /var/log/apache2/useragent.log ipagent

/etc/fail2ban/filter.d/baduseragent.conf

[Definition]
failregex = ^<HOST> Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT 5\.1; SV1; \.NET CLR 2\.0\.50727\) Havij$

/etc/fail2ban/jail.conf

[apache-bad-user-agent]

enabled  = true
port     = 80,443
protocol = tcp
filter   = baduseragent
maxretry = 1
bantime  = 86400
logpath  = /var/log/apache2/useragent.log

Vâng, điều đó sẽ chặn các chuỗi tác nhân người dùng xấu, nhưng tôi đang tìm cách tiến thêm một bước và tự động cấm các ips liên quan đến các chuỗi tác nhân người dùng xấu, như vậy việc sử dụng chuỗi tác nhân người dùng sẽ khiến bạn bị cấm từ thời điểm đó trở đi trên ip đó. Tôi đã sử dụng fail2ban nhưng tôi chưa tìm thấy cách nào để áp dụng điều đó cho các yêu cầu http vào thời điểm này.
Kzqai

Hãy thử đề xuất của tôi trong bài chỉnh sửa
Dmytro Leonenko

6

Tôi nghĩ rằng tôi hiểu câu hỏi của bạn. Tôi sẽ cung cấp một lời giải thích chi tiết hơn nên đây là những gì bạn đang tìm kiếm. (điều này cũng sẽ hoạt động như một cái bẫy cho những thứ khác)

  • Kích hoạt công cụ mod_rewrite trong apache2
  • Tạo một cái bẫy.php, truy cập có thể làm bất cứ điều gì bạn muốn. Ví dụ: tôi đã làm cho nó thêm tất cả ip khách truy cập vào danh sách đen từ chối truy cập vào web của tôi.
  • Tạo một tệp của những người dùng bạn không thích, mỗi dòng như
    bas_useragent [tab] black
    useragent_bad [tab} black
  • Bây giờ, hãy thêm mod_rewrite phù hợp với bản đồ từ những người dùng xấu, sau đó yêu cầu lại bẫy của bạn nếu có bản đồ. Quy tắc có thể trông như thế này:

    RewriteMap badlist txt:~/bad_useragent_list
    RewriteCond %{HTTP_USER_AGENT} .* [NC]
    RewriteCond ${badlist:%1|white} ^black$ [NC]
    RewriteRule (.*) "/trap.php" [L]

  • Điều này về cơ bản khớp với người dùng với các khóa trong tệp của bạn, nếu không tìm thấy thì nó được coi là "trắng" và yêu cầu không được sửa đổi. Nếu nó được tìm thấy và giá trị liên quan là "đen", yêu cầu được viết lại để đi đến tệp bẫy.php của bạn, làm bất cứ điều gì bạn muốn.
  • Một số ý tưởng có thể. Có một tập lệnh khác đang xem một tập tin phổ biến mà bẫy.php ghi IP. Nếu tệp chung này thay đổi, trình theo dõi này sẽ đọc thông tin mới, phân tích địa chỉ IP và thêm quy tắc vào các bảng IP chặn tất cả lưu lượng truy cập từ địa chỉ đó. Tôi hi vọng cái này giúp được! Một lần nữa, nếu bạn muốn biết thêm chi tiết, chỉ cần trả lời ở đây.

gần như quên mất, bạn có thể đọc về mod_rewrite tại đây: httpd.apache.org/docs/civerse/mod/mod_rewrite.html
blerbl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.