この投稿では、rsyslog を構成して、特定の IP アドレスを持つメッセージをフィルタリングし、それらのメッセージをドロップする方法について説明しています。デフォルトでは、syslog は rsyslog のような高度なフィルタリングで構成されていません。以下の手順に従って、特定の IP アドレスを持つメッセージをフィルタリングするように rsyslog を構成します。
1. システムに rsyslog が存在しない場合はインストールします。 Redhat ベースのディストリビューションの場合:
# yum install rsyslog
2. chkconfig/systemctl コマンドを使用して、起動時に rsyslog サービスを有効にします。また、サービスを開始します。
# chkconfig rsyslog on ### CentOS/RHEL 6 # systemctl enable rsyslog ### CentOS/RHEL 7
# service rsyslog start ### CentOS/RHEL 6 # systemctl start rsyslog ### CentOS/RHEL 7
3. IP アドレス xx.xx.xx.xx に関連するすべてのメッセージを破棄するには、/etc/rsyslog.conf を編集し、以下の破棄フィルターをファイルの下部ではなく上部に追加してください。
# vi /etc/rsyslog.conf :msg, contains, "xx.xx.xx.xx " ~
4. rsyslog サービスを再起動します
# service rsyslog restart
確認
logger を使用して、上記の設定を確認できます。 指図。 Logger コマンドは、コマンド ラインで syslog メッセージを手動で生成するために使用されます。以下のコマンドを使用して、必要な IP アドレスを含む syslog メッセージを生成します。
# logger xx.xx.xx.xx
/var/log/messages ファイルで、上記のメッセージが記録されていないことを確認します。また、別の IP アドレスを使用して、別の IP アドレスを含む他のメッセージが破棄されていないことを確認してください。
特定のプログラム/コマンドにフィルターを適用する
フィルタは、特定の IP とともに vsftpd などの特定のプログラムに適用することもできます。以下の破棄フィルターを使用して、xx.xx.xx.xx IP および vsftpd コマンドのログを破棄します。
# vi /etc/rsyslog.conf if $programname == 'vsftpd' and ($msg contains 'xx.xx.xx.xx' or $msg contains 'xx.xx.xx.xx') then ~