inicialização de uma regra iptables

Iniciado por marcelo.oliveira, 04 de Novembro de 2006, 00:40

tópico anterior - próximo tópico

marcelo.oliveira

A versão do ubuntu que uso é a 6.06 e gostaria de fazer com que a regra iptables a seguir (script) , fosse carregado na inicialização do ubuntu:

#!/bin/bash
#---------------------------------------------------------------------

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT

# Porta 6801 : Bittorrent
iptables -A INPUT -p tcp --destination-port 6801 -j ACCEPT
iptables -A OUTPUT -p udp --destination-port 6801 -j ACCEPT

# Porta 4662 : aMule (e correlatos) - INPUT tcp
# Porta 4665 : aMule (e correlatos) - OUTPUT udp
# Porta 4672 : aMule (e correlatos) - Porta Auxiliar
iptables -A INPUT -p tcp --destination-port 4662 -j ACCEPT
iptables -A OUTPUT -p udp --destination-port 4665 -j ACCEPT
iptables -A OUTPUT -p udp --destination-port 4672 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 4672 -j ACCEPT

iptables -A INPUT -j DROP

Como fazer isso (carregamento do script na inicialização do ubuntu) ?

Desde já agradeço
Marcelo
Marcelo Oliveira

uplink

no kde lembro que havia uma pasta que tudo que tivesse nela,era executado na inicialização. mas era na inicialização do kde e não do linux.
do gnome eu ja não sei

uma pergunta: pensei que o iptables fosse precisso gravar uma vez,que carregava ele sempre. pelomenos era assim quando eu usava o editor de iptables (guarddog),tem certeza que precissa executar esse comando sempre?
T+
Cai fora do Forum...

Entenda o Porque !

marcelo.oliveira

Uplink

Se você usar um firewall gráfico , tipo firestarter ou guarddog , ele automaticamente salva suas regras iptables. Agora , estou fazendo "naunha" , criei um script com minhas regras e gostaria que essas regras fossem carregadas ao se iniciar o Ubuntu.

Obrigado.
Marcelo Oliveira

arlei

marcelo.oliveira ,

existem algumas formas de se fazer isso, mais ao meu ver a mais simples é vc inserir suas regras no arquivo /etc/rc.local ou mesmo criar um arquivo separado, dar permissões de execução ao mesmo e então chama-lo no rc.local.

T+
Arlei

dudu_ubuntun

marcelo.oliveira eu também trabalhando em algo semelhante, estou fazendo um front-end gráfico usando o Xdialog, mas ainda estou estudando as regras do iptables, seria pedir mto para vc colocar  ao lado da regra o que ela faz?

sobre tua pergunta:

copie o script para a pasta /etc/init.d:  sudo cp scritp-firewall   /etc/init.d/script-firewall
torne-o executável:                               sudo   chmod +x /etc/init.d/script-firewall
crie um link simbólico para o rc:             sudo  ln -sf /etc/init.d/script-firewall /etc/rc2.d/S98script-firewall

espero ter ajudado e boa sorte!

marcelo.oliveira

Citação de: arlei online 04 de Novembro de 2006, 10:29
marcelo.oliveira ,

existem algumas formas de se fazer isso, mais ao meu ver a mais simples é vc inserir suas regras no arquivo /etc/rc.local ou mesmo criar um arquivo separado, dar permissões de execução ao mesmo e então chama-lo no rc.local.

T+
Arlei


Arlei
Meu arquivo rc.local está da forma a seguir:

#!/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.

exit 0


Aonde copiar a regra ?
Marcelo Oliveira

marcelo.oliveira

Citação de: dudu_ubuntun online 04 de Novembro de 2006, 10:30
marcelo.oliveira eu também trabalhando em algo semelhante, estou fazendo um front-end gráfico usando o Xdialog, mas ainda estou estudando as regras do iptables, seria pedir mto para vc colocar  ao lado da regra o que ela faz?

sobre tua pergunta:

copie o script para a pasta /etc/init.d:  sudo cp scritp-firewall   /etc/init.d/script-firewall
torne-o executável:                               sudo   chmod +x /etc/init.d/script-firewall
crie um link simbólico para o rc:             sudo  ln -sf /etc/init.d/script-firewall /etc/rc2.d/S98script-firewall

espero ter ajudado e boa sorte!

Caro

Já fiz esse procedimento e meu PC travou , tive que instalar novamente. Tenho receio de tentar novamente.
Marcelo Oliveira

dudu_ubuntun

Bom, aqui funcionou certinho, o nome do meu script é firewall:

eduardo@eduardo:/etc/init.d$ ls -la | grep firewall
-rws--x--x   1 root root  2172 2006-11-04 11:52 firewall
eduardo@eduardo:/etc/init.d$

eduardo@eduardo:/etc/rc2.d$ ls -la | grep S98firewall
lrwxrwxrwx   1 root root   20 2006-11-04 11:43 S98firewall -> /etc/init.d/firewall
eduardo@eduardo:/etc/rc2.d$

nos testes iniciais estou bloqueando o acesso ao orkut:

eduardo@eduardo:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             72.14.209.87
DROP       all  --  anywhere             72.14.209.85
DROP       all  --  anywhere             72.14.209.86
eduardo@eduardo:~$

só para constar: uso ubuntu 6.06 e meu pc é um desktop, não um servidor e o acesso a internet é via virtua, nao tenho rede local, ou seja, um computador usado em casa.

marcelo.oliveira

Citação de: dudu_ubuntun online 04 de Novembro de 2006, 11:03
Bom, aqui funcionou certinho, o nome do meu script é firewall:

eduardo@eduardo:/etc/init.d$ ls -la | grep firewall
-rws--x--x   1 root root  2172 2006-11-04 11:52 firewall
eduardo@eduardo:/etc/init.d$

eduardo@eduardo:/etc/rc2.d$ ls -la | grep S98firewall
lrwxrwxrwx   1 root root   20 2006-11-04 11:43 S98firewall -> /etc/init.d/firewall
eduardo@eduardo:/etc/rc2.d$

nos testes iniciais estou bloqueando o acesso ao orkut:

eduardo@eduardo:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             72.14.209.87
DROP       all  --  anywhere             72.14.209.85
DROP       all  --  anywhere             72.14.209.86
eduardo@eduardo:~$

só para constar: uso ubuntu 6.06 e meu pc é um desktop, não um servidor e o acesso a internet é via virtua, nao tenho rede local, ou seja, um computador usado em casa.


Cara, como mencionei , fiz isso é meu PC travou. Existe alguma forma no Linux tipo restauração do sistema , como no Windows ?
Marcelo Oliveira

dudu_ubuntun

Pois é marcelo.oliveira como disse ainda estou desenvolvendo esse meu front-end. Não conheço nenhum método de ponto de restauração como no windows, esse método de inicialização é usado inclusive nesse tópico sobre softmodens http://ubuntuforum-pt.org/index.php?topic=4204.0 (só ilustração! não tem relação como esse tópico)

Acho que infelizmente não posso mais te ajudar, boa sorte

arlei

#10
Citação de: marcelo.oliveira online 04 de Novembro de 2006, 10:37
Citação de: arlei online 04 de Novembro de 2006, 10:29
marcelo.oliveira ,

existem algumas formas de se fazer isso, mais ao meu ver a mais simples é vc inserir suas regras no arquivo /etc/rc.local ou mesmo criar um arquivo separado, dar permissões de execução ao mesmo e então chama-lo no rc.local.

T+
Arlei


Arlei
Meu arquivo rc.local está da forma a seguir:

#!/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.

exit 0


Aonde copiar a regra ?


Basta vc colocar as suas regras do iptables ou a chamada ao seu arquivo de script que irá conter as regras antes da linha exit 0.

Citação de: marcelo.oliveira online 04 de Novembro de 2006, 11:07
Cara, como mencionei , fiz isso é meu PC travou. Existe alguma forma no Linux tipo restauração do sistema , como no Windows ?

Inicializa sua maquina em modo de recuperação (recovery mode no menu do Grub) e edite ou delete os arquivos necessários. Vc pode fazer isso tbem inicializando por um LiveCD qquer e montar a partição onde teu o Ubuntu instalado para então fazer as edições necessárias.

T+
Arlei

marcelo.oliveira

Caro Arlei

Meu arquivo rc.local ficaria assim :

#!/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.

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT

# Porta 6801 : Bittorrent
iptables -A INPUT -p tcp --destination-port 6801 -j ACCEPT
iptables -A OUTPUT -p udp --destination-port 6801 -j ACCEPT

# Porta 4662 : aMule (e correlatos) - INPUT tcp
# Porta 4665 : aMule (e correlatos) - OUTPUT udp
# Porta 4672 : aMule (e correlatos) - Porta Auxiliar
iptables -A INPUT -p tcp --destination-port 4662 -j ACCEPT
iptables -A OUTPUT -p udp --destination-port 4665 -j ACCEPT
iptables -A OUTPUT -p udp --destination-port 4672 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 4672 -j ACCEPT

iptables -A INPUT -j DROP

exit 0


Desde já agradeço.
Marcelo
Marcelo Oliveira

arlei

Sim Marcelo,

a meu ver isso deverá funcionar, mais vc terá que testar para ver o resultado. Vc tbem pode colocar suas regras em um aquivo com permissão de execução no diretório /usr/bin por exemplo e chamar o mesmo no seu rc.local.

T+
Arlei


marcelo.oliveira

Arlei

Vou tentar. Agora em resposta anterior você disse:

"... Vc pode fazer isso tbem inicializando por um LiveCD qquer e montar a partição onde teu o Ubuntu instalado para então fazer as edições necessárias."

Como sou novo no Linux , como posso montar a partição do Linux ?
Desculpe o incomodo.
Marcelo
Marcelo Oliveira

arlei

Citação de: marcelo.oliveira online 08 de Novembro de 2006, 16:33
"... Vc pode fazer isso tbem inicializando por um LiveCD qquer e montar a partição onde teu o Ubuntu instalado para então fazer as edições necessárias."

Marcelo,

para montar partições no Linux se usa o comando mount, e para desmontar o umount. Mais o melhor é vc ler informações a respeito do assunto, porque alguem simplesmente lhe passar um comando e vc seguir o mesmo e funcionar, não ira lhe ajudar muito no sentido de entender o que realmente o comando fez e o porque fez.
Portanto, aconselho vc a dar uma lida no link abaixo, que fala sobre esse assunto. Mais esse guia, que é o chamado FocaLinux é muito bom e bastante explicativo (eu mesmo sempre que necessito recorro a ele para esclarecer alguma dúvida) e uma leitura bastante aconselhavel para ampliar seu conhecimento sobre esse poderoso SO.

http://www.guiafoca.org/guia/intermediario/ch-disc.htm#s-disc-pontomontagem

T+
Arlei