iptablesを使用してすべてのアクティビティをログに記録する

Iptablesデフォルトでは、「すべて受け入れる」モードのフィルタールールがあります。つまり、PCとの間のすべての接続を出し入れできますが、サーバーまたはPCへの接続に関するすべての情報をログに記録する場合はどうでしょうか。

注:これから実行する手順は、ディストリビューションで100%有効です。 Debianの/Debianベース、だからあなたが使用する場合 Slackwareの, フェドーラ, CentOSの, オープンスーセ、手順が同じでない場合があります。以下で説明する内容を適用する前に、ディストリビューションのログインシステムを読んで理解することをお勧めします。 リポジトリで利用可能な場合は、ディストリビューションにrsyslogをインストールする可能性もありますが、このチュートリアルでは、syslogについても最後に説明します。

これまでのところすべて良いですが、何どこにログインしますか? 簡単、ファイル内«/var/log/firewall/iptables.log"、 何 存在しない、私たち自身がそれを信じるまで..。

1- ファイルを作成する必要があります«iptables.log»フォルダ内«/ var / log /ファイアウォール»それも存在しないので、作成する必要があります。

mkdir -p / var / log /ファイアウォール/
/var/log/firewall/iptables.logにタッチします

2- 権限、非常に重要...

chmod 600 /var/log/firewall/iptables.log
chown root:adm /var/log/firewall/iptables.log

3- rsyslog、Debianログインデーモンは、«から設定を読み取ります/etc/rsyslog.d«、それで私が呼ぶファイルを作成しなければなりません«Firewall.conf»rsyslogが実行したいことを解釈できる場所。

/etc/rsyslog.d/firewall.confにタッチします

そして中に私たちは彼を残します ケア やさしく次の内容:

:msg、contains、 "iptables:"-/ var / log / Firewall / iptables.log
&〜

ちょっとした考えはありませんが、これらの数行は何をしているのですか?

最初の行は、ログに記録されたデータの文字列«をチェックしますiptables: »そしてそれをファイルに追加します«/var/log/firewall/iptables.log«

XNUMXつ目は、前のパターンでログインした情報の処理を停止して、«に送信され続けないようにします。/ var / log / messages"

4- ログファイルを回転させます。 logrotate.

«内で作成する必要があります/etc/logrotate.d/" ファイル "ファイアウォール»次のコンテンツが含まれます。

/var/log/firewall/iptables.log
{
回転7
daily
サイズ10M
日付ext
ミソク
600ルートアドミンを作成
notifempty
圧縮する
遅延圧縮
後回転
invoke-rc.d rsyslog reload> / dev / null
エンドスクリプト
}

ログを削除する前に 7 回ローテーションできるようにするため、1 日 10 回、最大ログ サイズ XNUMXMB、圧縮、日付付き、ログが存在しない場合にエラーを表示せず、root で作成します。

5- すべてのハッピーエンドxDと同様に、rsyslogデーモンを再起動します。

/etc/init.d/rsyslog再始動

すべてが機能していることを証明する方法は?

SSHを試してみましょう。

インストール OpenSSHの (彼らがそれをインストールしていない場合に備えて...):

apt-get installsh-serverをインストールする

続行する前に、コンソールでrootとして実行する必要があります。

iptables -A INPUT -p tcp --dport 22 --syn -j LOG --log-prefix "iptables: " --log-level 4

このiptablesステートメントを実行すると、実行した内容が無駄ではないことを示すのに十分な情報がログに記録されます。 この文では、ポート22を介して到達するすべての情報をログに記録するようにiptablesに指示します。他のサービスでテストするには、MySQLの3306のようにポート番号を変更し、例を挙げます。詳細が必要な場合は、 この非常によく文書化されたチュートリアルを読む 最もよく使用される構成の典型的な例に基づいています。

SSH はデフォルトでポート 22 を使用するため、それを使用してテストします。 openssh がインストールされているので、それに接続します。

ssh pepe @ test-server

ログを確認するには、末尾を使用して問題を解決します。

tail -f /var/log/firewall/iptables.log

この例の iptables は、曜日、時刻、IP、MAC などすべてをログに記録するため、サーバーの監視に最適です。 決して害を及ぼさない小さな助け。

ここで、別のディストリビューションを使用していることに注意してください。最初に述べたように、それは一般的に使用されます。 rsyslog、または同様のもの。 あなたのディストロが使用する場合 syslog、同じ演習を実行するには、少し編集/変更する必要があります syslog.conf

nano /etc/syslog.conf

次の行を追加して保存します。

kern.warning /var/log/firewall/iptables.log

そして、あなたが知っている、ハッピーエンド:

/etc/init.d/sysklogd再始動

結果:同じ。

今のところは以上です。今後の投稿では、iptablesで遊んでいきます。

参考文献:

iptablesに別のファイルへのログ記録を強制する

rsyslogを使用してiptablesを別のファイルに記録します

Fedora / RHELシステムでのIptables構成チュートリアル


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   フェレリーガーディア

    あなたが少しずつやっているBOFHのためのこの「ミニマニュアル」は素晴らしいです

  2.   コラツキ

    ありがとうございます。私は自分の仕事から知っていなければならなかったiptablesの詳細とデータを少しずつ提供します。これは時々必要であり、インターネット上ではほとんど説明されていません。すべてユーザーによって... xD

    1.    KZKG ^我愛羅

      私はこの機会にあなたのメンバーを歓迎します😀
      あなたは本当に貢献することがたくさんあり、ネットワーク、システム、ファイアウォールなどの非常に高度な知識を持っているので、私は(私はすでに)あなたがハハハを持っている多くの読者の一人になります。

      ご挨拶とまあ...あなたが知っている、それが必要なものは何でも😀

    2.    イザール

      それらのアイテムを楽しみにしています^^

  3.   ヒューゴー

    こらつきに来て、あなたがこのブログに頻繁にアクセスしたことを知りませんでした。

    ちなみに、ファイアウォールアクティビティのログ記録の別のバリエーションはパッケージを使用しています ウログド、このタイプのトレースの分離を容易にするためにnetfilterプロジェクトの人々によって作成されています(さまざまな方法でそれらを保存することができます)。 それは私が通常使用するアプローチです。 使用は簡単です。例:

    iptables -A INPUT -p udp -m multiport ! --ports 53,67:68 -m state --state NEW -j ULOG --ulog-prefix "Solicitud UDP dudosa"

  4.   コラツキ

    投稿にF5を指定する必要があります。Ulogdの作業方法が適しています。MySQLでも次のタイプをログに記録します:D。

  5.   MSX

    良い投稿、それを続けてください。

  6.   チノロコ

    こんにちはボス、調子はどう?
    手を貸してくれませんか。
    チュートリアルがなく、水よりも澄んでいるので、どこが間違っているのかわかりません