[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: IPTABLES!!! (longo)



On Fri, Jun 11, 2004 at 07:13:54PM -0300, Jonatan wrote:
> Olá !!
> 
>     Alguém saberia me dizer onde eu posso achar os arquivos que carregam as regras no iptables quando a firewall é reiniciado ???    
> 

o iptables não salva as regras automaticamente; você deve utilizar o
iptables-save e o iptables-restore para salvar e restaurar,
respectivamente, as regras do seu firewall.

para que isto seja feito automaticamente, você pode criar um script, a
partir do /etc/init.d/skeleton e colocar estes comandos lá,
redirecionando a saida para um arquivo.

com este script pronto e testado, você utiliza o update-rc.d para
colocar os links simbólicos nos runlevels apropriados para o seu
firewall.

abaixo um script que utilizo para um firewall simples que implementei;
as regras foram definidas na linha de comando e depois de ajustadas, o
script mantém as coisas funcionando; para isto, utilizei o update-rc.d
com a opção default:

# update-rc.d SEU_SCRIPT_AQUI defaults


--------------------------- corte aqui ---------------------
#! /bin/sh
#
# regras_fw     Script utilizado para restaurar as regras do firewall
#               da I.B.Perdizes. 
#
#		Written by Mario O de Menezes <mario@curiango.ipen.br>.
#		Modified for Debian GNU/Linux
#
#		by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version:	@(#)regras_fw 1.0  21-Dec-1999  mario@curiango.ipen.br
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/sbin/iptables
RESTAURAR=/sbin/iptables-restore
SALVAR=/sbin/iptables-save
NAME=regras_fw
REGRAS=/etc/network/regras-firewall
DESC="Regras do Firewall"

test -f $DAEMON || exit 0

set -e

salva_regras () {
# funcao para salvar as regras do firewall
      echo "Salvando regras do firewall; sobrescrevendo $REGRAS..."
      $SALVAR > $REGRAS
      echo "Regras salvas em $REGRAS..."
}

inicia_firewall () {
# funcao para iniciar as regras do firewall
     echo -n "Iniciando $DESC: "
     $DAEMON --flush
     echo "Limpando todas as regras anteriores ..."
     $DAEMON --table nat --flush
     $DAEMON --delete-chain
     $DAEMON --table nat --delete-chain
     echo "Habilitando forward para Masquerade ..."
     echo 1 > /proc/sys/net/ipv4/ip_forward
     echo "Carregando modulos iptables..."
     modprobe ip_tables
     modprobe ip_conntrack
     modprobe iptable_nat
     echo "Restaurando regras de $REGRAS ..."
     $RESTAURAR < $REGRAS
     echo "$NAME."
}

para_firewall () {
# funcao para parar as regras do firewall
     echo -n "Removendo $DESC ..."
     $DAEMON --flush
     echo "Limpando todas as regras anteriores ..."
     $DAEMON --table nat --flush
     $DAEMON --delete-chain
     $DAEMON --table nat --delete-chain
     echo "Desabilitando forward para Masquerade ..."
     echo 0 > /proc/sys/net/ipv4/ip_forward
     echo "Liberando acesso interface lo..."
     $DAEMON -A INPUT -i lo -p all -j ACCEPT
     $DAEMON -A OUTPUT -o lo -p all -j ACCEPT
     echo "Politica Default: ACCEPT..."
     $DAEMON -P INPUT ACCEPT
     $DAEMON -P OUTPUT ACCEPT
     $DAEMON -P FORWARD ACCEPT
     echo "$NAME."

}

case "$1" in
  start)
        inicia_firewall # chama funcao para iniciar o firewall
        ;;
  stop)
        para_firewall   # chama funcao para parar o firewall
        ;;
   salvar)
        salva_regras     # salva regras do firewall
        ;;
  restart|force-reload)
        #
        #       If the "reload" option is implemented, move the "force-reload"
        #       option to the "reload" entry above. If not, "force-reload" is
        #       just the same as "restart".
        #
        para_firewall
        sleep 5
        inicia_firewall
        ;;
  *)
        N=/etc/init.d/$NAME
        # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $N {start|stop|salvar|restart|force-reload}" >&2
        exit 1
        ;;
esac


exit 0

------------------------corte aqui-------------------------

existem scripts prontos e complexos que fazem tudo isto; um 

# apt-cache search iptables

trará muitos resultados interessantes também.

abraço


-- 
Mario O.de Menezes, Ph.D.     "Many are the plans in a man's heart, but
LinuxUser: #24626         is the Lord's purpose that prevails" Pv 19.21
                        http://www.ipen.br/~mario      



Reply to: