#!/bin/sh

# Copyright (C) 2000-2010 NEC Corporation
# All Rights Reserved.

##000412 1.2  ipchains.confの存在確認の削除とフォワードの設定の変更
##000415 1.3  reflectオプションを追加した
##000426 1.4  ;;の洩れ
##001116 v5.1 ipchains,ip_forward対応(wbmc03-046) haramoto
##040919 v6.0.1 iptables に変更 oyama

# Startup script for IP firewall (ipchains)
#
# chkconfig: 2345 09 91
# description: Activates/Deactivates IP firewall.
#

IPCHCONF="/opt/nec/wbmc/bin/ipchconf"
IP6CHCONF="/opt/nec/wbmc/bin/ip6chconf"

CONFROOT="/etc/opt/nec/wbmc"
CURCONFFILE="$CONFROOT/ipchains_cur.conf"
DEFCONFFILE="$CONFROOT/ipchains_def.conf"

reflect_ipchconf()
{
	/sbin/modprobe ip_tables

	# 設定ファイル(ipchains_cur.conf)に従って設定を行う
	#   このコマンドは最初にipchainsのルールをすべてクリアしている
	if [ -x $IPCHCONF ]; then
		$IPCHCONF
	fi
	if [ -x $IP6CHCONF ]; then
		$IP6CHCONF
	fi

	# カーネルにモジュールをロードする(すでにロードされていても問題ない)
	/sbin/modprobe ip_conntrack
	/sbin/modprobe ip_conntrack_ftp
	/sbin/modprobe ip_conntrack_irc
#	/sbin/modprobe ip_masq_ftp
#	/sbin/modprobe ip_masq_irc
#	/sbin/modprobe ip_masq_quake
#	/sbin/modprobe ip_masq_vdolive
#	/sbin/modprobe ip_masq_cuseeme
#	/sbin/modprobe ip_masq_raudio

	# (注)フォワードの設定はipchconfで行われる

	# 起動中であることの証
	touch /var/lock/subsys/wbmcipchains
}

case "$1" in
  start)
	if [ -f $DEFCONFFILE ]; then
		/bin/cp -f $DEFCONFFILE $CURCONFFILE
	else
		/bin/rm -f $CURCONFFILE
	fi

	reflect_ipchconf
	;;
  reflect)
	reflect_ipchconf
	;;
  stop)
	# フォワードを有効または無効にする
##001116 delete start ----------
#	if [ -f /etc/sysconfig/network ]; then
#		. /etc/sysconfig/network
#		if [ "$FORWARD_IPV4" = "no" -o "$FORWARD_IPV4" = "false" ]; then
#			echo "0" > /proc/sys/net/ipv4/ip_forward
#		else
#			echo "1" > /proc/sys/net/ipv4/ip_forward
#		fi
#	fi
##001116 delete end ----------

	# すべての基本チェインのルールを削除する
	/sbin/iptables -F	# ルールを削除して、
	/sbin/iptables -X	# ユーザ定義チェインを削除する。

	# 基本チェインのポリシーを許可にする
	/sbin/iptables -P FORWARD ACCEPT
	/sbin/iptables -P INPUT ACCEPT
	/sbin/iptables -P OUTPUT ACCEPT

	# すべての基本チェインのルールを削除する
	/sbin/ip6tables -F	# ルールを削除して、
	/sbin/ip6tables -X	# ユーザ定義チェインを削除する。

	# 基本チェインのポリシーを許可にする
	/sbin/ip6tables -P FORWARD ACCEPT
	/sbin/ip6tables -P INPUT ACCEPT
	/sbin/ip6tables -P OUTPUT ACCEPT

	# 停止中であることの証
	rm -f /var/lock/subsys/wbmcipchains
	;;
  restart)
	$0 stop
	$0 start
	;;
  *)
	echo "Usage: $0 {start|stop|restart|reflect}"
	exit 1
esac

exit 0
