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的更多相关文章

  1. UVA 10392 (13.07.28)

    Problem F: Factoring Large Numbers One of the central ideas behind much cryptography is that factori ...

  2. 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 ...

  3. 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 ...

  4. 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 ...

  5. UVA 299 (13.07.30)

     Train Swapping  At an old railway station, you may still encounter one of the lastremaining ``train ...

  6. 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 ...

  7. UVA 568 (13.07.28)

     Just the Facts  The expression N!, read as `` N factorial," denotes the product of the first N ...

  8. UVA 408 (13.07.28)

     Uniform Generator  Computer simulations often require random numbers. One way to generatepseudo-ran ...

  9. Hdu1896 Stones(优先队列) 2017-01-17 13:07 40人阅读 评论(0) 收藏

    Stones Time Limit : 5000/3000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submis ...

随机推荐

  1. 2017java文本文件操作(读写操作)

    java的读写操作是学java开发的必经之路,下面就来总结下java的读写操作. 从上图可以开出,java的读写操作(输入输出)可以用“流”这个概念来表示,总体而言,java的读写操作又分为两种:字符 ...

  2. angular的点击添加

    首先是在js里面我们可以用clone来点击添加一些东西比如列表或者其他的div之类的,但是在angular里面怎么实现点击添加呢? 类似这种: 这样就尴尬了,最少我这样的菜鸟是不知道怎么去写的,网上好 ...

  3. Web安全 概述

    转载自 “余弦”大牛的评论 https://www.zhihu.com/question/21606800 大牛的个人blog:http://evilcos.me/ 作者:余弦链接:https://w ...

  4. (7)MySQL的事务

    什么是事物: 作用:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节.事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像 ...

  5. LeetCode - Convert BST to Greater Tree

    Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original B ...

  6. Eclipse使用Maven时出现:Index downloads are disabled, search results may be incomplete.问题解决

    https://www.cnblogs.com/EasonJim/p/6674099.html 1.全局设置 [Windows]->[Preferences]->[Maven]->勾 ...

  7. nginx 优化(突破十万并发)

    一般来说nginx配置文件中对优化比较有作用的为以下几项: worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数. worker_cpu_affinity ...

  8. vim 自动注释

    开启了自动注释和自动缩进对粘帖代码不方便   关闭自动注释 :set fo-=r  关闭自动缩进(这个对C/C++代码好像无效) :set noautoindent 关闭C语言缩进  :set noc ...

  9. Ubuntu server 运行.net core api 心得

    1.安装.net core sdk 在微软.net core 安装页面找到linux 安装,按照步骤安装好 2.安装mysql 参考 Ubuntu安装mysql 3.配置mysql 1.需要将mysq ...

  10. COM,SOM, QT, GObject, ObjectiveC

    COM,SOM, QT, GObject, ObjectiveC https://en.wikipedia.org/wiki/IBM_System_Object_Model#Comparison_of ...