はじめに
ログはなんだかんだ見たいときってありますよね?
そんな時 for iptablesのメモです。
iptables自体の設定はこちらで書いてます。
→さくらvpsの設定自分メモ - iptables②(パケットフィルタリング)
ながれ
1. iptablesの設定(/etc/sysconfig/iptables)を編集
iptablesにログを出す設定を追記します。
後述もしますが、ポイントとしてREJECT
している行の上あたりに追記します。
# sudo vi /etc/sysconfig/iptables ---- vi追記 ---- # log setting -A RH-Firewall-1-INPUT -d 255.255.255.255 -j DROP -A RH-Firewall-1-INPUT -d 224.0.0.1 -j DROP -A RH-Firewall-1-INPUT -p udp -m multiport --dport 137,138,139,445 -j DROP -A RH-Firewall-1-INPUT -p udp --dport 17500 -j DROP -A RH-Firewall-1-INPUT -m limit --limit 1/s -j LOG --log-prefix "[iptables firewall] : " --log-level=info --------------- ※ 再起動 # sudo /etc/init.d/syslog restart ファイアウォールルールを適用中: [ OK ] チェインポリシーを ACCEPT に設定中filter [ OK ] iptables モジュールを取り外し中 [ OK ] iptables ファイアウォールルールを適用中: [ OK ] iptables モジュールを読み込み中ip_conntrack_netbios_ns [ OK ]
終わりから表示するとここらへん
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT # log setting -A RH-Firewall-1-INPUT -d 255.255.255.255 -j DROP -A RH-Firewall-1-INPUT -d 224.0.0.1 -j DROP -A RH-Firewall-1-INPUT -p udp -m multiport --dport 137,138,139,445 -j DROP -A RH-Firewall-1-INPUT -p udp --dport 17500 -j DROP -A RH-Firewall-1-INPUT -m limit --limit 1/s -j LOG --log-prefix "[iptables firewall] : " --log-level=info -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
参考
こちらをまんま参考(コピペ)にさせていただきました
→iptablesでログ出力設定
2. ログ出力の設定(/etc/syslog.conf)を編集
次にログ出力の設定をします。
参考サイトによっては設定先がsyslog.conf
だったりrsyslog.conf
だったりします。
あたりまえですが今動いてるほうに設定します。
どちらが動いてるか確認
※ syslog動いてるか確認 # sudo /etc/init.d/syslog status syslogd (pid 16049) を実行中... klogd (pid 16052) を実行中... ※ rsyslog動いてるか確認 # sudo /etc/init.d/syslog status rsyslogd は停止しています
設定
ってことで、syslog
が動いてるのでそちらに設定。
自分は一番下に追記しました。
# sudo vi /etc/syslog.conf ----- vi追記 ---- # iptables log kern.info /var/log/iptables ---------------- ※ 再起動 # sudo /etc/init.d/syslog restart カーネルロガーを停止中: [ OK ] システムロガーを停止中: [ OK ] システムロガーを起動中: [ OK ] カーネルロガーを起動中: [ OK ]
補足
/etc/sysconfig/iptables
と/etc/syslog.conf
に
ログレベルの設定をいれたと思うので念のためその辺りは合わせておきましょう。
infoなら両方info、debugなら両方debugとかですね。
-
--log-level=info
sysconfig
kern.info
syslogとrsyslog
本題ではないので割愛ですが気になる場合はこちらを参考に
→syslogdの限界と次世代シスログデーモン
容量が気になる場合はローテートの設定も
ログのローテートの設定自体は本文じゃないので設定内容だけメモ。
iptablesのログを出すってことだけ考えればやらなくても動作に問題はありません。
# sudo vi /etc/logrotate.d/iptables ---- vi追記 ---- /var/log/iptables.log { rotate 3 weekly compress missingok notifempty create 640 root adm } ---------------
3. 確認してみる
ふつうに確認
確認といってもsyslog.configに設定したファイルを開くだけです。
ダメなヤツをログに出す設定をしたので中身はカラかもです
# sudo cat /var/log/iptables
webアクセスで確認
せかっくなのでダメなアクセスをして確認します。
ブラウザのアドレス欄にhttp://[ipアドレスまたはhostname]:9876
とか
適当なポートつきでアクセスしてみるとログが出ます。
# sudo tail -f /var/log/iptables Nov 6 23:16:40 hogehost kernel: [iptables firewall] : IN=eth0 OUT= MAC=00:0c:22:66:bb:11:00:55:56:c0:00:08:08:00 SRC=192.168.239.1 DST=192.168.239.129 LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=16142 DF PROTO=TCP SPT=58343 DPT=9876 WINDOW=65535 RES=0x00 SYN URGP=0
まとめ
アクセスこねーなーってときとかふと見たくなるんですよね!
簡単ではありますが自分のためにもメモってみましたー!