Логирование действий скриптов

12
Mutabors
На сайте с 17.09.2012
Offline
127
1474

Господа помогайте.

Нужен прежде всего концептуальный подход к организации логирования действий пхп скриптов.

На данном этапе нужно отслеживать исходящие запросы скриптов.

Задача сделать так, что бы в отдельный лог попадали все исходящие запросы пхп скриптов, само собой с именем этого самого скрипта, который этот запрос породил.

Буду благодарен за любые предложения.

Речь об апаче-итк. (mod_php)

Самый продвинутый и надежный SSD хостинг рунета с изоляцией сайтов по 115 руб! (http://beget.ru/?id=332651) Контекстная реклама и продажи. Конкурентные и серые темы. Дорого! Не трать время на рутину! Ее сделают за копейки! (http://www.work-zilla.com?ref=143498)
[umka]
На сайте с 25.05.2008
Offline
456
#1

А что в вашем понимании есть "исходящий запрос"?

CURL? Ну, допустим, как-то можно руками допилить CURL и принудительно выставлять опцию CURLOPT_VERBOSE.

А если скрипт не использует CURL, а соединяется напрямую, через сокеты?

Лог в помощь!
Den73
На сайте с 26.06.2010
Offline
523
#2

штатного такого функционала по моему нету и способов инициализировать соединение как уже заметили множество

у меня к примеру на хостинге мониторинг активности юзеров по средствам lsof, сразу видно кто куда ходил и с какой интенсивностью.

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#3

Mutabors, если задача именно следить, то скорее всего вам нужны патчи в ядро или как минимум патчи в PHP , но честно говоря подобного не встречал. Однако моя рабочая интуиция подсказывает мне, что ваша задача может преследовать иные цели, кто-то заливает на хостинг всякие "бяки" которые потом куда-то лезут и что-то делают? Надо не допускать этого и выявлять негодяев? Этому есть совокупность методик, начиная от блокировки ненужных портов, продолжая лимитом отправки почты в час, заканчивая написанием простейших враперов для логирования запуска сценариев... Однако как не крути, нужен будет анализ упомянутым выше lsof, и.т.п... Т.е говоря прямо, установить софтинку которая решит все проблемы не выйдет, как правило, каждая проблема чуть ли не индивидуальна.... и подходить надо к её решению комплексно, рано или поздно у вас соберется функционал который будет препятствовать доброй половине , а то и большему количеству вредителей :)

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
Mutabors
На сайте с 17.09.2012
Offline
127
#4

1. Речь не только о курл, подобных там не один десяток, да и с сокетами с другой стороны правильно подметили, хотя сокеты по идеи действительно можно запретить, т.к. простым смертным они не нужны.

2. То что стандартных средств нет, я знаю иначе не писал бы тут.

3. Про то, что надо следить, кто и что заливает на хостинг, вопрос больше философский, потому тут его лучше не касаться, а задача у меня стоит прежде всего концептуальная...

Что же давайте думать вместе, нет неразрешимых задач, есть ленивые люди...

На вскидку пока только вариант отдельно собирать выполнение скриптов в лог и отдельно с помощью например iptables исходящие запросы, далее это дело сопоставлять. Минусы в том, что единичные запросы так не отследишь, а только массовые.

Andreyka
На сайте с 19.02.2005
Offline
822
#5

А чем xdebug не устраивает?

Там этого логирования хватает с головой.

Не стоит плодить сущности без необходимости
J
На сайте с 20.02.2014
Offline
120
jkm
#6
Mutabors:

На вскидку пока только вариант отдельно собирать выполнение скриптов в лог и отдельно с помощью например iptables исходящие запросы, далее это дело сопоставлять. Минусы в том, что единичные запросы так не отследишь, а только массовые.

В старт посте указано, что используется apache-itk, значит скрипты запускаются от разных uid.

Для отлова пакетов только от нужных юзеров указываем опцию --uid-owner и интересующий диапазон uid.

Для того, чтобы в логах был uid используем --log-uid.

N
На сайте с 06.05.2007
Offline
419
#7
Минусы в том, что единичные запросы так не отследишь, а только массовые.

А зачем вам единичные ? Вы деньги зарабатываете или упражняетесь в блокировке ?

будьте практичнее : если есть претензии от сетевиков, значит объем трафика и число соединений достаточно большие. а значит вы просто сделаете netstat -np и одновременно загрузите /server-status. Потом спокойно найдете соединения и соответствующие им pid-ы. Повторить до совпадения моментов и получения результата.

А если заметного трафика и претензий - вам это не нужно. Отсутствие популярных решений означает что это никому не нужно.

Кнопка вызова админа ()
A
На сайте с 19.07.2010
Offline
130
#8

если разбор "по горячему", то tcpdump-ом пытаемся найти аномалии. если нашли, то логируем нужные пакеты tcpdump-ом в файл, смотрим, разбираем, снова ищем.

тупо, банально, но за несколько итераций источник аномалии находится.

если мониторинг, то логируем и/или отсекаем "подозрительные" запросы к nginx/апачу

для мониторинга исходящего трафика можно попытаться прикрутить какую-то IDS/IPS например snort (очень давно ее использовал, так что ничего не могу сказать о ее работе сейчас), только все правила и фильтры нужно будет писать самому, а не использовать готовые, т.к. IDS-ы заточены под другие цели.

готовых решений нет.

netwind:
А если заметного трафика и претензий - вам это не нужно.

угу, тоже ориентируюсь на обычно-суточный трафик.

.............
Mutabors
На сайте с 17.09.2012
Offline
127
#9

1. иксдебаг тут не поможет! Во все клиентские скрипты свои вставки делать что ли?

2. Как отловить единично и по горячему вопрос не стоит, вопрос именно концептуальный. И правильно подмечено, он не для заработка, а прежде всего для повышения квалификации. Поэтому конечно поупрожняться в данном случае хочется.

3. Снорт и сурикана тут не помогут никак. Задача в том, что бы сопоставить выполняющийся пхп скрипт с исходящим запросом, который он генерирует..

N
На сайте с 06.05.2007
Offline
419
#10

О, да у нас тут Исследователь.

Ну попробуйте strace. Можно подключиться к любому процессу и всем его потомкам. Выводит очень много лишней информации, но ведь все на свете можно автоматизировать.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий