Autor Tópico: Iptables não inicia no boot  (Lida 3027 vezes)

Offline Wótila Carneiro

  • Usuário Ubuntu
  • *
  • Mensagens: 13
    • Ver perfil
Iptables não inicia no boot
« Online: 04 de Novembro de 2010, 23:15 »
Prezados, boa noite.
Queria colocar o iptables para iniciar no boot.
Uso o Ubuntu 10.04 TLS Desktop e sou iniciante.
Segui os seguintes passos, mas não consegui.
Primeiro criei o arquivo "firewall"
#iptables-save > /etc/init.d/firewall
Depois transformei esse arquivo em um executável:
# chmod +x /etc/init.d/firewall
Coloquei um chamado no arquivo rc.local
#nano /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/etc/init.d/firewall start

exit 0

Depois editei meu script firewall (com poucas regras, pois é apenas um teste)

# nano /etc/init.d/firewall

#!/bin/bash

# COMPARTLHAR A CONEXÃO
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Aceita tudo na interface de rede local verifica tanto a interface quanto a faixa de endereços de origem:
iptables -A INPUT -p tcp --syn -s 192.168.1.0/24 -i eth0 -j ACCEPT

# FECHA O RESTO DA REDE
iptables -A INPUT -p tcp --syn -j DROP

exit 0

Creio que os passos estão corretos, mas mesmo assim as regras não rodam após o boot.
Há algo de errado?
Grato desde já!

Ubuntu 10.04

Offline jeflui

  • Usuário Ubuntu
  • *
  • Mensagens: 745
    • Ver perfil
Re: Iptables não inicia no boot
« Resposta #1 Online: 05 de Novembro de 2010, 00:47 »
Tenta o seguinte, no terminal:
Código: [Selecionar]
sudo update-rc.d firewall defaultsObs. Deixe o firewall no /etc/init.d como está.

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Iptables não inicia no boot
« Resposta #2 Online: 05 de Novembro de 2010, 01:16 »
Citar
Há algo de errado?
Provavelmente ele não está encontrando o executável "iptables" na hora em que executa. Tente adicionar estas linhas no início do script:

PATH=/bin:/usr/bin:/sbin:/usr/sbin
export PATH


Outra coisa, não adianta fazer "script start", se seu script não sabe interpretar o "start" (assim como não adianta fazer interpretar um "start", se não fizer interpretar também um "stop"). Quer aprender como? Use o esqueleto abaixo pro seu script.

Código: [Selecionar]
#!/bin/bash

PATH=/bin:/usr/bin:/sbin:/usr/sbin

function start()
{
# coloque aqui o seu código pra "start"
}

function stop()
{
# coloque aqui seu código pra "stop"
}

case $1 of
"start")
    start
    ;;
"stop")
    stop
    ;;
"restart")
    stop
    start
    ;;
*)
    echo "Use: $0 {start|stop|restart}"
    exit -1
esac
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline Wótila Carneiro

  • Usuário Ubuntu
  • *
  • Mensagens: 13
    • Ver perfil
Re: Iptables não inicia no boot
« Resposta #3 Online: 05 de Novembro de 2010, 09:08 »
Há diferenças em relação à scrip/inicialização entre Desktops e Servers?
Digo isso porque eu fiz dessa maneira que citei acima em um Desktop e em um Server e no Server funcionou.
Ubuntu 10.04

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Iptables não inicia no boot
« Resposta #4 Online: 05 de Novembro de 2010, 10:52 »
Tem sempre algumas diferençazinhas entre a instalação de um e de outro, resquícios do momento em que houve a "separação" das duas versões.

Aliás, provavelmente tem como fazer isso usando apenas serviços pre-existentes, sem ter que criar scripts. Talvez com o "ufw".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D