iptables не стартует автоматом

Делаю все стандартно
Система
#uname -a
Linux localhost 3.2.11-hardened #2 SMP Tue May 8 19:41:23 i686 Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz GenuineIntel GNU/Linux
создал скрипт запуска iptables обозвал rc.fw
сделал его запускающимся при загрузке
#rc-update add rc.fw default

Таблицы сохранял
#/etc/init.d/rc.fw save

Сохраняются стандартно в /var/lib/iptables/rules-save

После перезагрузки - пустые таблицы
Из командной строки скрипт стартует - все нормально.

Почему не стартует автоматом - непонятно...

/etc/init.d/rc.fw в

/etc/init.d/rc.fw в студию
Чем стандартный не устраивает?

тело

тело скрипта
rc.fw

#!/bin/sh



   #
   # IPTables Configuration.
   #

   IPTABLES="/sbin/iptables  "

   # Internet interface Configuration, t.e device config - aka netcard
   #

  
   #
   # WAN config
   #
 
   WAN_IP="192.168.1.163"
   WAN_IP_RANGE="192.168.1.0/24"
   INET_IFACE="eth1"


#
   # Local Area Network configuration.
   #
   LAN_IP="192.168.0.1"
   LAN_IP_RANGE="192.168.0.0/24"
   LAN_IFACE="eth0"

#
   # Localhost Configuration.
   #

   LO_IFACE="lo"
   LO_IP="127.0.0.1"




start_fw()
{
    # Включить перенаправление пакетов через ядро.
    echo 1 > /proc/sys/net/ipv4/ip_forward
   

# Сбросить правила и удалить цепочки.
    $IPTABLES -F
    $IPTABLES -X
    $IPTABLES -F -t nat
    $IPTABLES -X -t nat
    $IPTABLES -F -t mangle
    $IPTABLES -X -t mangle

    # Политики по умолчанию.
    $IPTABLES -P INPUT DROP
    $IPTABLES -P FORWARD DROP
    $IPTABLES -P OUTPUT DROP

#
   # Create chain for bad tcp packets
   #

   $IPTABLES -N bad_tcp_packets

 $IPTABLES -N bad_tcp_packets

   #
   # Create separate chains for ICMP, TCP and UDP to traverse
   #

   $IPTABLES -N allowed
   $IPTABLES -N tcp_packets
   $IPTABLES -N udp_packets
   $IPTABLES -N icmp_packets

#
   # bad_tcp_packets chain
   #

   $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
   $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
   $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP

   #
   # allowed chain
   #
  $IPTABLES -A allowed -p TCP --syn -j ACCEPT
   $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
   $IPTABLES -A allowed -p TCP -j DROP

   #
   # TCP rules
   #

   $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
   # пока не вырубаем ssh
   $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
   $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 25 -j allowed
   $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
   $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 110 -j allowed
   # проверить этот порт
   $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
   $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 143  -j allowed
   $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 443 -j allowed
   $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 993 -j allowed
   $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 995 -j allowed



   #
   # UDP ports
   #

   $IPTABLES -A udp_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT
   
   $IPTABLES -A udp_packets -p UDP -s 0/0 --source-port 123 -j ACCEPT
   $IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 --destination-port 67:68 -j DROP

   #
   # ICMP rules
   #
    # ICMP - перенаправление
 # ICMP - сообщение указывает системе изменить содержимое таблиц маршрутизации с тем, что бы нап$
    # пакеты по более короткому маршруту. Может быть использовано взломщиком для перенаправления ва$
    $IPTABLES -A icmp_packets --fragment -p ICMP -j DROP

    #$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT
   $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
   $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
# Разрешаем  ICMP соединение. Значительная часть ICMP используется для передачи сообщений о
    # том, что происходит с тем или иным UDP или TCP соединением.
    $IPTABLES -A icmp_packets -p icmp  --icmp-type source-quench -j ACCEPT



   #INPUT chain
   #

   #
   # Bad TCP packets we don't want.
   #

   $IPTABLES -A INPUT -p tcp -j bad_tcp_packets
  #
   # Rules for special networks not part of the Internet
   #

   $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
   $IPTABLES -A INPUT -p ALL -i $LO_IFACE -j ACCEPT

   

   #
   # Rules for incoming packets from the internet.
   #

   $IPTABLES -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
   $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
   $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
   $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets

   #
   # If you have a Microsoft Network on the outside of your firewall, you may
   # also get flooded by Multicasts. We drop them so we do not get flooded by
   # logs

   #

   $IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP

   

   #
   # FORWARD chain
   #
#
   # Bad TCP packets we don't want
   #

   $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets

   #
   # Accept the packets we actually want to forward
   #

   $IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
   $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

   


   # OUTPUT chain
 #
   # Bad TCP packets we don't want.
   #

   $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets

   #
   # Special OUTPUT rules to decide which IP's to allow.
   #

   $IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
   $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
   $IPTABLES -A OUTPUT -p ALL -o $INET_IFACE -j ACCEPT

   
      
######
   # nat table
   #

$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE

}

case "$1" in
start)	echo -n "Starting firewall: iptables"
	start_fw
        echo "." 
	;;
stop)	echo -n "Stopping firewall: iptables"
	iptables -F
	iptables -X
        echo "."
        ;;
save)	echo -n "Saving firewall: iptables"
	iptables-save > /etc/rules-save
	echo "."
	;;    
restart) echo -n "Restarting firewall: iptables"
	iptables -F
	iptables -X
	cat /etc/rules-save | iptables-restore
        echo "."
        ;;
reload|force-reload) echo -n "Reloading configuration files for firewall: iptables"
        echo "."
        ;;
*)	echo "Usage: /etc/init.d/rc.fw start|stop|restart|reload|force-reload"
        exit 1 
        ;;
esac
exit 0

Не знаю на сколько это

Не знаю на сколько это критично, но инит скрипты выполняются с помощью #!/sbin/runscript
Вопрос, чем же вас стандартный скрипт не устраивает остается: ваш умеет меньше стандартного, да еще и не работает. Может не стоит возиться с велосипедом?

> создал скрипт запуска

> создал скрипт запуска iptables обозвал rc.fw

Так есть же

/etc/init.d/iptables     
Usage: iptables [options] stop | start | restart | describe | zap

Options: [dDsvl:ZChqVv]
  -d, --debug                       set xtrace when running the script
  -Z, --dry-run                     show what would be done
  -s, --ifstarted                   only run commands when started
  -D, --nodeps                      ignore dependencies
  -l, --lockfd <arg>                fd of the exclusive lock from rc
  -h, --help                        Display this help output
  -C, --nocolor                     Disable color output
  -V, --version                     Display software version
  -v, --verbose                     Run verbosely
  -q, --quiet                       Run quietly

Не исполользуй свой инит,

Не исполользуй свой инит, используй системный. Для сохранения правил в удобочитаемом виде сохрани где-нибудь .sh-файл и запускай при изменении.

Не грусти, товарищ! Всё хорошо, beautiful good!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".