LINUX.ORG.RU
ФорумAdmin

Запросы HTTP CONNECT к Apache - что это и как бороться?

 ,


0

2

Есть сервер на VPS. Стали вылетать процессы из-за нехватки памяти, хотя нагрузка на него должна быть околонулевой.

Стал смотреть логи Apache, а там море вот таких штук

82.157.18.3 - - [04/Apr/2025:00:35:56 +0300] "CONNECT movie.douban.com:443 HTTP/1.1" 200 507 "-" "okhttp/3.14.9"

Он постоянно долбится вот так вот, я ходил на этот URL - это какой-то сайт с иероглифами. Что это за напасть такая?

Честно, пытался почитать и разобраться, мучил нейросеть, но я не настоящий сварщик и так ничего толком и не понял. Объясните пожалуйста, как для чайника, что происходит?

Я только понял что CONNECT это некий вариант прокси сервера через мой Apache, но я не настраивал никакого proxy, это просто хостинг сайтика, и какого же лешего какие-то китайцы могут невозбранно ходить на китайские сайты видосов через мой сервер??? Что это вообще с миром такое?

Как можно с этим эффективно бороться, подскажите пожалуйста!

Ответ на: комментарий от James_Holden

Что значит «концовка»? Начало же. Конец - это новые записи. Тебе флудили запросами что ли? Сколько их там, за какие сроки? Зачем ты постоянно недоговариваешь?

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

апач такой OPTIONS делает как раз при ребуте вроде как

Вот хз, честно говоря. Сейчас посмотрел на голой инсталляции - не делает. Может, какой-то модуль, которого у меня нет.

Если у ТСа время рестарта совпадает с этим запросом, тогда любопытно.

thesis ★★★★★
()
Ответ на: комментарий от thesis

А вот не понятно нихрена. Я перезапускал несколько раз, меняя конфиг. И после раза третьего только, оно отвалилось. Но сейчас я вернул конфиг как было, и все равно 405.

James_Holden ★★★★★
() автор топика
Ответ на: комментарий от James_Holden

Ну хз, если логи засраны, то я в растерянности. Если журнал systemd хранится, то можешь посмотреть на journalctl -u apache2, вдруг там будет неожиданное время перезапуска, типа «…но ведь в этот день я не ничего не рестартил!»

И посмотреть на предмет раскомменченных директив с Proxy в конфигах, grep -r Proxy /etc/apache2. Но это такое. Может, тебе вообще бинарник подменяли, и конфиги грузили из другого места (не верю, но вдруг).

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 2)
Ответ на: комментарий от James_Holden

Щас не об этом, это мы вряд ли сообразим. Просто если предположить, что тебе подменяли апача заодно с конфигами, то в логе системды ты увидишь остановку юнита без последующего немедленного запуска. А с временным промежутком между Stopped и Starting.

thesis ★★★★★
()
Ответ на: комментарий от thesis

А резве нельзя, скажем дописать нужное в перемнную APACHE_ARGUMENTS а после чего дернуть apache2ctl graceful? При условии, что у хакера уже есть шелл пользователя httpd который он получил из дырявого скрипта, например.
При этом родительский процесс apache2 не умирает, а просто завершает дочерние процессы и перезагружает конфиг. Потому рестарта юнита systemd мы не увидим.

Khnazile ★★★★★
()
Последнее исправление: Khnazile (всего исправлений: 1)
Ответ на: комментарий от Khnazile

Да, это я уже понял. Не могу понять только, почему внезапно вместо 200 стало 405. Точнее, это точно стало после перезапуска apache с измененным конфигом, в котором я запретил CONNECT через mod_rewrite. Но сейчас я откатил конфиг назад как было, и все равно дается 405. И нейросеть говорила, что после такого изменения конфига должно пойти 403, а не 405. Поэтому, подозреваю что с самим конфигом это не связано.

James_Holden ★★★★★
() автор топика
Ответ на: комментарий от James_Holden

Тут я не уверен, возможно, делать rewrite в методах CONNECT имеет смысл только если у тебя сервер поддерживает CONNECT. А если mod_proxy не загружен, то и рерайтить нечего, я это так вижу.

Попробуй пойти обратным путем: воспроизведи проблему, загрузив модуль mod_proxy

Khnazile ★★★★★
()
Последнее исправление: Khnazile (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Не могу понять только, почему внезапно вместо 200 стало 405. Точнее, это точно стало после перезапуска apache с измененным конфигом, в котором я запретил CONNECT через mod_rewrite.

чтобы такого избежать, сделайте

cd /etc/apache2
git init
git add -A
....
git commit/git stash
gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 2)
Ответ на: комментарий от James_Holden

запретил CONNECT через mod_rewrite

Кстати, все советы об использовании mod_rewrite следует игнорировать насколько это возможно. В твоем случае - игнорировать обязательно.

Нууу а вообще надо остановиться, закурить и подождать-посмотреть. Можешь подцепить скрипт, чтобы периодически долбился в твои сайты тем же самым, кстати, запросом OPTIONS, раз уж он у тебя не запрещен. И когда в ответе ему прилетит CONNECT - орал бы НАС ИМЕЮТ.

curl -v -X OPTIONS https://my.every.site

Или прям сразу CONNECT’ом и долбиться. Получил 200 = добрый вечер.

Впрочем, это тоже ненадежная херня.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Зачем забанил? Убери бан. Пусть получают 405.

Вполне возможно что проксю тебе включили другие злоумышленники ещё раньше когда-то а эти просто её нашли.

И увеличь хранение логов хотя бы до 3 месяцев, а лучше до года. 14 дней это ерунда какая-то.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)