iptables-restore でバッファーオーバーフローが発生する

SERVER


iptables の設定復元時に buffer overflow が発生する

CentOS 6.0 で /etc/sysconfig/iptables や /etc/sysconfig/ip6tables の設定を編集して、service iptables restart 等を実行したときに、次のようなエラーが発生して、処理が中断されてしまうことがありました。

iptables: ファイアウォールルールを適用中: *** buffer overflow detected ***: iptables-restore terminated

/etc/init.d/iptables: line 179: 3651 アボートしました$IPTABLES-restore $OPT $IPTABLES_DATA

これは /etc/sysconfig/iptables や /etc/sysconfig/ip6tables の中で独自のチェインを定義していて、そのチェインの名前が 28 文字よりも多い文字数で構成されていたことが原因でした。

チェインの名前は 28 文字以内に抑えておかないと、それを -j でジャンプした時にオーバーフローが発生してしまう様子です。