I am getting slammed hard by bots, and I am not sure how to stop them without blocking my legitimate traffic. I created some iptables
rules that say, if X connections in X seconds, block, but that doesn't do me much good when the bot is only making 2 or 3 requests every 30 seconds.
Ideally, I would like to identify these bots by the URLs and how many times they are hitting that URL, I am sure I can do this with some code, but I was wondering if anyone out there already has a solution that doesn't involve code, and preferably blocks via iptables
.
Any ideas, thoughts, suggestions are greatly appreciated.
Here is the output from my access log:
27.153.233.93 - - [02/Nov/2013:10:44:54 +0000] "GET /register/ HTTP/1.1" 200 8296
192.99.2.188 - - [02/Nov/2013:10:44:54 +0000] "GET /register/ HTTP/1.1" 200 8296
110.86.164.186 - - [02/Nov/2013:10:44:54 +0000] "GET /register/ HTTP/1.1" 200 8296
121.205.239.188 - - [02/Nov/2013:10:44:54 +0000] "POST /register/ HTTP/1.1" 44 339
27.153.233.93 - - [02/Nov/2013:10:44:54 +0000] "POST /register/ HTTP/1.1" 44 339
36.251.24.146 - - [02/Nov/2013:10:44:54 +0000] "GET /wp-login.php HTTP/1.1" 200 1655
110.86.164.186 - - [02/Nov/2013:10:44:55 +0000] "POST /register/ HTTP/1.1" 44 339
192.99.2.188 - - [02/Nov/2013:10:44:54 +0000] "POST /register/ HTTP/1.1" 302 20
110.85.107.18 - - [02/Nov/2013:10:44:56 +0000] "GET /register/ HTTP/1.1" 200 8296
110.86.187.169 - - [02/Nov/2013:10:44:56 +0000] "GET /register/ HTTP/1.1" 200 8296
125.117.214.174 - - [02/Nov/2013:10:44:55 +0000] "POST /wp-admin/admin-ajax.php HTTP/1.1" 200 1166
110.85.107.18 - - [02/Nov/2013:10:44:56 +0000] "POST /register/ HTTP/1.1" 44 339
110.86.187.169 - - [02/Nov/2013:10:44:56 +0000] "POST /register/ HTTP/1.1" 44 339
192.99.2.188 - - [02/Nov/2013:10:44:55 +0000] "GET / HTTP/1.1" 200 10718
110.89.13.58 - - [02/Nov/2013:10:44:57 +0000] "GET /register/ HTTP/1.1" 200 8296
36.251.24.146 - - [02/Nov/2013:10:44:57 +0000] "POST /wp-login.php HTTP/1.1" 302 20
110.89.13.58 - - [02/Nov/2013:10:44:57 +0000] "POST /register/ HTTP/1.1" 44 339
218.86.50.83 - - [02/Nov/2013:10:44:58 +0000] "GET /register/ HTTP/1.1" 200 8296
218.86.50.83 - - [02/Nov/2013:10:44:58 +0000] "POST /register/ HTTP/1.1" 44 339
117.26.195.51 - - [02/Nov/2013:10:44:58 +0000] "GET /register/ HTTP/1.1" 200 8296
120.43.20.103 - - [02/Nov/2013:10:44:58 +0000] "GET /register/ HTTP/1.1" 200 8296
121.205.196.193 - - [02/Nov/2013:10:44:58 +0000] "GET /register/ HTTP/1.1" 200 8296
117.26.195.51 - - [02/Nov/2013:10:44:58 +0000] "POST /register/ HTTP/1.1" 44 339
120.43.20.103 - - [02/Nov/2013:10:44:58 +0000] "POST /register/ HTTP/1.1" 44 339
120.37.207.234 - - [02/Nov/2013:10:44:59 +0000] "GET /register/ HTTP/1.1" 200 8296
27.153.210.2 - - [02/Nov/2013:10:44:59 +0000] "GET /register/ HTTP/1.1" 200 8296
121.205.196.193 - - [02/Nov/2013:10:44:59 +0000] "POST /register/ HTTP/1.1" 44 339
120.37.207.234 - - [02/Nov/2013:10:44:59 +0000] "POST /register/ HTTP/1.1" 44 339
120.37.206.69 - - [02/Nov/2013:10:44:59 +0000] "GET /register/ HTTP/1.1" 200 8296
120.37.206.69 - - [02/Nov/2013:10:44:59 +0000] "POST /register/ HTTP/1.1" 44 339
27.159.234.10 - - [02/Nov/2013:10:44:59 +0000] "GET /register/ HTTP/1.1" 200 8296
27.159.234.10 - - [02/Nov/2013:10:45:00 +0000] "POST /register/ HTTP/1.1" 44 339