Script Iptables

1. Script Iptables

Felipe
lipecys

(usa Debian)

Enviado em 04/04/2008 - 08:41h

Olá pessoal, antes de mais nada gostaria de dizer que antes de fazer a pergunta, já tentei procurar no VOL artigos sobre isso, encontrei, mas não consegui implementar. (Nunca fiz um script).

Como eu faço um script para rodar regras do Iptables automaticamente no inicialização do meu Debian 4.0?
Gostaria de saber como deve ser o conteúdo do arquivo.sh e também onde coloco este arquivo.

A princípio seriam as regras:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

Desde já o meu muito obrigado.



  


2. coloca no runlevel...

Fernandino Mesquita e Silva
FireBird

(usa Debian)

Enviado em 04/04/2008 - 08:57h

ja viu q no debian tem /etc/rc0.d/, rc1.d, esses treta?

isso sao os runlevels... tipo

cria um script.sh

dentro dele, poe o que vc quer por ai e da um update-rc.d script.sh que ele vai add a todos os runlevels e , assim, dar inicio em cada boot em todos os mesmos, vlw?


3. Re: Script Iptables

Felipe
lipecys

(usa Debian)

Enviado em 04/04/2008 - 09:09h

Então é só eu criar um arquivo .sh, com o seguinte conteúdo por exemplo:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

rodar o comando update-rc.d script.sh que toda vez que a máquina for reiniciada estes comandos estarão lá?

Obrigado pela atenção.


4. Permissoes

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 04/04/2008 - 09:43h

Só não esquece de dar um chmod a+x no teu script!

Outra coisa é cuidar a ORDEM de entrada do script.
O initd usa uma o nome para definir a ordem, por isto que vais encontrar coisas como S91apache2 no rc2.d por exemplo.

Como é script de firewall, convém colocar após TUDO, logo tenta por S99script



5. Ainda...

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 04/04/2008 - 09:49h

Não sei o que pretendes, mas as tuas regras de firewall são fracas. Claro, se tu sabe disso e é assim que tu quer, tudo bem. Mas:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

Acima tu estás mascarando tudo e qualquer coisa, desde que SAIA pela interface ethx. Estarás mascarando até mesmo ips que não são de tua rede interna o que pode vir a ser um risco. Além de mascarar qualquer coisa que entrar por qualquer interface, sejam quantas forem (um pocote pode até mesmo entrar pela mesma ethx e ser roteado por ela MASCARADO!).

Eu sugiro que feche mais o cerco, ou colocando coisas no FORWARD, o que será roteado, ou limitando o NAT:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -i ethREDEINTERNA -s RedeInterna/Mascara -o ethx -j MASQUERADE

[]'s


6. Re: Script Iptables

Felipe
lipecys

(usa Debian)

Enviado em 04/04/2008 - 09:56h

Estava lendo seus artigos sobre Iptables agora Elgios :D

Olha, crie um arquivo iptables.sh com o seguinte conteúdo:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

executei um chmod a+x iptables.sh.
Aí fui tentar executar o update-rc.d que me retornou a seguinte mensagem:
usage: update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> defaults [NN | sNN kNN]
update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .
-n: not really
-f: force

Ontem quando tentava fazer este script li uma resposta sua que dizia para criar um arquivo no /etc/init.d/ e depois executar um ln -s ../etc/rc2.d/S99Iptables, fiz isso, e não consegui fazer com que minhas regras fossem aplicadas na hora do boot.
Poderia me explicar como fazer isso?
Obrigado.



7. Maneiras diferentes

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 04/04/2008 - 10:02h

É que por ferramentas coisas mudam de acordo com as distribuições. O SUSE, por exemplo, vai te ensinar a usar o Yast para fazer isto. O Red Hat o linuxconf (se é que ainda é este nome). No KDE tu tem um serviço também. Eu mostro no braço mesmo :-D

Assim como o teu "echo 1 > /proc/sys/net/ipv4/ip_forward" para ligar roteamento. Algumas distros vão te ensinar a clicar em um botão de alguma ferramenta gráfica. Outras vão te dizer para mudar para ON algo como FORWARD= dentro de algum /etc/sysconfig. Faz com o echo e funciona em TODAS!!

O que o update-rc.d faz é o mesmo que a minha dica, só que ELE faz, não eu. Nunca usei script algum para atualizar o init.d, sempre fiz no braço mesmo. Se for usar o update tem que ver como é a "língua" dele, quais os parâmetros, etc.

Ainda, existem basicamente dois tipos DIFERENTES de rc.d, mas todas as distros herdadas de Debian ou Red Hat usam a mesma. Já o slackware é um pouco direrente.



8. Qual o teu runlevel?

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 04/04/2008 - 10:06h

Para tu usar a minha dica que leste deves ver se o teu runlevel é mesmo o 2. Algumas distros MUDAM ISTO, podendo ser 5 (mais comum).

Mas faça isto:

- coloque o script mesmo em /etc/init.d e não esqueça de dar permissão de execução.

- entre no diretório /etc/rc2.d e nele faça:
ln -s ../init.d/iptables.sh S99iptables

(desque que teu script se chame iptables.sh)

- vá no diretório /etc/rc5.d:
ln -s ../init.d/iptables.sh S99iptables




9. uptade-rc.d

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 04/04/2008 - 10:12h

Para usar este script, primeiro deve-se COPIAR ele para /etc/init.d e só depois poder rodar o update-rc.d

Veja um exemplo que fiz para o script lixo.sh:

root@mate:~# cp lixo.sh /etc/init.d/
root@mate:~# update-rc.d lixo.sh multiuser
Adding system startup for /etc/init.d/lixo.sh ...
/etc/rc1.d/K20lixo.sh -> ../init.d/lixo.sh
/etc/rc2.d/S20lixo.sh -> ../init.d/lixo.sh
/etc/rc3.d/S20lixo.sh -> ../init.d/lixo.sh
/etc/rc4.d/S20lixo.sh -> ../init.d/lixo.sh
/etc/rc5.d/S20lixo.sh -> ../init.d/lixo.sh



10. Re: Script Iptables

Felipe
lipecys

(usa Debian)

Enviado em 04/04/2008 - 10:26h

O meu runlevel está como "2".

Então vê se irei fazer certo:
vou criar um arquivo iptables.sh com o conteúdo:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -i ethREDEINTERNA -s RedeInterna/Mascara -o ethx -j MASQUERADE

executo um cp iptables.sh /etc/init.d/
depois disso ln -s ../init.d/iptables.sh /etc/rc2.d/S99Iptables

com essas configurações, quando reiniciar meu pc as regras serão aplicadas automaticamente?

Mais uma vez obrigado.


11. Re: Script Iptables

Felipe
lipecys

(usa Debian)

Enviado em 04/04/2008 - 10:31h

Esqueci de dizer, também executei o comando:

chmod a+x /etc/init.d/iptables.sh

(para que serve este comando?).


12. Runlevel

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 04/04/2008 - 10:31h

Runlevel já foi uma coisa muito usada, hoje não mais.

Cada runlevel tem um significado:

0: HALT. Se tu digirar um init 0 na linha como root (só faça se tiver certeza) o efeito será encerrar o sistema.

1: MONOUSUÁRIO: neste runlevel apenas o root existe, não tem outros usuários. Uma das formas primárias de se "invadir" uma máquina que não se sabe a senha é iniciar no lilo ou grub em runlevel 1

2 - 5: disponíveis para serem configurados como se bem entender

6: REBOOT. Um init 6 vai reinicializar teu sistema.

Em distros que usam o init tem um arquivo /etc/inittab com as definições. Ubuntu NÃO USA init, mas sim bootstrap, mas mantém certa semalhança.

de 2 a 5 as distros podem fazer coisas, ou usuários. Digamos que tu queira a 2 e a 3 exatamente iguais, só que na 2 tu não quer iniciar NENHUM SERVIÇO, como HTTP, SSH, etc. Então, controlando o que tu põe em rc2.d e rc3.d tu pode definir que isto inicia no 2 mas aquilo não. Assim, na hora do boot tu poderia escolher.

Distros antigas, no tempo que o X não era tão essencial, deixavam o 2 sem o servidor X e o 5 com o servidor X.

Hoje isto não é mais praticado e dificilmente um usuário brinca de trocar o runlevel. Muitas usam o 2 como padrão e pronto. Algumas ainda podem usar o 5 pois eles eram os mais usados.

Como o firewall é algo que, imagino, queiras iniciar SEMPRE, é bom colocar links em TODOS eles, para que se tu entrar em 2, ele starta, em 3 também, assim por diante.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts