На прошлой неделе я получал огромный поток трафика с большого количества китайских IP-адресов. Этот трафик, похоже, исходит от обычных людей, и их HTTP-запросы указывают на то, что они думают, что я:
Все это похоже на то, для чего люди будут использовать VPN. Или вещи, которые разозлили бы Великую Китайскую стену.
К пользовательским агентам относятся веб-браузеры, Android, iOS, FBiOSSDK, Bittorrent. IP-адреса являются обычными коммерческими китайскими провайдерами.
У меня Nginx возвращает 444, если хост неверен или пользовательский агент явно неверен:
## Deny illegal Host headers
if ($host !~* ^({{ www_domain }})$ ) {
return 444;
}
## block bad agents
if ($http_user_agent ~* FBiOSSDK|ExchangeWebServices|Bittorrent) {
return 444;
}
Теперь я могу справиться с нагрузкой, но были всплески до 2k / мин. Я хочу узнать, почему они идут ко мне, и остановить это. У нас также есть законный трафик CN, поэтому запрещение 1/6 части планеты Земля не вариант.
Возможно, это вредоносный и даже личный, но это может быть просто неправильно настроенный DNS.
Моя теория заключается в том, что это неправильно настроенный DNS-сервер или, возможно, некоторые службы VPN, которые люди используют, чтобы обойти Великую стену огня.
Учитывая IP-адрес клиента:
183.36.131.137 - - [05/Jan/2015:04:44:12 -0500] "GET /announce?info_hash=%3E%F3%0B%907%7F%9D%E1%C1%CB%BAiF%D8C%DE%27vG%A9&peer_id=%2DSD0100%2D%96%8B%C0%3B%86n%8El%C5L%11%13&ip=183.36.131.137&port=11794&uploaded=4689970239&downloaded=4689970239&left=0&numwant=200&key=9085&compact=1 HTTP/1.0" 444 0 "-" "Bittorrent"
Я могу знать:
descr: CHINANET Guangdong province network
descr: Data Communication Division
descr: China Telecom
Существует один теоретический способ определения преобразователя DNS ваших клиентов, но он довольно продвинутый, и я не знаю какого-либо готового программного обеспечения, которое сделало бы это за вас. Вам обязательно нужно запустить авторитетный DNS-сервер для этого в дополнение к вашему nginx.
В случае, если заголовок HTTP Host неверен, подайте документ с ошибкой и включите запрос на динамически созданное уникальное полное доменное имя для каждого запроса, который вы регистрируете в базе данных. например.
Пока отличный брандмауэр Китая не возится с этим запросом, а клиент запрашивает документ с этим уникальным FQDN + URI, каждый запрос приведет к новому поиску DNS в авторитетном DNS, например, example.com, где вы можете зарегистрировать IP-адрес DNS-преобразователь, а затем коррелирует это с вашими динамически сгенерированными URI.
Я слышал, что отличный брандмауэр используется для перенаправления «заблокированного» трафика на несколько фальшивых IP-адресов, но из-за этого их блоки легко обнаруживаются (я не уверен, позволял ли он легкую подрывную деятельность). В любом случае администраторы начали перенаправлять на случайные IP. Это привело к некоторым китайским пользователям получать порно, а не Facebook или ВЧС, по-видимому.
Я подозреваю, что один из ваших IP-адресов оказался получателем заблокированного китайского трафика - следовательно, вы видите пользовательских агентов Facebook IPI.
Это означает, что проверка заголовка хоста должна быть хорошей. В наши дни большинство пользовательских агентов поддерживают SNI, так что вы сможете с относительной безнаказанностью отбрасывать трафик без заголовков хоста.
Редактировать: http://www.infosecurity-magazine.com/news/great-firewall-upgrade-redirects/
Как я могу узнать, какой DNS-сервер используют эти клиенты?
Свяжитесь с Chinanet и спросите? Серьезно, DNS настраивается на стороне клиента. Большинство людей получают настройки DNS через DHCP, но предложение OpenDNS и DNS от Google не имело бы бизнес-модели, если бы вы не могли их изменить.
Есть ли способ определить, исходит ли HTTP-запрос от VPN?
Не совсем, за исключением того, что IP будет принадлежать VPN, а не конечному пользователю в Китае.
Что на самом деле здесь происходит?
Этого я не могу вам сказать, но, возможно, в Великий китайский файрвол?