网络日志是一个平时不怎么被重视的东西,今天写到关于网络日志的内容,是在部署网站的时候,看到访问日志里记录的ip地址不对,解决如何获取客户端真实ip地址的问题的同时,想到了关于网络日志合规性的内容,一并记录。
第一个问题:前端使用Nginx反向代理,后端Aapche如何获取真实ip 在简易的Nginx反向代理架构中,客户端访问网址,直接访问到的是前端代理服务器,代理服务器获取请求后,再将代理转发给后端的服务器,如此,代理服务器拿到了客户端的ip地址,而后端服务器拿到的是代理服务器的ip地址,导致了后端服务器记录的日志内容不准确。
当查看后端Apache服务器的访问日志时,每一行网络请求对应的ip地址都是相同的,而且正是前端nginx反向代理服务器的ip地址。
nginx和apache都是可配置的,通过修改nginx和apache的配置,可以实现将客户端的真实ip地址传递至后端apache服务器。 直接贴出两个配置文件如下:
#nginx 站点配置文件 server { listen 80; server_name luoanman.com www.luoanman.com; rewrite ^(.*)$ https://$host$1 permanent; } server { listen 443 ssl; server_name luoanman.com www.luoanman.com; ssl_certificate /var/www/www-luoanman-com/luoanman/www.luoanman.com.pem; ssl_certificate_key /var/www/www-luoanman-com/cert/www.luoanman.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-Ip $remote_addr; proxy_set_header X-NginX-Proxy true; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:8080; proxy_redirect off; } }
apahce启用remoteip模块,修改两处配置。
#启用remoteip_module LoadModule remoteip_module modules/mod_remoteip.so
#修改httpd.conf <IfModule remoteip_module> RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 127.0.0.1 </Ifmodule>
#修改httpd.conf LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%a %l %u %t \"%r\" %>s %b" common <IfModule logio_module> # You need to enable mod_logio.c to use %I and %O LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule>
修改配置后,重新启动nginx和apahce,在apahce服务器的访问日志里就可以看到客户端的真实IP地址了。
第二个问题:网络日志管理的合规性
网络日志管理的合规性是个什么问题?初看真是一头雾水,因为这个问题太抽象了。 再问一个具体点的:网站访问日志没有记录访问用户的真实网络ip地址会有什么问题? 根据网上公布的一些公安机关处置的案件,有不少因为网站访问日志管理不规范而被行政警告处罚和罚款的实例,其中罚款不仅是对单位罚款,而且还要对网络安全负责人进行罚款。而网站访问日志保存不规范,日志内容保存不准确或不完整,在检查的时候都是不合规的。 在《网络安全法》、《互联网安全保护技术措施规定(公安部令第82号)》等法律法规里面有关于日志保存的要求。《网络安全法》第三章网络运行安全第二十一条有如下内容:
再看《互联网安全保护技术措施规定(公安部令第82号)》第七条和第十三条:
在《GB/T 22239-2019 信息安全技术 网络安全等级保护基本要求》中对等级保护二级以上的系统有更加详细的日志管理要求。随着系统等级的提高,日志还需要单独保存,不能与系统保存在同一台服务器上。而关于不履行日志管理的法律责任在《网络安全法》里有相应的规定:在《计算机信息网络国际联网安全保护管理办法(2011修订)》中也有相应的处罚条款:总的来说,网站日志管理在当前网路安全相关法律法规逐渐完善,网络安全监测日趋严格的环境下,千万不能忽视,有条件的,可以建一个专门的网络日志管理和分析系统,这样一方面做到合规,在合规性审计上不出问题,另一方面也便于从日志记录中检查和检验操作事件的环境及活动,从而发现系统漏洞、入侵行为或改善系统性能。