Firewall Bloqueando acesso a aplicação apara LAN [RESOLVIDO]

1. Firewall Bloqueando acesso a aplicação apara LAN [RESOLVIDO]

Adriano Neves
adrcsn

(usa Outra)

Enviado em 13/02/2012 - 10:46h

Galera
Poderia me tirar uma duvida onde eu possa estar errando, por favor.
Tenho uma aplicação que roda na porta 80 e 443 padrões do apache, fiz uma Nat para que externamente com o ip da minha Wan possam acessar essa aplicação ate ai tudo bem esta tudo certinho, mais internamente na minha Lan não consigo acessar essa minha aplicação porque toda essa minha aplicação roda em cima do ip da WAN e da o seguinte erro Connection to xxx.xxx.xxx.xxx (Ip da WAN) failed - O sistema retornou: (111) Connection refused, existe alguma regra do iptables para liberar para que também minha LAN acesse essa aplicação mesmo que essa aplicação esteja com o ip da WAN?

Obrigado,


  


2. Re: Firewall Bloqueando acesso a aplicação apara LAN [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 13/02/2012 - 10:48h

bom se possível poste seu script iptables para podemos analisar melhor...



3. Seria esse

Adriano Neves
adrcsn

(usa Outra)

Enviado em 13/02/2012 - 10:55h

#!/bin/bash
#
# Shell Script - Firewall
# =======================#

# IP da Rede
NETWORK=192.168.0.0/24

# Interface da Rede Local - LAN
ILAN=eth0

# Interface da Rede Externa - Internet
INET=ppp0

IPT=/sbin/iptables

if [ ! -x $IPT ]; then
if [ -e $IPT ]; then
echo "O programa 'iptables' está sem permissão de execução"
else
echo "O programa 'iptables' não está instalado atualmente. Você pode instalá-lo digitando:"
echo "sudo apt-get install iptables"
fi
exit 0
fi

CLEAN_RULES () {
# Removendo regras
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F

# Apagando chains
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Zerando contadores
$IPT -Z
$IPT -t nat -Z
$IPT -t mangle -Z
}

REDIRECT () {
# Redirecionamento
$IPT -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
}

SHARE_INTERNET () {
#Mascaramento
$IPT -t nat -A POSTROUTING -o $INET -s $NETWORK -j MASQUERADE

# Ativando o redirecionamento de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
}

SECURITY () {
# Proteção para SYN Flood
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Rejeitar requisição de ICMP Echo destinado a Broadcasts e Multicasts
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Ignorar Mensagens Falsas de icmp_error_responses
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

for i in /proc/sys/net/ipv4/conf/*; do
# Não Redirecionar Mensagens ICMP
echo 0 > $i/accept_redirects

# Proteção a Ataques IP Spoofing
echo 0 > $i/accept_source_route

# O kernel decide se envia resposta pelo mesmo endereço ou não.
echo 1 > $i/arp_filter

# Permitir que Pacotes Forjados sejam logados pelo próprio kernel
echo 1 > $i/log_martians

# Verificar Endereço de Origem do Pacote (Proteção a Ataques IP Spoofing)
echo 1 > $i/rp_filter
done
}

LOG () {
$IPT -A INPUT -i $INET -p tcp --dport 135 -j DROP
$IPT -A INPUT -p tcp -m multiport ! --dports 0:1056 -j DROP
$IPT -A INPUT -p udp -j DROP
$IPT -A INPUT -p icmp -j DROP
$IPT -A INPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-prefix "LOG-FW: "
}

SERVER_RULES () {
# Apache - Servidor Web
$IPT -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT

# Apache TomCat - Servidor Web
$IPT -A INPUT -p tcp --dport 8080 -j ACCEPT

# Bind9 - Servidor DNS
#$IPT -A INPUT -p udp --dport 53 -j ACCEPT

# DanGuardian - Servidor Proxy
#$IPT -A INPUT -i $ILAN -p tcp --dport 8080 -j ACCEPT

# DHCP - Servidor DHCP
$IPT -A INPUT -i $ILAN -p udp --sport 68 --dport 67 -j ACCEPT

# IPP - Protocolo de Impressão na Internet
$IPT -A INPUT -i $ILAN -p tcp --dport 631 -j ACCEPT
#$IPT -A INPUT -i $ILAN -p udp -m multiport --dports 138,631 -j ACCEPT

# NFS - Servidor NFS
$IPT -A INPUT -p tcp -m multiport --dports 111,2049,51049 -j ACCEPT
$IPT -A INPUT -p udp -m multiport --dports 111,49176,50445 -j ACCEPT

# ProFTPD - Servidor FTP
#$IPT -A INPUT -i $ILAN -p tcp --dport 21 -j ACCEPT
#$IPT -A INPUT -i $ILAN -p tcp -m multiport --dports 49152:49162 -j ACCEPT

# Postfix - Servidor de E-mail
#$IPT -A INPUT -i $ILAN -p tcp -m multiport --dports 25,110 -j ACCEPT
#$IPT -A INPUT -i $ILAN -p tcp -m multiport --dports 465,995 -j ACCEPT

# PostgreSQL - Servidor Postgresql
$IPT -A INPUT -i $ILAN -p tcp --dport 5432 -j ACCEPT

# Samba - Serviços de Diretório da Microsoft
#$IPT -A INPUT -i $ILAN -p tcp -m multiport --dports 445,139 -j ACCEPT
#$IPT -A INPUT -i $ILAN -p udp -m multiport --dports 137,138 -j ACCEPT

# Squid - Servidor Proxy
$IPT -A INPUT -i $ILAN -p tcp --dport 3128 -j ACCEPT

# SSH - Servidor SSH
$IPT -A INPUT -i $ILAN -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 20 -j DROP
$IPT -A INPUT -i $ILAN -p tcp --dport 22 -m state --state NEW -m recent --set
$IPT -A INPUT -i $ILAN -p tcp --dport 22 -j ACCEPT

# TFTP/uDHCP - Servidor LTSP
#$IPT -A INPUT -i $ILAN -p udp --dport 69 -j ACCEPT
#$IPT -A INPUT -i $ILAN -p tcp --dport 2000 -j ACCEPT
#$IPT -A INPUT -i $ILAN -p udp --dport 514 -j ACCEPT

# VNC - Servidor de Acesso Remoto
#$IPT -A INPUT -p tcp --dport 5900 -j ACCEPT

# Webmin - Gerenciador Web de Servidor
#$IPT -A INPUT -i $ILAN -p tcp --dport 10000 -j ACCEPT
}

SERVICE_RULES () {
# DNS - Serviço de Nomes de Dominios
$IPT -A FORWARD -o $INET -p udp -m multiport --dports 53,5353 -j ACCEPT

# FTP - Protocolo de Transferência de Arquivo
$IPT -A FORWARD -o $INET -p tcp --dport 21 -j ACCEPT

# HTTP - Protocolo de Transferência de Hypertext
$IPT -A FORWARD -o $INET -p tcp -m multiport --dports 80,8080 -j ACCEPT

# HTTPS - Protocolo de Transferência de Hypertext Seguro
$IPT -A FORWARD -o $INET -p tcp --dport 443 -j ACCEPT

# MSNMS - Serviço de Mensageiro de Rede da Microsoft
#$IPT -A FORWARD -o $INET -p tcp -m multiport --dports 1863,7001 -j ACCEPT
#$IPT -A FORWARD -o $INET -p udp --dport 7001 -j ACCEPT

# NTP - Protocolo para sincronização dos relógios
#$IPT -A FORWARD -o $INET -p udp --dport 123 -j ACCEPT

# Ping
#$IPT -A INPUT -i $ILAN -p icmp --icmp-type 8 -j ACCEPT
#$IPT -A FORWARD -o $INET -p icmp --icmp-type 8 -j ACCEPT

# POP3 - Protocolo de Correio
$IPT -A FORWARD -o $INET -p tcp --dport 110 -j ACCEPT

# POP3S - Protocolo de Correio Seguro
$IPT -A FORWARD -o $INET -p tcp --dport 995 -j ACCEPT

# PPTP - Protocolo de Encapsulamento Ponto a Ponto
$IPT -A FORWARD -o $INET -p tcp --dport 1723 -j ACCEPT

# RDP - Protocolo de Área de Trabalho Remota
#$IPT -A FORWARD -o $INET -p tcp --dport 3389 -j ACCEPT

# SSDP - Protocolo para Descoberta de Serviços Simples
$IPT -A INPUT -i $ILAN -p udp --dport 1900 -j ACCEPT

# SSH - Shell Seguro
#$IPT -A FORWARD -o $INET -p tcp --dport 22 -j ACCEPT

# SMTP - Protocolo Simples para Transferência de Correio
$IPT -A FORWARD -o $INET -p tcp --dport 25 -j ACCEPT

# SSMTP - Protocolo Simples para Transferência de Correio Seguro
$IPT -A FORWARD -o $INET -p tcp --dport 465 -j ACCEPT

# TELNET
#$IPT -A FORWARD -o $ILAN -p tcp --dport 23 -j ACCEPT

# VNC - Computação em Rede Virtual
#$IPT -A FORWARD -o $ILAN -p tcp --dport 5900 -j ACCEPT

# XMPP - Protocolo de Presença e Mensagens Extensiva
#$IPT -A FORWARD -o $INET -p tcp --dport 5222 -j ACCEPT
}

ENABLE_FW () {
# Removendo regras, apagando chains e zerando contadores
CLEAN_RULES

# Política
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

# Adicionando redirecionamentos
REDIRECT

# Compartilhando a Internet
SHARE_INTERNET

# Atribuindo segurança
SECURITY

# Adicionando regras p/ Servidores
SERVER_RULES

# Adicionando regras p/ Serviços
SERVICE_RULES

# Manter Conexões Estabelecidas
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Liberando o Tráfego na Interface loopback
$IPT -A INPUT -i lo -j ACCEPT

# LOGs
LOG
}

DISABLE_FW () {
# Removendo regras, apagando chains e zerando contadores
CLEAN_RULES

# Política
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

# Adicionando redirecionamentos
REDIRECT

# Compartilhando a Internet
SHARE_INTERNET
}

MODULES () {
MOD=(
"iptable_filter"
"iptable_nat"
"iptable_mangle"
"ipt_LOG"
"ipt_REDIRECT"
"ipt_MASQUERADE"
)

for N in $(seq 0 $[${#MOD[@]}-1]); do
if [ -z "$(lsmod | grep ${MOD[$N]})" ]; then
/sbin/modprobe ${MOD[$N]}
fi
done
}

EXEC () {
if [ $(whoami) = "root" ]; then
MODULES
$1
RET=0
else
echo "You're not a user root: Operation not permitted"
RET=1
fi
}

. /lib/lsb/init-functions

case "$1" in
start)
log_daemon_msg "Starting Firewall" "iptables"
EXEC ENABLE_FW
;;
stop)
log_daemon_msg "Stopping Firewall" "iptables"
EXEC DISABLE_FW
;;
restart|reload)
log_action_begin_msg "Reloading Firewall configuration"
EXEC ENABLE_FW
echo -n "Reloading Firewall configuration rules"
;;
*)
log_success_msg "Usage: $0 {start|stop|restart|reload}"
esac

log_end_msg $RET
exit $RET



4. Internamente

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 13/02/2012 - 13:50h

Opções:
1 - Configurar um DNS e criar um hotname para sua aplicação
2 - Acessar internamente pelo seu IP interno ex: 10.0.0.1 não pelo da wan.
3 - Liberar o INPUT na lo para que não sai para a internet e tente voltar para sua rede:
iptables -A INPUT -i lo -j ACCEPT


5. Re: Firewall Bloqueando acesso a aplicação apara LAN [RESOLVIDO]

Adriano Neves
adrcsn

(usa Outra)

Enviado em 13/02/2012 - 15:34h

Eu criaria esse hostname no servidor da aplicação ou no meu servidor de firewall?
Engraçado que tenho também o sarg nesse servidor de firewall agora esta direcionando para o apache do meu firewall.

Obrigado mesmo pela ajuda!



6. DNS

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 13/02/2012 - 17:38h

adrcsn escreveu:

Eu criaria esse hostname no servidor da aplicação ou no meu servidor de firewall?
Engraçado que tenho também o sarg nesse servidor de firewall agora esta direcionando para o apache do meu firewall.

Obrigado mesmo pela ajuda!


O servidor de DNS pode ser em qualquer um dos dois desde que as estações usem ele como DNS. (Foi apenas uma das alternativas)

Agora usou a dica de liberar o INPUT na lo e a aplicação esta em outra maquina então terá que redirecionar:

iptables -t nat -A PREROUTING -i eth0 -d IP_externo -p tcp -m tcp --dport 80 -j DNAT --to-destination IP_app:80


Onde:
eth0=placa de rede local
IP_app:80= IP da aplicação
IP_externo=IP do firewall




7. rede lo

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 13/02/2012 - 21:04h

andrecanhadas escreveu:

adrcsn escreveu:

Eu criaria esse hostname no servidor da aplicação ou no meu servidor de firewall?
Engraçado que tenho também o sarg nesse servidor de firewall agora esta direcionando para o apache do meu firewall.

Obrigado mesmo pela ajuda!


O servidor de DNS pode ser em qualquer um dos dois desde que as estações usem ele como DNS. (Foi apenas uma das alternativas)

Agora usou a dica de liberar o INPUT na lo e a aplicação esta em outra maquina então terá que redirecionar:

iptables -t nat -A PREROUTING -i eth0 -d IP_externo -p tcp -m tcp --dport 80 -j DNAT --to-destination IP_app:80


Onde:
eth0=placa de rede local
IP_app:80= IP da aplicação
IP_externo=IP do firewall



Caso o redirecionamento não funcione tenta redirecionar a lo:

iptables -t nat -A PREROUTING -i lo -d IP_externo -p tcp -m tcp --dport 80 -j DNAT --to-destination IP_app:80




8. Re: Firewall Bloqueando acesso a aplicação apara LAN [RESOLVIDO]

Adriano Neves
adrcsn

(usa Outra)

Enviado em 14/02/2012 - 09:34h

Ainda continua dando o mesmo erro.
Fiz essa regra antes do redirect e depois também nem uma das 2 funcionou.


9. Bind

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 14/02/2012 - 09:39h

A melhor opção é instalar um DNS para o acesso interno redirecionando um host para a maquina da rede interna


10. Re: Firewall Bloqueando acesso a aplicação apara LAN [RESOLVIDO]

Adriano Neves
adrcsn

(usa Outra)

Enviado em 14/02/2012 - 09:44h

Tenho um DNS interno com windows 2003.
Ou faço esses apontamentos no firewall? ou na aplicação?


11. Dominio

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 14/02/2012 - 10:07h

adrcsn escreveu:

Tenho um DNS interno com windows 2003.
Ou faço esses apontamentos no firewall? ou na aplicação?


Então vai precisar de um domínio valido para o acesso externo se tiver um domínio fica facil.

No dominio externo direciona o dominio para seu IP Externo e internamente no DNS do windows tera que configurar um novo dominio e apontar a mesma entrada para seu IP da aplicação.


12. Re: Firewall Bloqueando acesso a aplicação apara LAN [RESOLVIDO]

Adriano Neves
adrcsn

(usa Outra)

Enviado em 14/02/2012 - 10:48h

Sim temos domínio externo, mais todas as aplicações são acessadas normalmente acessamos com ip da WAN.
Desculpa eu não entendi configurar um novo domínio, desculpa isso já ta me deixando louco com um monte de gente falando que precisa acessar.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts