[AJUDA] Script Iptables

1. [AJUDA] Script Iptables

Lucas Pimentel Gracioso
lcspimentel

(usa Debian)

Enviado em 28/09/2014 - 00:27h

Ola pessoal... sou novo na comunidade e meio leigo em linux ainda. Por isso queria à opinião de vocês sobre um script no qual eu criei pois não é lá grande coisa comparado aos que eu já vi. Por isso toda crítica é bem vinda!!
Obrigado pela atenção de todos.
Segue o script abaixo:

#!bin/bash
#
#iptables script created by: pimentel
#
#echo "iniciando regras do firewall"
#limpando tabelas
iptables -F -t filter
iptables -F -t nat
iptables -F -t mangle
#
#alterando politicas
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
iptables -X -t filter
iptables -X -t nat
iptables -X -t mangle
#
#ativando loopback
iptables -A INPUT -i lo -j ACCEPT
#
iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED, RELATED -j ACCEPT
#ativando modulos de segurança no kernel
echo "1" >/proc/sys/net/ipv4/conf/all/rp_filter
echo "1" >/proc/sys/net/ipv4/tcp_syncookies
echo "1" >/proc/sys/net/ipv4/ip_forward
echo "1" >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" >/proc/sys/net/ipv4/ip_always_defrag
#
#compartilhando web com a rede interna
iptables -t nat -A POSTROUTING -s 0.0.0.0/24 -o eth0 -j MASQUERADE
#
#liberando acesso a HTTP e FTP para web
iptables -I INPUT -p tcp -d 0.0.0.0/24 --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -d 0.0.0.0/24 --dport 20 -j ACCEPT
iptables -I INPUT -p tcp -d 0.0.0.0/24 --dport 21 -j ACCEPT
#
#liberando acesso interno da rede
iptables -I INPUT -p tcp --syn -s 0.0.0.0/24 --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --syn -s 0.0.0.0/24 --dport 20 -j ACCEPT
iptables -I INPUT -p tcp --syn -s 0.0.0.0/24 --dport 21 -j ACCEPT
#
#redirecionamento de porta
iptables -A FORWARD -s 0.0.0.0/24 -p tcp -m multiport 80,20,21 -j DNAT --to 0.0.0.0

#proteçoes contra ataques
#bloqueia pacotes nao identificados que entram na rede
iptables -A INPUT -m state --state INVALID -j DROP
#
#protecao contra syn flood
iptables -A FORWARD -p tcp --syn -m limit 5/s -j ACCEPT
#
#bloqueia ping de um ip
iptables -A INPUT -p icmp -s 0.0.0.0/24 -j DROP
#
#protecao contra ping da morte
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#
#bloqueando endereços
iptables -A INPUT -s 0.0.0.0/24
#
#bloqueia pacotes fragmentados
iptables -i eth2 -m unclean -j log_unclean
iptables -A INPUT -f -i eth2 -j log_fragment
#
#bloqueando endereço mac
iptables -A INPUT -m -mac --mac-source XX:XX:XX:XX:XX:XX -j DROP





  


2. Re: [AJUDA] Script Iptables

Takahashi
signout

(usa Slackware)

Enviado em 30/09/2014 - 03:58h

Boas...

Apenas algumas observações, baseado no pouco que conheço de iptables.

1 - chain INPUT, trata todas as requisições que tem como destino final a propria maquina.

2 - chain OUTPUT, trata todas as requisições que tem como origem a propria maquina.

3 - chain FORWARD, trata tudo que apenas passara pela maquina, sendo originado em A, passando pelo iptables e tendo como destino B (podendo B ser outra interface ou outra maquina.

Dito isto:

iptables -t filter -P OUTPUT DROP

voce não conseguira fazer ping ou telnet a partir deste servidor, pois a politica padrão é DROP, sem que haja nenhuma outra regra de saida configurada.

*************
iptables -I INPUT -p tcp -d 0.0.0.0/24 --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -d 0.0.0.0/24 --dport 20 -j ACCEPT
iptables -I INPUT -p tcp -d 0.0.0.0/24 --dport 21 -j ACCEPT

Voce liberou acesso às portas 80, 20 e 21 do seu servidor iptables

**************
iptables -A INPUT -s 0.0.0.0/24

faltou completar o comando, mas se a intenção for bloquear, não faz sentido, visto que a politica padrão para a chain INPUT foi alterada para DROP.

******************
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

Aqui voce não esta bloqueando, voce esta aceitando, sem definir um limite de quantidade, apenas de tempo, na chain FORWARD.

*********************
Minha sugestão é buscar um compreendimento maior sobre cada chain, para evitar erros citados acima e antes de tentar fazer um script completo, fazer testes com o basico: (alterar as politicas padrão de cada chain e ver os efeitos, incluir uma regra simples e testa-la, etc)
Aqui no site do vol existem diversos artigos sobre iptables, inclusive explicando sobre as tabelas e chains.
http://www.vivaolinux.com.br/artigo/Seguranca-com-iptables-1?pagina=1
http://www.vivaolinux.com.br/artigo/IPTables-Desvendando-o-misterio
http://www.vivaolinux.com.br/artigo/Implementacao-de-um-servidor-Linux-Squid-+-Iptables-+-DHCP?pagin...

Espero que ajude.
[]s


3. Re: [AJUDA] Script Iptables

Wagner Souza
wagnerfs

(usa Fedora)

Enviado em 30/09/2014 - 08:56h

Dá uma olhada nesta seção do VOL que tem nada mais nada menos que 110 artigos abordando conceitos de iptables http://www.vivaolinux.com.br/artigos/verSubCategoria.php?codigo=6

Assiste também esses vídeos de introdução ao iptables que são bem elucidativos:

https://www.youtube.com/watch?v=0tt6jRIr8yU
https://www.youtube.com/watch?v=t0uOBLN7trE
https://www.youtube.com/watch?v=A_YKQV0UuYs
https://www.youtube.com/watch?v=1-E06sPS6_s




4. Re: [AJUDA] Script Iptables

Lucas Pimentel Gracioso
lcspimentel

(usa Debian)

Enviado em 30/09/2014 - 10:08h

signout escreveu:

Boas...

Apenas algumas observações, baseado no pouco que conheço de iptables.

1 - chain INPUT, trata todas as requisições que tem como destino final a propria maquina.

2 - chain OUTPUT, trata todas as requisições que tem como origem a propria maquina.

3 - chain FORWARD, trata tudo que apenas passara pela maquina, sendo originado em A, passando pelo iptables e tendo como destino B (podendo B ser outra interface ou outra maquina.

Dito isto:

iptables -t filter -P OUTPUT DROP

voce não conseguira fazer ping ou telnet a partir deste servidor, pois a politica padrão é DROP, sem que haja nenhuma outra regra de saida configurada.

*************
iptables -I INPUT -p tcp -d 0.0.0.0/24 --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -d 0.0.0.0/24 --dport 20 -j ACCEPT
iptables -I INPUT -p tcp -d 0.0.0.0/24 --dport 21 -j ACCEPT

Voce liberou acesso às portas 80, 20 e 21 do seu servidor iptables

**************
iptables -A INPUT -s 0.0.0.0/24

faltou completar o comando, mas se a intenção for bloquear, não faz sentido, visto que a politica padrão para a chain INPUT foi alterada para DROP.

******************
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

Aqui voce não esta bloqueando, voce esta aceitando, sem definir um limite de quantidade, apenas de tempo, na chain FORWARD.

*********************
Minha sugestão é buscar um compreendimento maior sobre cada chain, para evitar erros citados acima e antes de tentar fazer um script completo, fazer testes com o basico: (alterar as politicas padrão de cada chain e ver os efeitos, incluir uma regra simples e testa-la, etc)
Aqui no site do vol existem diversos artigos sobre iptables, inclusive explicando sobre as tabelas e chains.
http://www.vivaolinux.com.br/artigo/Seguranca-com-iptables-1?pagina=1
http://www.vivaolinux.com.br/artigo/IPTables-Desvendando-o-misterio
http://www.vivaolinux.com.br/artigo/Implementacao-de-um-servidor-Linux-Squid-+-Iptables-+-DHCP?pagin...

Espero que ajude.
[]s



Sim, confesso que foi erro e falta de atenção minha em algumas partes... Mas de toda forma obrigado pelos links e pela observação.



5. Re: [AJUDA] Script Iptables

Lucas Pimentel Gracioso
lcspimentel

(usa Debian)

Enviado em 30/09/2014 - 10:09h

k666 escreveu:

Dá uma olhada nesta seção do VOL que tem nada mais nada menos que 110 artigos abordando conceitos de iptables http://www.vivaolinux.com.br/artigos/verSubCategoria.php?codigo=6

Assiste também esses vídeos de introdução ao iptables que são bem elucidativos:

https://www.youtube.com/watch?v=0tt6jRIr8yU
https://www.youtube.com/watch?v=t0uOBLN7trE
https://www.youtube.com/watch?v=A_YKQV0UuYs
https://www.youtube.com/watch?v=1-E06sPS6_s



Obrigado pela ajuda!!
Abraço...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts