Dica para quem está colocando seus arquivos na pasta 
/etc/init.d/ e não está conseguindo 
carregar seus scripts na inicialização dos derivados do 
Debian Wheezy.
O segredo está na primeira linha, que tem que começar por 
#! /bin/sh, exemplo:
  
#! /bin/sh
start(){
echo "Firewall iniciando..........[OK]";
echo -e "\nPermitindo roteamento de Pacotes: \n";
echo "1" > /proc/sys/net/ipv4/ip_forward
echo -e "\nRoteamento de Pacotes............ [OK] \n";
echo -e "Limpa as regras\n";
iptables -F
iptables -X
iptables -Z
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -Z
echo -e "Política padrão ACCEPT\n";
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
#coloca suas regras de liberação dos serviços necessários da rede
echo -e "\nLiberando destino Conexoes necessarias \n";
iptables -A FORWARD -i $WAN -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $LAN -o $WAN -j ACCEPT
#iptables -A FORWARD -i $WAN -o $LAN -j ACCEPT
iptables -A FORWARD -j LOG
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
echo -e "\nCompartilhamento da rede ativo………………….[OK]\n";
echo -e "\nConexoes necessarias OK ............ [OK] \n";
echo -e "\nRedirecionando dados para porta do Proxy\n";
iptables -t nat -A PREROUTING -s 192.168.7.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.7.0/24 -p udp --dport 80 -j REDIRECT --to-port 3128
echo -e "\nRedirecionando dados............ [OK] \n";
echo -e "\nBloqueando conexoes de intrusos............ \n";
iptables -A FORWARD -m mac --mac-source 5c:c9:d3:21:b0:2d -j DROP
echo -e "\nBloqueando conexoes de intrusos............ [OK] \n";
echo -e "\nFrewall inicializado.\n";
}
stop(){
echo -e "\nParando firewall\n";
echo -e "limpando as regras\n";
iptables -F
iptables -X
iptables -Z
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -Z
echo -e "setando em DROP/n";
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
echo "Firewall desativado!.............[OK]";
}
case "$1" in
"start") start ;;
"stop") stop ;;
"reload") stop; start ;;
*)
echo "Use parâmetros start|stop|reload";
;;
esac
  
Outras distros usam também:
#!/bin/bash
...seu script
  
Já tava ficando maluco aqui. Resolvi pesquisar na documentação do Debian sobre inicialização de scripts na 
/init.d/, então, encontrei isto:
Debian Policy dictates that /etc/init.d/*.sh scripts must work properly
when sourced.  The following additional rules apply:
* /etc/init.d/*.sh scripts must not rely for their correct functioning
  on their being sourced rather than executed.  That is, they must work
  properly when executed too. They must include "#!/bin/sh" at the top.
  This is useful when running scripts in parallel.
* /etc/init.d/*.sh scripts must conform to the rules for sh scripts as
  spelled out in the Debian policy section entitled "Scripts" (§10.4).
Use the update-rc.d command to create symbolic links in the /etc/rc?.d
as appropriate. See that man page for more details.
  
Talvez muita gente já saiba disto mas eu não sabia, pesquisei e não achei muito sobre o assunto.
Mesmo eu usando o 
rcconf e o 
chkconfig, meus scripts não 
iniciavam junto!
Mais uma coisa: para quem não gosta de colocar seus scripts na pasta do sistema (
/etc/init.d/seu_script.sh) para inicializar automático, no Debian Wheezy, você pode colocar o caminho 
do seu script (exemplo: 
/home/usuario/seu_script.sh) no arquivo 
rcS e não no 
rc.local, como estávamos acostumados nas versões 
anteriores.
	
		
		
		Na verdade, a primeira linha diz ao shell qual o interpretador que será usado para executar o script. Esse linha nunca deve ter espaços.
#!/bin/bash
ou
#!/bin/sh
ou
#!/bin/perl
Também é necessário dar permissão de execução.
# chmod +x script
Após a primeira linha (também chamada de Shebang) é recomendável colocar as seguintes linhas:
### BEGIN INIT INFO
# Provides:         programa 
# Required-Start:   scripts_que_precisam_ser_executados_antes_deste
# Required-Stop:     scripts_que_precisam_ser_parados_antes_deste
# Default-Start:     2 3 4 5 (runlevels em que o script deverá ser usado)
# Default-Stop:      0 1 6 (runlevels em que o script deverá estar parado)
# Short-Description: Uma breve descrição do programa.
### END INIT INFO
Agora, habilite o programa como o comando abaixo:
# chkconfig script on