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 ...
随机推荐
- Insert插入不同的列数量,统计信息对比
一.实验目的: Insert插入表中相同的行数量,不同的列数量,通过10046 和autotrace工具对比查看逻辑读.物理读.time数据,并得出相应结论 二.测试 2.1测试流程: =>[为 ...
- [LeetCode&Python] Problem 350. Intersection of Two Arrays II
Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...
- iptables filter表 案例、iptables nat表的路由功能 、端口映射
1.小案例 #!/bin/bashipt="/usr/sbin/iptables"$ipt -F$ipt -P INPUT DROP$ipt -P OUTPUT ACCEPT$ip ...
- 2018.4.24 java实现8皇后算法
import java.util.Scanner; public class Nqueens { private boolean verify(int[] arr,int i) { // TODO A ...
- acm 2057
////////////////////////////////////////////////////////////////////////////////#include<iostream ...
- MyBatis-Plus使用教程
单机版 安装环境 上传压缩包到/usr/local/software/下 解压安装包,进入解压目录的bin目录下,启动命令: ./solr start -force 默认端口是8983,请求虚拟机, ...
- 《DSP using MATLAB》Problem 6.14
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- hdu1846 Brave Game 博弈
十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻.今天,大家选择上 ...
- 使用patroni 解决hasura graphql-engine pg 数据库ha的问题
环境准备 机器pg 数据库地址修改为haproxy 的ip地址,端口是haproxy的tcp 端口,配置比较简单 hasura graphql-engine docker-compose versio ...
- 列表(list)的增删改查
list 可以通过 索引,切片,切片加步长取出列表中的某个元素 列表的增: # 追加 append() 在列表的后面追加元素 # 插入 insert()在列表的某个位置插入元素 会加在你输入位置的 ...