Análise de log do Apache, Nginx, IIS
Design Apache
1.1 Plataforma Windows Server 2008 R2
1.1.1 Local e configuração do log
(1) Após iniciar o Apache, o Apache gerará automaticamente dois arquivos de log, que são o log de acesso access.log e o log de erros error.log
(2) Podemos configurar o formato do log de acesso do Apache no arquivo de configuração do Apache httpd.conf.
#下面两句定义不同模式下的日志记录格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
#下面一句定义日志文件存储位置以及采用的记录格式
CustomLog "logs/access.log" common
Explicação:
Existem dois formatos principais de log no Apache, comum e combinado.Por padrão, o tipo comum de log é usado para acessar informações durante a instalação.
1.1.2. Análise
(1) A seguir, é apresentado um registro de log padrão no formato de registro comum
192.168.2.184 - - [20/Apr/2020:17:17:18 +0800] "GET /pikachu-master HTTP/1.1" 301 247
A análise é a seguinte:
Valor do campo | Nome do campo | Significado |
---|---|---|
192.168.2.184 | IP do cliente | IP do servidor de acesso |
- | ||
- | Nome de login | O nome fornecido quando o cliente acessa a verificação do serviço (em caso de anonimato) |
[20 / abr / 2020: 17: 17: 18 +0800] | Tempo | O horário solicitado pelo segmento de cliente ("+0800" indica que o fuso horário do servidor é de 8 horas após o UTC) |
"GET / pikachu-master HTTP / 1.1" | Método + Recursos + Acordo | Método de solicitação do cliente, arquivo de recurso solicitado, protocolo adotado pelo cliente |
301 | Código de status | 301 significa que a página solicitada foi transferida para um novo URL |
247 | Bytes | O comprimento de bytes enviados pelo servidor ao cliente |
(2) A seguir, há um registro de log padrão no formato de registro combinado
192.168.2.184 - - [20/Apr/2020:17:36:18 +0800] "GET /pikachu-master/ HTTP/1.1" 200 35392 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0"
A análise é a seguinte:
Valor do campo | Nome do campo | Significado |
---|---|---|
... | ... | ... |
"-" | Site de referência | O site anterior visitado pelo usuário. Este site fornece um link para o site atual. |
"Mozilla / 5.0 (Windows NT 10.0; Win64; x64; rv: 75.0) Gecko / 20100101 Firefox / 75.0" |
Informações de identificação do navegador fornecidas pelo navegador do cliente | Versão do kernel do navegador, versão do sistema operacional, versão do navegador |
1.2 Plataforma CentOS 7
1.2.1 Local do log
cat /var/log/httpd/access_log 查看Apache日志
1.2.2 Análise
O seguinte é um registro
192.168.2.184 - - [11/Apr/2020:21:51:47 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0"
A observação é exatamente igual à do Windows, portanto, a análise pode se referir à 1.1.2
Dois, Nginx
2.1 Plataforma Windows Server 2008 R2
2.1.1 Localização do log
Podemos visualizar ou alterar o local de armazenamento do log no arquivo de configuração
2.1.2 Análise
O seguinte é um log.
192.168.33.254 - - [20/Feb/2020:22:57:27 +0800] "POST /pikachu-master/vul/burteforce/bf_form.php HTTP/1.1" 200 4899 "http://192.168.33.254/pikachu-master/vul/burteforce/bf_form.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
Veja 2.2 para detalhes (o mesmo que no Linux)
2.2 Plataforma CentOS 7
2.2.1 Localização e configuração do log
#日志位置
/var/log/nginx/access.log
#nginx配置文件位置
vim /etc/nginx/nginx.conf(可能有所不一样)
#配置文件中关于日志的字段(日志格式+日志存放位置)
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
2.2.2 Análise
A seguir está um log do Nginx:
192.168.2.184 - - [20/Apr/2020:17:59:09 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0" "-"
Análise:
Valor do campo | Nome do campo | Significado |
---|---|---|
192.168.2.184 | $ remote_addr | Endereço IP do cliente (usuário) |
- - | - $ remote_user | O nome de usuário do cliente, acesso anônimo é |
[20 / abr / 2020: 17: 59: 09 + 0800] | [$ time_local] | Tempo de acesso |
"GET /index.html HTTP / 1.1" | "$ request" | Método de solicitação e endereço URI do recurso solicitado |
200 | $ status | Código de status (200 OK) |
612 | $ body_bytes_sent | Tamanho da página solicitado |
"-" | "$ http_referer" | Página de origem, ou seja, de qual página ir para esta página |
"Mozilla / 5.0 (Windows NT 10.0; Win64; x64; rv: 75.0) Gecko / 20100101 Firefox / 75.0" |
"$ http_user_agent" | Informações do navegador, informações do sistema operacional |
"-" | "$ http_x_forwarded_for" | Obtenha o IP real, caso contrário, ele será exibido como |
3.2.3 Campos de log personalizados
Se as informações que queremos obter não forem registradas, por exemplo: o tempo de processamento do servidor, etc. Em seguida, podemos adicionar o seguinte conteúdo no arquivo de configuração para obter as informações que queremos.
$request_time
#记录请求处理时间(以秒为单位,携带毫秒的解决方案),从读取客户端第一个字节开始算起,到发送最后一个字节给客户端的时间间隔
$upstream_response_time
#记录nginx从后端服务器(upstream server)获取响应的时间(以秒为单位,携带毫秒的解决方案),多个请求的时间以逗号分隔
$request_length
#记录请求长度(包括请求行,请求头,请求体)
$bytes_sent
#发送给客户端的字节数,不同于$body_bytes_sent(发送给客户端的响应体字节数)
Três, IIS
3.1 Localização dos registros de log do IIS 7 (Windows Server 2008 R2)
Além disso, podemos definir os campos a serem registrados no log por meio do gerenciador do Internet Information Service (IIS):
3.2 Análise
Um registro completo é o seguinte:
#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2020-04-20 07:28:44
#Fields: date time s-sitename s-computername s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2020-04-20 07:28:44 W3SVC4 FENGWENBO 192.168.2.254 GET /picnews.asp - 8004 - 192.168.2.184 HTTP/1.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:75.0)+Gecko/20100101+Firefox/75.0 zh_choose=n;+ASPSESSIONIDAQSBBTTA=FHLLDFKCKALEMJAPACIFLDLL http://192.168.2.254:8004/ 192.168.2.254:8004 200 0 0 731 500 327
O significado de cada campo é o seguinte:
Valor do campo | Nome do campo | Significado |
---|---|---|
2020-04-20 | Data | Data do evento |
07:28:44 (+8) | Tempo | Quando a atividade ocorreu |
W3SVC4 | Nome do serviço (s-sitename) | O número de serviços da Internet e instâncias do site acessadas pelo cliente |
FENGWENBO | Nome do servidor (s-computername) | O nome do servidor que gerou a entrada do log. |
192.168.2.254 | IP do servidor (s-ip) | O endereço IP do servidor que gerou a entrada de log |
OBTER | Método (método cs) | Operações realizadas pelo cliente |
/picnews.asp | Página de acesso solicitado (cs-uri-stem) | Arquivos de acesso do cliente |
Cadeia de consulta de acesso (cs-uri-query) | A consulta que o cliente está tentando executar (nada no momento, mostrado como) | |
8004 | Porta do servidor (porta s) | A porta em que o cliente se conecta ao servidor |
- | Nome de usuário do cliente (cs-username) | Login de usuário anônimo, mostrado como |
192.168.2.184 | IP do cliente (c-ip) | Endereço IP do cliente real para acessar o servidor |
HTTP / 1.1 | Versão do protocolo (versão cs) | O protocolo usado pelo cliente |
Mozilla / 5.0 + (Windows + NT + 10.0; + Win64; + x64; + rv: 75.0) + Gecko / 20100101 + Firefox / 75.0 |
Agente do usuário (cs (User-Agent)) | Navegador usado no cliente |
zh_choose=n; +ASPSESSION IDAQSBBTTA =FHLLDFKCK ALEMJAPACIFLDLL |
cookie(cs(Cookie)) | 发送或接收的 Cookie 的内容 |
http://192.168.2.254:8004/ | 引用站点(cs(Referer)) | 用户访问的前一个站点。此站点提供到当前站点的链接。 |
192.168.2.254:8004 | 主机(cs-host) | 显示主机头的内容 |
200 | 协议返回状态(sc-status) | 以HTTP或FTP表示的操作的状态(200 OK) |
0 | HTTP子协议的状态(sc-substatus) | |
0 | Win32® 状态(sc-win32-status) | 用 Windows® 使用的术语表示的操作的状态 |
731 | 服务器发送的字节数(sc-bytes) | 服务器发送的字节数。 |
500 | 服务器接受的字节数(cs-bytes) | 服务器接收的字节数。 |
327 | 所用时间(time-taken) | 操作花费的时间长短(亳秒) |