Iptables com IIS

1. Iptables com IIS

Eymar Mendonça
eycmen

(usa KUbuntu)

Enviado em 01/10/2009 - 10:01h

Olá pessoal, sei que o assunto está em vários posts de vários fóruns, mas estou entrando na fase do suicidío com o iptables ou com o squid, ainda não sei onde está o problema.
Tenho um site hospedado na locaweb que direciona as solicitações para um server 2003 com IIS na minha sub rede. Já usei todas as regras de PREROUTING que poderia usar e nada acontece, no acesso externo a página não pode ser exibida e no acesso interno da Falha na conexão:(111)Connection refused. Isso está me tirando as forças! A diretoria está cobrando, pois é uma página de acesso de alunos.
Estou mandando as regras que estou utilizando para análise:
#!/bin/sh
ipt="/sbin/iptables"
mod="/sbin/modprobe"

#Interface da Internet
IFACE_WAN="eth0"

#Interface de rede local
IFACE_LAN="eth1"

iniciar(){
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $IFACE_WAN -j MASQUERADE

#modules
$mod ip_tables
$mod ip_conntrack
$mod iptable_filter
$mod iptable_nat
$mod iptable_mangle
$mod ipt_LOG
$mod ipt_limit
$mod ipt_state
$mod ipt_MASQUERADE

#IRC FTP
$mod ip_nat_ftp
$mod ip_nat _irc
$mod ip_conntrack_ftp
$mod ip_conntrack_irc

#active rules

$ipt -F
$ipt -t nat -F
$ipt -t mangle -F
$ipt -X
$ipt -t nat -X
$ipt -t mangle -X

#default policies
$ipt -P INPUT DROP
$ipt -P FORWARD DROP
$ipt -P OUTPUT ACCEPT
$ipt -t nat -P OUTPUT ACCEPT
$ipt -t nat -P PREROUTING ACCEPT
$ipt -t nat -P POSTROUTING ACCEPT
$ipt -t mangle -P PREROUTING ACCEPT
$ipt -t mangle -P POSTROUTING ACCEPT


#
#Proxy transparente
$ipt -t nat -A PREROUTING -i $IFACE_LAN -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "Proxy transparente ativado..........................................."
#
# Redirecionamento para IIS
echo "Iniciando redirecionamento para o IIS.........................."
$ipt -A FORWARD -i $IFACE_WAN -p tcp --dport 8080 -d 192.168.254.2 -j ACCEPT
$ipt -t nat -A PREROUTING -i $IFACE_WAN -p tcp --dport 8080 -j DNAT --to 192.168.254.2:8080
#
# Redirecionamento para SQL Server
$ipt -t nat -A PREROUTING -p tcp --dport 1433 -j DNAT --to 192.168.254.2
$ipt -t nat -A PREROUTING -p udp --dport 1433 -j DNAT --to 192.168.254.2
$ipt -t nat -A PREROUTING -p tcp --sport 1433 -s 192.168.254.2/25 -j ACCEPT
$ipt -t nat -A PREROUTING -p udp --sport 1433 -s 192.168.254.2/25 -j ACCEPT
$ipt -A FORWARD -p tcp --dport 1433 -s 0/0 -d 192.168.254.2/25 -j ACCEPT
$ipt -A FORWARD -p udp --dport 1433 -s 0/0 -d 192.168.254.2/25 -j ACCEPT
$ipt -A FORWARD -p tcp --sport 1433 -s 192.168.254.2/25 -j ACCEPT
$ipt -A FORWARD -p udp --sport 1433 -s 192.168.254.2/25 -j ACCEPT
#
# Liberar porta do TS
echo "Iniciando redirecionamento para o TS..................................."
#$ipt -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to 192.168.254.2
$ipt -t nat -A PREROUTING -p tcp --sport 3389 -s 192.168.254.2/25 -j ACCEPT
$ipt -A FORWARD -p tcp --dport 3389 -s 0/0 -d 192.168.254.2/25 -j ACCEPT
$ipt -A FORWARD -p tcp --sport 3389 -s 192.168.254.2/25 -j ACCEPT
#$ipt -t nat -A PREROUTING -p udp --dport 3389 -j DNAT --to 192.168.254.2
$ipt -t nat -A PREROUTING -p udp --sport 3389 -s 192.168.254.2/25 -j ACCEPT
$ipt -A FORWARD -p udp --dport 3389 -s 0/0 -d 192.168.254.2/25 -j ACCEPT
$ipt -A FORWARD -p udp --sport 3389 -s 192.168.254.2/25 -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp --dport 3389 -s 192.168.254.2 -j ACCEPT
$ipt -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to 192.168.254.2
$ipt -A FORWARD -p tcp --dport 3389 -j ACCEPT
#
#Autoriza pacotes da interface loopback
$ipt -A INPUT -i lo -j ACCEPT

#Autoriza pacotes da rede local
$ipt -A INPUT -i $IFACE_LAN -j ACCEPT

# Abre a porta 22 usada pelo SSH
$ipt -t nat -A PREROUTING -p tcp --dport 22 -j ACCEPT
#$ipt -t nat -A PREROTUING -p udp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 22 -j ACCEPT
#$ipt -A INPUT -p udp --dport 22 -j ACCEPT

#Enable IP masquerade
$ipt -t nat -A POSTROUTING -o $IFACE_WAN -j MASQUERADE

#Enable unrestricted outigoing traffic
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A FORWARD -i $IFACE_WAN -o $IFACE_LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A FORWARD -i $IFACE_LAN -o $IFACE_WAN -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#Accept important ICMP messages
$ipt -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT

# Deixa de responder a pings
#iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

#Protecao contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
$ipt -A INPUT -m state --state INVALID -j DROP

#Bloqueia o restante das conexoes
$ipt -A INPUT -p tcp --syn -j DROP
}
parar(){

echo "Firewall desativado............................."

# default policies
$ipt -P INPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -P OUTPUT ACCEPT
$ipt -t nat -P OUTPUT ACCEPT
$ipt -t nat -P PREROUTING ACCEPT
$ipt -t nat -P POSTROUTING ACCEPT
$ipt -t mangle -P INPUT ACCEPT
$ipt -t mangle -P OUTPUT ACCEPT
$ipt -t mangle -P FORWARD ACCEPT
$ipt -t mangle -P PREROUTING ACCEPT
$ipt -t mangle -P POSTROUTING ACCEPT

# Zerando contadores
$ipt -Z
$ipt -t nat -Z
$ipt -t mangle -Z

# flush
$ipt -F
$ipt -X
$ipt -t nat -F
$ipt -t nat -X
$ipt -t mangle -F
$ipt -t mangle -X
}
case "$1" in
"start")iniciar;;
"stop")parar;;
"restart")parar;iniciar;;
*)
echo "Use os parametros start ou stop"
esac

Já pensei em configurações no IIS, mas em outros posts não comentam isso, estou em fase crítica.

Agradeço por qualquer colaboração.




  


2. Re: Iptables com IIS

Magno Lima
magnolinux

(usa Debian)

Enviado em 01/10/2009 - 10:12h

Esse redirecionamento da locaweb para seu server esta realmente na porta 8080????

A pergunta é as requisições dos clientes chegam ao seu server linux na porta 8080.!!!!!

Pode ser um simples problem, as requisições chegam ao linux na porta 80.

flw....




3. Re: Iptables com IIS

Eymar Mendonça
eycmen

(usa KUbuntu)

Enviado em 01/10/2009 - 10:58h

Não, estão chegando na porta 80 mesmo com o IP da máquina com firewall+squid, mas já tentei deixar o IIS na porta 80 e mesmo assim não encontrava a página.


4. Re: Iptables com IIS

Magno Lima
magnolinux

(usa Debian)

Enviado em 01/10/2009 - 14:20h

se ele esta chegando no firewall na porta 80, vc deve criar o redirecionamento da porta 80, ficaria assim,

$ipt -t nat -A PREROUTING -i $IFACE_WAN -p tcp --dport 80 -j DNAT --to 192.168.254.2:8080

isso se tiver chegando a requisição na porta 80 e vc estiver redirecionando para o IIS na porta 8080

flw.


5. Re: Iptables com IIS

Eymar Mendonça
eycmen

(usa KUbuntu)

Enviado em 01/10/2009 - 15:03h

Bom, agora já mudou o erro!
Agora está com :

Na tentativa de recuperar a URL: http://201.xxx.xxx.xxx/

O seguinte erro foi encontrado:

* Falha na conexão

O sistema retornou:

(111) Connection refused

O host remoto (servidor) ou a rede pode estar indisponível. Por favor tente novamente.

Penso que agora tem que passar pelo squid, mas já liberei a porta 8080 e nada! O que poderá ser desta vez?

A luz no fim do túnel está ficando mais forte!!


6. Re: Iptables com IIS

Magno Lima
magnolinux

(usa Debian)

Enviado em 02/10/2009 - 08:41h

como o seu server IIS ta atraz de um firewall, vc tem que liberar no seu firewall, todo forward de entrada e saida para aquela porta naquela maquina. Coloca essa regra agora e faz o teste.

iptables -t filter -A FORWARD -s IP_IIS -p tcp --dport 80 -j ACCEPT

iptables -t filter -A FORWARD -s IP_IIS -p tcp --dport 8080 -j ACCEPT

Testa e posta o resultado aí...

flw


7. Re: Iptables com IIS

Eymar Mendonça
eycmen

(usa KUbuntu)

Enviado em 02/10/2009 - 10:12h

magnolinux, ontem decidi colocar o iis na porta 80 mesmo, refiz as regras para a porta 80 e mesmo assim ficou do mesmo jeito. Já testei as regras que tu me enviaste e nada. Estou com uma dica de outro forúm pra usar snat, não sei ainda, estou pesquisando, mas agradeço pela força.
Hoje vai ter que dar certo, senão minha cabeça na segunda vai estar em risco!

Vamos continuar lutando!


8. Re: Iptables com IIS

Magno Lima
magnolinux

(usa Debian)

Enviado em 02/10/2009 - 10:41h

blz...

Para fazer um teste coloca as default politicas do seu firewall todas como ACCEPT. Como as politicas estao como DROP, pode ser que o iptables esta bloqueando alguma comunicação do IIS com a rede externa e vice versa.

Faz esse teste e se vai aconteçer o mesmo erro.

Posta aí o resultado......


9. Re: Iptables com IIS

Eymar Mendonça
eycmen

(usa KUbuntu)

Enviado em 02/10/2009 - 11:13h

brother, fiz o teste, coloquei todas as regras para ACCEPT e nada, fiz outro teste, coloquei as regras antes dos redirecionamento da prta 80 para a porta do squid (3128), quando eu faço isso dá "tempo limite excedido" e quando eu coloco as regras depois do redirecionamento para o squid dá "falha na conexão - (111)connection refused", lembra que a porta do iis está na 80 mesmo.
Testei essas duas regras agora:
iptables -t nat -A PREROUTING -p tcp -d 201.xxx.xxx.xxx --dport 80 -j DNAT --to 102.168.254.2
iptables -t nat -A POSTROUTING -p tcp -s 192.168.254.2 --sport 80 -j SNAT --to 201.xxx.xxx.xxx

Nada, do mesmo jeito!! Que loucura é essa???






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts