iptablesを使ってファイアーウォール(Debian)

今まで「ファイアーウォール」について触れていなかったので(難しいし。。)、ここでちょっとだけ書いておこうと思う。
前回の「Apacheログをコマンドベースで詳細確認してみる(Debian)」調査で出た不審な行動をするIPアドレスの「アクセス拒否リスト」についての対応を行う。
iptables(カーネルのIP通信レベル)でも制御してみようと思う。
全て公開することはできないけど、使い方とか一部をメモとして残しておこうと思います。

設定の確認

iptables -L

iptableの初期化(指定)

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

iptableの初期化(全部)

iptables -F

拒否IPアドレスからのアクセスはログを記録せずに破棄

iptables -I INPUT -s xxx.xxx.xxx -j DROP

※「iptables -I」:ルールをインサート(上に設定を追加する=ルール適用の優先度高※1)
「iptables -A」:ルールをAdd(下に設定を追加する=ルール適用の優先度低)

※1
「iptables -I INSERT 2 ルール」とすると、2番目に挿入することになる
例)iptables -I INPUT 2 -s xxx.xxx.xxx -j DROP

ルールの削除(アクセスを許可)
iptables -D INPUT 1
※1=iptables -L の一覧で表示された順番を指定(1番目のルールを削除)
「iptables -L –line-numbers」でみると先頭に番号が表示される

———————————————————————–
iptablesのフィルタリングルールはシステムの再起動で消えるので設定はシェルにして
/etc/network/if-pre-up.d/の配下に格納する。
僕の場合は、「/etc/network/if-pre-up.d/iptables」に各シェルをキックするシェルを置いて
iptablesの設定はそれぞれのシェルから行うようにしている。
———————————————————————–

/etc/network/if-pre-up.d/iptables

#!/bin/sh
/hoge/hoge2/iptables-setup1.sh
/hoge/hoge2/iptables-setup2.sh
/hoge/hoge2/iptables-setup3.sh

———————————————————————–

/hoge/hoge2/iptables-setup3.sh

#!/bin/sh
#--------------------------------------------------------------------
#iptables-setup3
# ファイアウォール初期設定スクリプト
# アクセス拒否IPアドレスの登録を行う
#----------------------------------------
# 初期設定
#----------------------------------------
#アクセス拒否IP累積リスト
denyIpFile=/var/log/apache2/denyIP
#----------------------------------------
#累積リストと今回のリストを比較して新規をiptablesに登録
for inIp in `$denyIpFile`;
do
iptables -I INPUT -s $inIp -j DROP
done

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です