esclarecimento sobre firewall

1. esclarecimento sobre firewall

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/07/2010 - 10:54h

bom dia sou novo aqui no forum e gostaria de um --help e me desculpem aos que possam se sentirem ofendidos, afinal, nunca se sabe.

me interessei muito por esse script pois ele está muito perto da realidade da demanda de serviços da minha região.

estou usando a distro ubuntu e gostaria de implementar esse script de firewall (postado aqui no VOL) como treinamento e aprimoração pessoal, mas antes, gostaria de tirar umas duvidas, espero que possa me ajudar.

Perguntas?

a- eu posso implementar esse script alterando os endereçamentos, maskaras, eth(s), comentando as linhas que não utilizarei para rodar o squid, samba, cups, dhcp e o serviço de dns? pelo que entendo, eu ja vi que o dns está liberado, então, me corrija se estiver errado, esse serviço irá rodar sem problemas né?

b- eu tenho como adicionar uma acl no script pra fazer o squid rodar como transparente ou ja ta habilitado?

segue código abaixo:

eu aceito indicações de outros códigos e estou aberto a sugestões..


((((((obs: não seria correto tirar os créditos do trabalho, por isso, não tirei.))))))))

#!/bin/sh
#
# Script formatado por Daniel Fernandes - São Paulo - SP - Brasil
# E-mail: danwebmail@gmail.com
# www.vivaolinux.com.br/~volcom">www.vivaolinux.com.br/~volcom
# Fonte principal: www.vivaolinux.com.br
# 14/04/2009
#
########## Mensagem de Inicialização do script
echo 'Iniciando a aplicação das Regras do Iptables...'
# Levando em consideração que eth0 = rede externa e eth1 = rede interna
########## Ativa roteamento
echo 1 > /proc/sys/net/ipv4/ip_forward

########## Limpa Regras nas tabelas Filters e NAT
iptables -F
iptables -F -t nat

########## Bloqueia Todas Entradas e Saidas
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

########## Permite ssh para o firewall na rede interna
iptables -A INPUT -p tcp -i eth1 -s 192.168.1.0/24 --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -o eth1 -d 192.168.1.0/24 --sport 22 -j ACCEPT
iptables -A FORWARD -p tcp -i eth1 -s 192.168.1.0/24 --dport 22 -j ACCEPT
iptables -A FORWARD -p tcp -o eth1 -d 192.168.1.0/24 --sport 22 -j ACCEPT

########## Cria mascaramento da rede interna com a Internet
iptables -A INPUT -d 192.168.1.4 -p tcp --dport 3128 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

######### Modulos para permitir uso de FTP
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 20:21 -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 20:21 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 20:21 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT
iptables -A FORWARD -p udp -s 0/0 -i eth0 --sport 20:21 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT
# Essas duas linhas agradeço a ajuda do elgio (http://www.vivaolinux.com.br/perfil/verPerfil.php?login=elgio)
modprobe ip_nat_ftp
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

########## Permite comunicação com servidores DNS
iptables -A FORWARD -p udp -s 192.168.1.0/24 --sport 1024: -d 0/0 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 0/0 --sport 53 -d 192.168.1.0/24 --dport 1024: -j ACCEPT

########## Permite comunicação com protocolo HTTP
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 80 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

########## Permite comunicação com protocolo HTTPS
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 443 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 443 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

########## Permite comunicação com protocolos 3DES, SHA1
iptables -A FORWARD -p udp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 40002 -j ACCEPT
iptables -A FORWARD -p udp -s 0/0 -i eth0 --sport 40002 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 40003 -j ACCEPT
iptables -A FORWARD -p udp -s 0/0 -i eth0 --sport 40003 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 40004 -j ACCEPT
iptables -A FORWARD -p udp -s 0/0 -i eth0 --sport 40004 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

########## Permite comunicaç com SERASA Porta 3006
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 3006 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 3006 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

########## Permite comunicação com Terminal Server
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 3389 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 3389 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

########## Permite a Rede Local pingar na Internet
iptables -A FORWARD -p icmp --icmp-type ping -s 192.168.1.0/24 -i eth1 -d 0/0 -o eth0 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type pong -s 0/0 -i eth0 -d 192.168.1.0/24 -o eth1 -j ACCEPT

########## Permite a Rede Local acessar um servidor POP3 na Internet
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 110 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

########## Permite a Rede Local acessar um servidor ESPECIFICO SMTP na Internet
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 201.XXX.XXX.XXX -o eth0 --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp -s 201.XXX.XXX.XXX -i eth0 --sport 25 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

# Libera TUDO para um determinado IP da rede
# -s 192.168.1.20 = Ip da rede
# -d 192.168.1.4 = Ip do Proxy
iptables -A INPUT -s 192.168.1.20 -d 192.168.1.4 -j ACCEPT
iptables -A INPUT -s 192.168.1.4 -d 192.168.1.20 -j ACCEPT
iptables -A OUTPUT -s 192.168.1.20 -d 192.168.1.4 -j ACCEPT
iptables -A OUTPUT -s 192.168.1.4 -d 192.168.1.20 -j ACCEPT
iptables -A FORWARD -s 192.168.1.20 -d 192.168.1.4 -j ACCEPT
iptables -A FORWARD -s 192.168.1.4 -d 192.168.1.20 -j ACCEPT

########## Permite comunicacao completa de um IP interno da rede para um determinado IP na Internet
########## IP 1
iptables -A FORWARD -s 192.168.1.20 -i eth1 -d 201.XXX.XXX.XXX -o eth0 -j ACCEPT
iptables -A FORWARD -s 201.XXX.XXX.XXX -i eth0 -d 192.168.1.20 -o eth1 -j ACCEPT

########## IP 2
iptables -A FORWARD -s 192.168.1.21 -i eth1 -d 201.XXX.XXX.XXX -o eth0 -j ACCEPT
iptables -A FORWARD -s 201.XXX.XXX.XXX -i eth0 -d 192.168.1.21 -o eth1 -j ACCEPT

########## Permite comunicacao da rede interna com MySQL
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 3306 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 3306 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

########## Permite comunicacao da rede interna com VNC
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 5900 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 5900 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

########## Permite comunicacao com servidor SQL
iptables -A FORWARD -p tcp --sport 1433 -j ACCEPT
iptables -A FORWARD -p tcp --dport 1433 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1433 -j DNAT --to-destination 192.168.1.6
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1433 -j DNAT --to-destination 192.168.1.6

########## Permite conexao com Banco Indusval na porta 1414
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 1414 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 1414 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

########## Permite comunicacao com Banco Rural na porta 8444
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 8444 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 8444 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

########## Permite comunicacao completa para Sabre
iptables -A FORWARD -s 0/0 -i eth1 -d 151.193.180.231 -o eth0 -j ACCEPT
iptables -A FORWARD -s 151.193.180.231 -i eth0 -d 0/0 -o eth1 -j ACCEPT
iptables -A FORWARD -s 0/0 -i eth1 -d 151.193.180.227 -o eth0 -j ACCEPT
iptables -A FORWARD -s 151.193.180.227 -i eth0 -d 0/0 -o eth1 -j ACCEPT
iptables -A FORWARD -s 0/0 -i eth1 -d 151.193.141.254 -o eth0 -j ACCEPT
iptables -A FORWARD -s 151.193.141.254 -i eth0 -d 0/0 -o eth1 -j ACCEPT
iptables -A FORWARD -s 0/0 -i eth1 -d 201.53.42.140 -o eth0 -j ACCEPT
iptables -A FORWARD -s 201.53.42.140 -i eth0 -d 0/0 -o eth1 -j ACCEPT

########## Permite comunicacao com ReceitaNet
iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth1 --sport 1024: -d 0/0 -o eth0 --dport 3456 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -i eth0 --sport 3456 -d 192.168.1.0/24 -o eth1 --dport 1024: -j ACCEPT

######## Direciona o Acesso remoto pra IP interno
iptables -A FORWARD -p tcp --sport 3389 -j ACCEPT
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.87
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 3389 -j DNAT --to-destination 192.168.1.87

#################################################################

########## Redireciona os pacotes para porta 80 para a 3128
iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 -i eth1 -d 0/0 --dport 80 -j REDIRECT --to-port 3128

########## Redireciona os pacotes para porta 8080 para a 3128
########## iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 -i eth1 -d 0/0 --dport 8080 -j REDIRECT --to-port 3128

########## Redireciona os pacotes para porta 443 para a 3128
########## iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 -i eth1 -d 0/0 --dport 443 -j REDIRECT --to-port 3128

########## Permite a entrada de pacotes para a porta 3128
iptables -A INPUT -s 192.168.1.0/24 -i eth1 -p tcp --dport 3128 -j ACCEPT

########## Permite a Rede Local enviar pacotes para a porta 80 na Web
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT

########## Permite a Rede Local enviar pacotes para a porta 443 na Web
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 443 -j ACCEPT

########## Libera o PROXY, que está dentro do firewall pesquisar na web
iptables -A OUTPUT -p tcp -o eth0 -d -0/0 --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -s -0/0 --sport 443 -j ACCEPT

########## Libera o PROXY, que está dentro do firewall pesquisar DNS
iptables -A OUTPUT -p udp -o eth0 -d -0/0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -s -0/0 --sport 53 -j ACCEPT

########## Libera o retorno do pacotes do PROXY para a rede local
iptables -A OUTPUT -d 192.168.1.0/24 -o eth1 -p tcp --sport 3128 -j ACCEPT

########## Libera o trafego interno da loopback com ela mesma
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

########## Mensagem de finalização do script
echo 'As regras do Firewall Iptables foram atualizadas!'

no momento é só.




  


2. opinião pessoal

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 15/07/2010 - 11:30h

o ideal seria vc conhecer um pouco melhor o iptables para poder fazer uma análise mais acurada do script. Em todo caso, vai o meu "pitaco":

politica DROP para OUTPUT, IMHO deveria ser ACCEPT, porque vai SAIR desta máquina, então reduz minha ocupação/pensação com parte significativa das regras. Já que vai SAIR, que saia, oras - rs.

iptables -A INPUT -p tcp -i eth1 -s 192.168.1.0/24 --dport 22 -j ACCEPT permite que a rede inteira acesse esta máquina.. acho que deveria ser restrito à SUA e, eventualmente, mais uma para emergencias.

nesse script INFERE-SE que existe MySQL. Não gosto da idéia de um fwll com serviços.

interna com VNC <-- de novo, eu restringiria para uma, no máximo DUAS máquinas e não a rede inteira.

embora mencionando "Banco Indusval na porta 1414" a origem/destino está como 0/0, ou seja, qualquer um pode chegar, ir entrando, sentando, preparar chimarrão..

reparei também que as coisa são sempre feita em pares "entrada do indusval, saída para indusval".. isso acontece porque o script NÃO É statefull, então é do tempo de sacadura cabral, lá por 1800 e poucos..

melhor procurar algo mais novo - risos - parei por aqui, já tava escrito mesmo.

divirta-se.





3. Re: esclarecimento sobre firewall

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/07/2010 - 11:37h

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk - boa colocação. to rindo até agora..
massa.

aproveitando o ensejo, vc nao teria um script pré-config ou até mesmo um endereço contendo um?

valeu pela informação.


4. Re: esclarecimento sobre firewall

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 15/07/2010 - 12:52h

bem, pelo visto vc ainda não tem uma definição clara da aplicabilidade do fwll para suas especificações. Então, sugestão FORTE:

defina CLARAMENTE qual a intenção, para que vc precisa, topologico de rede. DEPOIS de tudo especificado, daí sim, vc pode buscar um fwll que seja mais adequado às suas necessidades.

já que ainda não escolheu mesmo, sugiro experimentar o PFSense que (felizmente) não é Linux ;) (hehehhe.. veneno implícito).

pode também usar o fwbuilder (Firewall Builder); aqui no VOL existem bons artigos a respeito: http://www.google.com.br/custom?domains=www.vivaolinux.com.br&sitesearch=www.vivaolinux.com.br&a...

existem outros "geradores de script", inclusive na propria internet mas nunca gostei dêles (risos)..

divirta-se.


5. Re: esclarecimento sobre firewall

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/07/2010 - 14:22h

muito obrigado pelas dicas. t+


6. ow doutor

Perfil removido
removido

(usa Nenhuma)

Enviado em 15/07/2010 - 17:40h

Se quiser dar uma olhada no meu script Firewall:
http://blog.cesar.augustus.nom.br/instalando-o-firewall-no-linux.html


7. Re: esclarecimento sobre firewall

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/07/2010 - 08:28h

nao consegui acessar o link. poderia re-postar por favor?
vlw pela atenção!!


8. rodritec

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/07/2010 - 13:00h

ow doutor, foi mal se você chegou a tentar acessar numa hora "errada". É que o meu blog/site foi tudo criado e configurado na minha máquina de casa. O servidor web (apache), dns (bind9), email (postfix) e etc, eu fiz tudo aqui em casa e eu tento deixar a minha máquina ligada o mais tempo possível, mas infelizmente não fica ligado 24 horas (não sou eu que pago as contas aqui, né!!!)

Mas pode tentar acessar de novo, que ja vai ta online.

Desculpa ai.


9. Re: esclarecimento sobre firewall

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/07/2010 - 14:28h

obrigado cesar. mais cedo eu tentei de novo, antes dessa msn sua e abri em cache ai apareceu. ja copiei e colei, rsrsrs, vlw pela contribuição.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts