Feb 5 13:07:52 plugh rsyslogd-2177: imuxsock begins to drop messages from pid 12105 due to rate-limiting
FROM:https://www.nri-secure.co.jp/ncsirt/2013/0218.html
SANSインターネットストームセンターのハンドラであるJohannes Ullrichが、rsyslogのrate-limiting機能について報告している。
(掲載日:米国時間 2013年2月6日)
(本稿は、Bill Parker氏に寄稿して頂いた)
/var/log/*配下のログファイルを参照しているが、重要あるいは重大になりうる情報を紛失している管理者はどのくらいいるだろうか?
あるテストマシン(VirtualBox 4.2.6の64ビット版CentOS 6.3)において、広く使われているIDS(Snort 2.9.x)を扱っていた時だ。/etc/init.dの起動スクリプト経由でsnortが初期化される際、筆者は普段目にしないメッセージに偶然気がついた。
メッセージの原因はこうだ。最近のLinuxディストリビューションであれば、その多くにsyslogdあるいはsysklogdを置き換えるrsyslogが付属している。しかし、rsyslogのバージョン5.7.1から、rate-limitingという機能が追加され、5秒間に/var/log/messagesへ200以上のメッセージ(rsyslogのデフォルト設定)を送信したプロセスID(PID)があれば、rsyslogはメッセージを捨て始め、/var/log/messagesに以下のような警告を出力する。
Feb 5 13:07:52 plugh rsyslogd-2177: imuxsock begins to drop messages from pid 12105 due to rate-limiting
そのため、/var/log/messages等にメッセージを出力するデーモンあるいはプロセスの場合、セキュリティ管理者/システム管理者にとって、多くの重要/重大なメッセージが紛失してしまう可能性がある。
ルータ/ファイアウォール/Webサーバから出力されるメッセージに対しrate-limitingを活用するのは、特定のネットワーク型攻撃を抑制する上で効果的な方法になる。その一方で、システム/アプリケーション・ロギングの場合、SIEM(注1)あるいは膨大なシステム/アプリケーション・ログを収集し解析するアプリケーションにとって、この機能は悪夢のような状況を作り出す可能性がある。ただ、rsyslogの仕様を調べたところ、解決策を2つ見つけたので以下に紹介したいと思う。
注意 - 先に進む前に対象ファイルのバックアップを取得する事!
1つ目の解決策は、単にrsyslogでrate-limitingが発生する前のメッセージ数上限を上げる、あるいは時間間隔を減らすというものだ。そのためには、rsyslog.confあるいはrsyslog.early.confを見つけ(通常は、/etc以下にある)、下記設定を追加する。
$SystemLogRateLimitInterval 10
$SystemLogRateLimitBurst 500
上記は、rsyslog.confあるいはrsyslog.early.confの$ModLoadディレクティブ以下に追加する。
この設定により、10秒間に500以上のメッセージを1つのPIDから受信した場合、rate-limitingが動作しメッセージを捨て始める(上記の値は絶対的なものではなく、システムに合わせ調整してほしい)。
2つ目の解決策は、単純にrsyslogのrate-limitingを無効にするというものだ。そのためには、下記設定をrsyslog.confあるいはrsyslog.early.confに追加する。
$SystemLogRateLimitInterval 0
上記は、rsyslog.confあるいはrsyslog.early.confの$ModLoadディレクティブ以下に追加する。
この設定により、rate-limiting自体が無効になる。ただ、この設定を投入する事で、制御できなくなったプロセスIDが使い道のないメッセージで/var/log/messagesを埋め尽くす可能性があるという事は、認識しておいて頂きたい(そういう訳で、rate-limitingがrsyslogにおいてデフォルトで有効になっているのだ)。
また、rsyslog.confあるいはrsyslog.early.confの設定変更を有効にする際には、rsyslogデーモンを忘れずに再起動してほしい。
なお、下記のLinuxディストリビューションでは、rsyslogをデフォルトのシステムロガーとして使用している。
CentOS 6.x
Debian 5.0
Fedora 13以上
OpenSuSE 11.x/12.x
Ubuntu 10.0以上
また、BSDベースのシステム(FreeBSD 8.x/9.0、OpenBSD 5.x、NetBSD 5.x/6.0)では、伝統的なsyslogdがデフォルトのシステムロガーとして使用されている。より詳細な情報が必要な場合、下記URLを参照してほしい。
http://www.rsyslog.com/doc 
注1:SIEMとはSecurity Information and Event Managementの略で、ネットワーク機器、サーバ機器等から出力されるログを集中的に保存・解析するソリューション
原文:https://isc.sans.edu/diary.html?storyid=15106 
Feb 5 13:07:52 plugh rsyslogd-2177: imuxsock begins to drop messages from pid 12105 due to rate-limiting的更多相关文章
- UVA 10392 (13.07.28)
Problem F: Factoring Large Numbers One of the central ideas behind much cryptography is that factori ...
- ofbiz最新版13.07.01环境搭建、安装(linux环境下)
一.软件必备: 1.jdk1.7 2.mysql5.6 3.安装tomcat 二.安装: 1.安装 JDK1.7 2.安装mysql数据库 3.下载apache-ofbiz-13.07.01.zip ...
- Saving James Bond - Easy Version 原创 2017年11月23日 13:07:33
06-图2 Saving James Bond - Easy Version(25 分) This time let us consider the situation in the movie &q ...
- select document library from certain list 分类: Sharepoint 2015-07-05 07:52 6人阅读 评论(0) 收藏
S using System; using Microsoft.SharePoint; namespace Test { class ConsoleApp { static void Main(str ...
- UVA 299 (13.07.30)
Train Swapping At an old railway station, you may still encounter one of the lastremaining ``train ...
- UVA 140 (13.07.29)
Bandwidth Given a graph (V,E) where V is a set of nodes and E is a set of arcsin VxV, and anorderi ...
- UVA 568 (13.07.28)
Just the Facts The expression N!, read as `` N factorial," denotes the product of the first N ...
- UVA 408 (13.07.28)
Uniform Generator Computer simulations often require random numbers. One way to generatepseudo-ran ...
- Hdu1896 Stones(优先队列) 2017-01-17 13:07 40人阅读 评论(0) 收藏
Stones Time Limit : 5000/3000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submis ...
随机推荐
- Samsung_tiny4412(驱动笔记06)----list_head,proc file system,GPIO,ioremap
/**************************************************************************** * * list_head,proc fil ...
- C语音下改变const变量的值的奇葩方法
恶心,超恶心~~
- [LeetCode&Python] Problem 349. Intersection of Two Arrays
Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...
- 回文树&后缀自动机&后缀数组
KMP,扩展KMP和Manacher就不写了,感觉没多大意思. 之前感觉后缀自动机简直可以解决一切,所以不怎么写后缀数组. 马拉车主要是通过对称中心解决问题,有的时候要通过回文串的边界解决问题 ...
- about Version Control(版本控制)
what: 版本控制系统是一种软件,它可以帮助您跟踪代码随时间的变化. 在编辑代码时,您告诉版本控制系统对文件进行快照. 版本控制系统将永久保存该快照,以便在以后需要时可以收回它. 如果没有版本控制, ...
- matlab学习(1)strsplit与strtok
strsplit函数用法: <1>默认使用空格符分割,返回一个cell数组 <2>也可以指定第二个参数进行分割 <3>第二个参数也可以时包含多个分隔符的元胞数组 & ...
- 数据结构HUFFman求权值
#include <bits/stdc++.h>using namespace std;priority_queue< int, vector <int>, greate ...
- Js 模式匹配
模式匹配: 什么是模式匹配:可以设置查找或替换的规则! 何时使用模式匹配:要查找的关键字可能发生有规律的变化. 如何使用模式匹配: 1.先定义模式:/关键字/模式 比如:var reg=/no/i; ...
- 【git】如何向gitHub上推送自己的项目
一.在本地建立项目spring 二.在gitHub上创建spring仓库 三.在本地生成公私钥文件 命令:ssh-keygen -t rsa -C "shangxiaofei3@163.co ...
- java小知识,驼峰规则
单词之间不以空格.连接号或者底线连结(例如不应写成:camel case.camel-case或camel_case形式).共有两种格式: 1.小驼峰式命名法(lower camel case): 第 ...