今まで「ファイアーウォール」について触れていなかったので(難しいし。。)、ここでちょっとだけ書いておこうと思う。
前回の「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 |