皮皮网

【faqrobot网站源码】【正则模块源码】【Fresco源码研究】logrotate 源码

2024-11-23 13:01:05 来源:map源码详解

1.为什么,nginx的log被自动压缩
2.linux 为什么yum日志轮替不用重新加载 http等应用日志轮替需要重新加载服务呢
3.安全干货DockerCVE-2018-6552
4.opensips简介

logrotate 源码

为什么,nginx的log被自动压缩

       ä¸€èˆ¬é€šè¿‡rpm包方式安装的nginx的日志有每天压缩的功能

       æºç åŒ…安装可以使用logrotate对日志进行定期压缩与备份

       äºŒè€…一般都是通过logrotate实现,如果有需要可以通过其他方式实现

linux 为什么yum日志轮替不用重新加载 http等应用日志轮替需要重新加载服务呢

       一、轮替规则及配置文件:vi /etc/logrotate.conf

       1、如果配置文件中拥有“ dateext”参数,那么日志会用日期来作为日志文件的后缀,例如“ secure-”。这样的faqrobot网站源码话日志文件名不会重叠,所以也就不需要日志文件的改名,只需要保存指定的日志个数,删除多余的日志文件即可。

       2、如果配置文件中没有“ dateext”参数,那么日志文件就需要进行改名了。当第一次进行日志轮替时,当前的“ secure”日志会自动改名为“ secure.1”,然后新建“ secure”日志,用来保存新的日志。当第二次进行日志轮替时,正则模块源码“ secure.1”会自动改名为“ secure.2”,当前的“ secure”日志会自动改名为“ secure.1”,然后也会新建“ secure”日志,用来保存新的日志,以此类推。

       二、/etc/logrotate.conf配置文件说明

        

       三、apache日志加入轮替(如果是yum安装,则默认就使用了轮替,不用单独设置;如果是源码安装,则需要配置轮替)

       vi /etc/logrotate.conf

       /usr/local/apache/logs/access_log {

       daily

       create

       rotate

       }  

       四、logrotate命令

       logrotate [选项] 配置文件名

       选项:

       如果此命令没有选项,则会按照配置文件中的条件进行日志轮替

       -v: 显示日志轮替过程。加了-v选项,会显示日志的轮替的过程

       logrotate -v /etc/logrotate.conf

       -f: 强制进行日志轮替。不管日志轮替的Fresco源码研究条件是否已经符合,强制配置文件中所有的日志进行轮替

       logrotate -f /etc/logrotate.conf

安全干货DockerCVE--

       cve--

       此漏洞未有公开分析,唯一的参考是长亭在滴滴安全大会的PPT,信息简略,仅在完成利用后发现一些未注意到的细节。漏洞基于条件竞争,主要影响未修复版本的is_same_as函数,通过特殊方法使其不执行正常逻辑,继续往下执行。

       源码分析

       展示了is_same_as源码,以及修复前后版本的对比。apport源码位于2..9版本,追踪源码找到更改过的pid进入get_pid_info,贴出源码。

       apport为ubuntu程序,用于处理程序崩溃信息,配置文件如/sys/kernel/core_pattern影响生成core文件的飞仙源码命名方式。核心是确定生成的core文件路径,以及内核coredump.c传入的参数。

       核心配置文件为/sys/kernel/core_uses_pid,值为1代表生成的core文件带.pid,0代表不带。同时,/proc/sys/kernel/pid_max限制最大pid值,影响核心循环计数。logrotate配置用于日志管理。

       在Ubuntu .中,apport与漏洞版本差异大,选择替换整个apport文件。遇到程序不运行问题,可能涉及core_pattern配置。通过日志分析发现入参多了一个%E,删去后程序恢复正常。xscript打包源码

       逃逸步骤

       利用条件竞争绕过分支,首先kill对应pid,然后通过大量fork等待创建进程,占用pid。利用docker内进程路径控制物理机中core生成路径。生成core前检查ulimit -c,限制core文件大小,设置ulimit -c unlimited。

       逃逸第二步

       通过logrotate定时任务触发执行core中的指令,将想运行的指令写成字符串形式,保存在core文件中。使用logrotate格式编写命令,确保成功执行。手动触发logrotate命令,监听对应端口以获取返回结果。

opensips简介

       在众多sip服务器中,主要分为两大类:一类侧重于媒体和业务服务器,比如freeswitch/asterisk,另一类侧重于代理和负载服务器,如opensips/kamailio。今天我们来介绍下opensips。

       OpenSIPS是用于处理语音、视频、即时消息、在线状态以及其他SIP扩展的开源SIP代理服务器。它被运营商、电信公司或ITSP广泛应用于Class4/5平台、中继、企业/虚拟PBX解决方案、会话边界控制器、应用服务器、前端负载解决方案、IMS平台、呼叫中心等。

       OpenSIPS推荐用于各种SIP场景和服务,其特点包括高吞吐量、路由和集成的灵活性以及有效的应用程序构建。它提供了超过个模块,用于SIP处理、后端操作、集成和路由逻辑。

       接下来,我们介绍OpenSIPS的通用编译安装和配置启动流程。

       开发环境需满足以下条件:CentOS版本6或以上、OpenSIPS版本2.4.9、GCC/C++版本4.4.7。

       编译安装分为几个步骤:安装依赖库,如hiredis;然后从源码安装包中进行编译安装,有多种方法可选,如方法1或方法2。

       安装完成后,目录结构默认位于/usr/local/opensips,需要检查安装目录。

       创建数据库时需确保无数据库已存在,执行相应命令。

       防火墙设置需根据不同版本的CentOS进行相应配置,例如CentOS6和CentOS7。

       配置日志时,修改opensips.cfg和rsyslog.conf文件,新增logrotate.d/opensips文件,并设置定时任务,重启rsyslog服务。

       设置TCP最大连接数限制,可通过用户级别、Linux系统级别调整,若服务器作为客户端时还需配置端口范围。通过查看sysctl.conf,使配置立即生效。

       使用Linux下查看TCP连接数及状态的命令,统计特定端口的连接数,分析异常情况并封禁IP。

       启动脚本可设置为开机自动启动,使用开机自动启动命令。启停命令提供启动和停止选项,启动时如果失败应检查日志文件。

       配置文件主要用于配置OpenSIPS作为注册服务器的信令代理和负载节点。增加网关数据,配置sip软终端,并进行加载测试,通过sip软终端注册和发起呼叫,测试信令和媒体的连通性。

       总的来说,OpenSIPS作为负载均衡的代理网关,性能优秀。通过配置文件,可以实现常见的网关功能,具体操作请参考OpenSIPS的子模块介绍和接口文档。