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 ... :(