Điểm:0

Giúp hoàn thiện script ( fake google IP, có thể fail2ban )

lá cờ mx

Tôi đã theo dõi google ip đã truy cập máy chủ của mình trong vài năm và xác định được các mặt nạ này: 66.249.64.0/19 66.102.0.0/20 64.233.160.0/19 34.64.0.0/10 216.58.192.0/19 74.125.0.0/16

Sau đó, tôi đã tạo tập lệnh này bằng php mà tôi đưa vào tất cả các trang web của mình.

include_once('function_global/cidr_match_function.php');
    if(cidr_match($_SERVER['REMOTE_ADDR'], '66.249.64.0/19') === false && cidr_match($_SERVER['REMOTE_ADDR'], '66.102.0.0/20') === false && cidr_match( $_SERVER['REMOTE_ADDR'], '64.233.160.0/19') === false && cidr_match($_SERVER['REMOTE_ADDR'], '34.64.0.0/10') === false && cidr_match($_SERVER[' REMOTE_ADDR'], '216.58.192.0/19') === false&& cidr_match($_SERVER['REMOTE_ADDR'], '74.125.0.0/16') === false){ 
    $fake_google_ip_list = file_get_contents('function_global/ip_add_fwd.txt');

        if(strpos($fake_google_ip_list, $_SERVER['REMOTE_ADDR']) === false){
            file_put_contents('function_global/ip_add_fwd.txt', $_SERVER['REMOTE_ADDR'].PHP_EOL , FILE_APPEND | LOCK_EX);
        }
    }
}

Kết quả là tệp này chứa danh sách các IP giả danh google và truy cập vào máy chủ của tôi với mục đích lừa đảo.

Sau đó, tôi, ít nhiều mỗi ngày một lần, chạy lệnh console này để thêm tất cả các ip này vào ufw:

trong khi đọc dòng; làm sudo ufw chèn 1 từ chối từ dòng $ vào bất kỳ; xong < /var/www/html/function_global/ip_add_fwd.txt

và tải một tệp trống mới lên máy chủ.

Tôi muốn tự động hóa phần cuối cùng này và có thể sử dụng fail2ban thay vì điền ngày càng nhiều ip, thứ có thể không bao giờ quay trở lại, trong ufw.

Và tôi nghĩ rằng tôi cần một tập lệnh .sh hoặc một cái gì đó tương tự, nhưng tôi không biết viết nó như thế nào... (Tôi là một lập trình viên php và tôi chỉ sử dụng Ubuntu làm máy chủ web giới hạn ở những gì cần thiết cho hoạt động của các trang web của tôi).

Kịch bản nên là:

  • có thể gọi được với một crontab
  • thêm danh sách ip vào ufw, hay đúng hơn là fail2ban
  • làm trống tệp ip_add_fwd.txt
  • có thể gửi cho tôi một email có danh sách IP, chỉ để biết những gì nó đã làm và có thể xác minh xem nó có hoạt động chính xác hay không (đầu ra crontab cũng đến qua email, vì vậy có lẽ một đầu ra là đủ?)

Bất cứ ai có thể giúp tôi viết nó hoặc ít nhất là cho tôi một số gợi ý để bắt đầu? Tôi không biết bắt đầu từ đâu, tôi đã cố gắng ghép các phần của một số tệp khác lại với nhau, nhưng nó không được tốt lắm ... :(

jpbrain avatar
lá cờ ca
Xin chào. Bạn đang chạy phần mềm máy chủ web nào?
alebal avatar
lá cờ mx
máy chủ apache
Điểm:1
lá cờ ca

Bạn có thể thử phương pháp này.

Đối với Apache, để Cấu hình máy chủ web "ngục" trong cấu hình fail2ban, có một hướng dẫn: fail2ban với Apache

Tại đây, bạn có thể định cấu hình các lệnh cấm tạm thời cho các IP và cũng có một ứng dụng khách fail2ban-client mà bạn có thể gọi trực tiếp từ tập lệnh php của mình (cần kiểm tra quyền) để cấm các IP theo cách thủ công.

Tôi nghĩ rằng điều này sẽ hoạt động tốt hơn cách tiếp cận cron, nhưng nếu bạn vẫn muốn sử dụng trình bao:

#!/bin/bash
#giả sử một IP trên mỗi dòng
input="/var/www/html/function_global/ip_add_fwd.txt"
trong khi IFS = đọc -r dòng
làm
    sudo ufw từ chối từ dòng $ đến bất kỳ;
xong < "$input"

#Dòng này sẽ làm trống tệp
tiếng vang "">"$input"

tập lệnh với fail2ban

#!/bin/bash
#giả sử một IP trên mỗi dòng
input="/var/www/html/function_global/ip_add_fwd.txt"
trong khi IFS = đọc -r dòng
làm
    #sudo ufw từ chối từ $line đến bất kỳ;
    sudo fail2ban-client set apache-badbots banip $line;
xong < "$input"

#Dòng này sẽ làm trống tệp
tiếng vang "">"$input"  

#add by JP - Sẽ liệt kê tất cả các IP bị cấm cho apache-badbots
sudo fail2ban-client get apache-badbots banip --with-time;
alebal avatar
lá cờ mx
Xin chào, tôi thích giải pháp fail2ban, nó nhanh hơn, nhẹ hơn, tuyệt vời, nhưng thật khó để tìm ra thứ gì đó về nó... Thực tế tôi chỉ tìm thấy cái này https://stackoverflow.com/questions/36101796/fail2ban-add-manually-ip- from-php-script-using-exec-or-shell-exec và chúng dừng ở tệp cấu hình. Đối với tôi, vấn đề là có rất nhiều tệp trong /etc/fail2ban, đâu là tệp chính xác? tệp .conf muốn fail2ban-client là gì. Nếu tôi có thể tìm ra cách sử dụng tệp .conf, tôi đã nghĩ về một liên kết tượng trưng, ​​​​trong một thư mục tôi có thể truy cập qua php... liệu có khả thi không?
alebal avatar
lá cờ mx
Bạn có thể giúp tôi hiểu tập tin nào sử dụng và nếu có thể sử dụng liên kết tượng trưng không?
jpbrain avatar
lá cờ ca
Xin chào. Tôi không hiểu ý tưởng của bạn về một liên kết tượng trưng. bạn có thể giải thích những gì bạn có ý nghĩa?
alebal avatar
lá cờ mx
Có vẻ như php không thể truy cập thư mục tệp cấu hình của fail2ban... (trong/etc) có thể với một liên kết tượng trưng?
jpbrain avatar
lá cờ ca
trong cả hai trường hợp, bạn cần phải root. vì vậy, một cách tiếp cận sẽ là sử dụng cron để thực thi shell, một trong shell sử dụng fail2ban hoặc ufw. Gọi từ php với quyền root yêu cầu kiểm tra bảo mật. Có lẽ nó không phải là một ý tưởng tốt.
alebal avatar
lá cờ mx
Exec qua php không cần root để sử dụng fail2ban-client, phải không? Vấn đề dường như là tệp cấu hình mà fail2ban cần đọc và nó nằm trong thư mục /etc mà dữ liệu www không thể truy cập. Trong nhận xét cuối cùng, họ thậm chí còn nói sao chép nó vào một thư mục có thể truy cập được, nhưng tôi không biết sao chép tệp cấu hình tốt như thế nào, cũng vì tôi không hiểu tệp này là gì. Thật không may, cuộc thảo luận dường như đã kết thúc, nhưng dường như nó chỉ cách đó một quãng ngắn ...
jpbrain avatar
lá cờ ca
Fail2ban cũng cần root để thực hiện các hành động trên tường lửa ufw. Vì vậy, cách tiếp cận symlilnk không phải là một lựa chọn. Hai bước tôi mô tả hoạt động. php ghi tệp bằng ips. Cron thực thi shell với quyền root cứ sau 10 phút hoặc đại loại như thế và xóa tệp.
alebal avatar
lá cờ mx
Vì vậy... tôi thực hiện một số thay đổi nhỏ để làm việc với fail2ban theo cách cron...#!bin/bash #giả sử một IP trên mỗi dòng input="/var/www/html/function_global/ip_add_fwd.txt" trong khi IFS = đọc -r dòng làm #sudo ufw từ chối từ $line đến bất kỳ; sudo fail2ban-client set apache-badbots banip $line; xong "$input"
alebal avatar
lá cờ mx
nhưng, khi tôi thử điều này: Sudo /var/www/html/function_global/google_ip_list_ban_cron sudo: không thể thực thi /var/www/html/function_global/google_ip_list_ban_cron: Không có tệp hoặc thư mục như vậy... anh ấy không hiểu gì? ip_add_fwd.txt ở đâu? tôi lưu tệp mới trong cùng một thư mục... https://ibb.co/chVmwCn
jpbrain avatar
lá cờ ca
xin lỗi .. là một lỗi đánh máy. vui lòng sửa "#!/bin/bash" và thử lại. Ngoài ra, tệp cần được chạy từ root cron.
alebal avatar
lá cờ mx
Cảm ơn, có vẻ như nó hoạt động... Tôi tạo crontab này 5 0 * * * root /var/www/html/function_global/google_ip_list_ban_cron trên sudo nano /etc/crontab, crontab có hoạt động không?
jpbrain avatar
lá cờ ca
Đúng. Nó sẽ hoạt động.
alebal avatar
lá cờ mx
Được rồi, nhưng hôm nay tôi rất muốn nhận được email có IP mà anh ấy đã thêm vào fail2ban, nhưng không có gì đến. Kết quả của crontabs đến qua thư, có thể thêm đầu ra với ip đã xử lý không?
jpbrain avatar
lá cờ ca
Hai điều cần xem xét: Có lệnh MAIL trong tệp crontab không? Có đầu ra nào được tạo ra không?
alebal avatar
lá cờ mx
vâng, mail nằm trên đầu file crontab, hôm nay nó gửi mail cho mình, mail báo: 0 1 1 1 1 1 1 1 1 1 1... chắc là do fail2ban, nhưng cũng hay nhỉ IP bị chặn...
jpbrain avatar
lá cờ ca
Có thể, tốt hơn là gửi trạng thái fail2ban ở cuối tập lệnh.
alebal avatar
lá cờ mx
thế nào ??? không có ý tưởng làm thế nào để làm điều đó ...
jpbrain avatar
lá cờ ca
Bạn có thể đăng kịch bản thực tế của mình không? nếu bạn đang sử dụng "fail2ban-client", có một tùy chọn liệt kê các ip bị cấm để vào Nhà tù.
alebal avatar
lá cờ mx
đã thêm vào bài đăng đầu tiên của bạn... nhưng nó rất giống với bài đăng của bạn...
alebal avatar
lá cờ mx
Chúng tôi có thể in nội dung tệp ip_add_fwd.txt trong thư không?
jpbrain avatar
lá cờ ca
Hãy để chúng tôi [tiếp tục cuộc thảo luận này trong cuộc trò chuyện](https://chat.stackexchange.com/rooms/129411/discussion-between-jpbrain-and-alebal).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.