Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
3proxy не предусматривает возможности логирования трафика, поэтому нам придется самим немного поправить исходники. Изменения нужно делать в файле sockmap.c, поскольку именно там происходит обмен данными. Начнем с исходящего от сервера трафика. Найди строку «j = recvfrom(param-> remsock, buf, BUFSIZE, 0,…». Эта функция посылает содержимое переменной buf на удаленный сервер. Чтобы контент этой переменной постоянно писался в файл, нужно вставить после этой строки такой код:
*(buf+j)=0; // открываем файл /tmp/mylog_out для добавления инфы: my_fp=fopen("/tmp/mylog_out","a"); // пишем в него содержимое переменной buf fprintf(my_fp,"%s",buf); // закрываем файл fclose(my_fp);
Исходящий от клиента трафик, который может содержать важные пассы, записывается аналогичным способом. После строки «res=sendto(param-> remsock, buf + trans, i — trans, 0…» нужно всего-навсего добавить такой код:
*(buf + i)=0; my_fp=fopen("/tmp/mylog_in","a"); fprintf(my_fp,"%s",buf+trans); fclose(my_fp);
Теперь весь проходящий через сокс трафик будет писаться в файлы mylog_in и mylog_out.
Анализатор лог-файлов 3proxy