iptables:REJECTのログ
iptablesでREJECTした通信のログを書き出す(Scientific Linux) 利用しているさくらVPSのプランがリニューアルしました。以前はVPS 512を契約していましたが、今回同じ料金でVPS 1Gが利用できるのでそちらに乗り換える事に。 契約してすぐにカスタムインストールでOSをScientific Linuxに変更。後は以前VPSで設定した事を一通り行いました。 以前設定した時の記事 http://taka16o.blogspot.jp/2011/03/vps_27.html 以前はiptablesでブロックされた通信のログを出力していなかったので今回は出力するように設定。Scientific Linux 6.2で設定しています。 /etc/sysconfig/iptable に以下を記述 -A INPUT -j LOG --log-level debug --log-prefix "[iptables] " /etc/rsyslog.conf に以下を記述 *kern.debug /var/log/iptables ログ出力用のファイルを /var/log/ 以下に作成。 # touch iptables これでログが出力されるはずと思ったらまったく出力しないのでしばらくあちこち設定を弄りつつ原因探ししていたらなんとログを出力する設定をREJECTする設定の後に記述してしまっていることに気がつきました。 これではログが出力されないので -A INPUT -j LOG --log-level debug --log-prefix "[iptables] " -A INPUT -j REJECT --reject-with icmp-host-prohibited 上記のようにREJECTの設定の前に書き直すことで解決しました。 初歩的なことでつまって大分時間食ってしまいましたが解決したのでよかった。
via. http://taka16o.blogspot.jp/2012/04/iptablesrejectscientific-linux.html
rsyslogの再起動忘れずに。
ログの読み方について
三番目 SRC=192.168.201.1 DST=172.16.101.30 LEN=118 TOS=0×00 PREC=0×00 TTL=254 ID=3120 DF PROTO=TCP IPレイヤ(L3)。 IPについては詳しくはRFC791を参照されたし。 SRC : ソースIPアドレス DST : デスティネーションIPアドレス LEN : IPパケット長 TOS : IPヘッダ TOSフィールドの値 PREC : IPヘッダ TOSフィールド内、PRECEDENCEの値 TTL : IPヘッダ TTLの値 ID : IPヘッダ IDの値 DF : IPヘッダ Flag の DFビット(Don’t Fragment)が立っている場合 PROTO : プロトコル(TCP,UDPなど) 該当ソースは下記のようになっております。(後半、省略してます)
四番目 SPT=3300 DPT=80 WINDOW=1460 RES=0×00 ACK PSH URGP=0 TCPレイヤ(L4)。 TCPについては詳しくはRFC793を参照されたし。 SPT : ソースポート番号 DPT : デスティネーションポート番号 WINDOW : TCP Window RES : Reservedの値 ACK , PSH , RST , SYN . FIN : Control Bitsのそれぞれに対応 URGP : Urgent Pointerの値