Roteamento Windows Terminal Server

1. Roteamento Windows Terminal Server

TC
Tom_Skunk

(usa Ubuntu)

Enviado em 15/10/2009 - 17:02h

Estou tentando fazer um roteamento via iptables para o Windows Terminal Server (porta 3389. Já tentei todas as regras possíveis e imagináveis. Resumindo, a regra tipo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 3389 -s 0/0 -j DNAT --to-destination 192.168.x.xxx:3389 e outras semelhantes nao funcionam. Usando o redir eu consigo fazer o roteamento normalmente, mas tenho que parar o iptables. Será que existe algum milagre que faça esse mald*^&$ roteamento funcionar?


  


2. Re: Roteamento Windows Terminal Server

Rodrigo Outor Angelozi
rangelozi

(usa Ubuntu)

Enviado em 15/10/2009 - 17:51h

Abaixo a regra necessária para fazer redirecionamento, por favor configure conforme sua rede.

iptables -t nat -A PREROUTING -i ethx -s xxx.xxx.xxx.xxx -p tcp --dport 3389 -j DNAT --to xxx.xxx.x.x:3389

Abraço,


3. Re: Roteamento Windows Terminal Server

Adriano Rodrigues Balani
balani

(usa Slackware)

Enviado em 15/10/2009 - 21:38h

Amigo tive o mesmo problema, resolvi usando o redir, ele é muito mais flexivel e facil de usar.


4. Roteamento Windows Terminal Server

TC
Tom_Skunk

(usa Ubuntu)

Enviado em 19/10/2009 - 07:47h

Olá Balani. Também tive que usar o redir. Entretanto, para isso, tenho que deixar o iptables parado. Você conhece alguma regra que libere o redir no iptables?


5. Re: Roteamento Windows Terminal Server

Adriano Rodrigues Balani
balani

(usa Slackware)

Enviado em 19/10/2009 - 16:14h

Eu libero as portas no iptables, tipo:
iptables -A INPUT -p TCP -i eth1 --sport 3389 -j ACCEPT
iptables -A INPUT -p UDP -i eth1 --sport 3389 -j ACCEPT

Simplificando,libere as portas no iptables de forma geral igual acima, nas duas interfaces.

Faz um teste e me fala.


6. Re: Roteamento Windows Terminal Server

Adriano Rodrigues Balani
balani

(usa Slackware)

Enviado em 19/10/2009 - 16:19h

Desculpe, regras erradas,

Regras corretas:

iptables -A INPUT -p TCP --dport 3389 -j ACCEPT
iptables -A INPUT -p UDP --dport 3389 -j ACCEPT


7. Re: Roteamento Windows Terminal Server

Luciano Gomes
lucianopqd

(usa Ubuntu)

Enviado em 19/10/2009 - 16:20h

Amigo, tenta isso é tiro e queda: http://www.vivaolinux.com.br/dica/Redirecionamento-de-portas


8. Roteamento Windows Terminal Server

TC
Tom_Skunk

(usa Ubuntu)

Enviado em 19/10/2009 - 17:28h

Balani, não deu certo...

Lucianopqd, eu já havia usado essas regras do redir, e realmente funcionaram, só que somente com o iptables parado, e assim eu não posso deixar. Com o iptables ativo, o redir não funciona. Tem como usar o redir e o iptables em conjunto?


9. Re: Roteamento Windows Terminal Server

Richard Andrade
richardandrade

(usa Debian)

Enviado em 19/10/2009 - 19:21h

as regras corretas a seguir:

#iptables -t nat -A PREROUTING -s origem --dport 3389 -j DNAT --to-destination ip:3389
#iptables -A FORWARD --dport 3389 -j ACCEPT

Lembrando que você precisa colocar essas regras em lugares corretos ao seu script.

valeu e abraço.


10. Re: Roteamento Windows Terminal Server

Adriano Rodrigues Balani
balani

(usa Slackware)

Enviado em 19/10/2009 - 20:59h

Tem como vc postar o seu script do iptables, assim fica mais facil de te ajudar.


11. Roteamento Windows Terminal Server

TC
Tom_Skunk

(usa Ubuntu)

Enviado em 20/10/2009 - 11:20h

#!/bin/bash
#
#---------------------------------
# INICIA O FIREWALL
#---------------------------------#
case "$1" in
start)
I_LAN=eth0
I_NET=ppp0
# PORTAS="20,21,22,25,53,80,106,110,445,563,2390,3389"
REDE="192.168.1.0/24"
DNSPROVEDOR="xxx.xxx.xxx.xxx"

# Carrega os modulos do iptables
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Limpa as regras do iptables
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

# Flushing em todas as regras
iptables -F
iptables -t nat -F
iptables -t mangle -F

# Apaga chains que nao sao default
iptables -X
iptables -t nat -X
iptables -t mangle -X

# Define o bloqueio por padrao
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#iptables -t nat -P PREROUTING DROP
#iptables -t nat -P POSTROUTING DROP

#Abre uma faixa de portas para internet
# iptables -A INPUT -m multiport -p tcp --port $PORTAS -j ACCEPT

# Configuracao para o VOIP
iptables -A INPUT -m udp -p udp --dport 10000:20000 -j ACCEPT
iptables -A OUTPUT -m udp -p udp --dport 10000:20000 -j ACCEPT
iptables -A FORWARD -m udp -p udp --dport 10000:20000 -j ACCEPT
iptables -A INPUT -p udp --dport 5060 -j ACCEPT
iptables -A FORWARD -p udp --dport 5060 -j ACCEPT
iptables -A OUTPUT -p udp --dport 5060 -j ACCEPT

# Roteamento da porta 3389 - Windows Terminal Server
iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --dport 3389 -j ACCEPT
iptables -A INPUT -p udp -i eth1 --dport 3389 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 3389 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 3389 -j ACCEPT
iptables -A INPUT -p tcp -i ppp0 --dport 3389 -j ACCEPT
iptables -A INPUT -p udp -i ppp0 --dport 3389 -j ACCEPT
# iptables -t nat -A PREROUTING -i $I_NET -p tcp --dport 3389 -j DNAT --to 192.168.1.110:3389

# Habilita o repasse de pacotes
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $I_NET -j MASQUERADE

# Bloquear MSN, além do bloqueio no squid
iptables -A FORWARD -s $REDE -p tcp --dport 1863 -j REJECT
iptables -A FORWARD -s $REDE -p tcp --dport 5190 -j REJECT

# Desvia para o Squid
iptables -t nat -A PREROUTING -i $I_LAN -p tcp --dport 80 -j REDIRECT --to-port 3128

# Fecha as portas 1863 / 5190 para impedir que o MSN faça login.
iptables -I FORWARD -p tcp --dport 1863 -j DROP
iptables -I FORWARD -p tcp --dport 5190 -j DROP

#Abre uma faixa de portas para internet
# iptables -A INPUT -m multiport -p tcp --port $PORTAS -j ACCEPT
#iptables -A INPUT -m multiport -p tcp --port 10000:20000 -j ACCEPT

# Libera Bradesco
iptables -t nat -A PREROUTING -i eth0 -d 200.155.88.15 -p tcp --dport 80 -j ACCEPT
# Libera Caixa
iptables -t nat -A PREROUTING -i eth0 -d 200.201.166.200 -p tcp --dport 80 -j ACCEPT
# Libera Itau
iptables -t nat -A PREROUTING -i eth0 -d 200.246.143.40 -p tcp --dport 80 -j ACCEPT

# Micro win2003srv
#iptables -t nat -A PREROUTING -p tcp -m tcp --dport 3380 -s 0/0 -j DNAT --to-destination 192.168.1.110:3389
#iptables -t nat -A PREROUTING -p udp -m udp --dport 3380 -s 0/0 -j DNAT --to-destination 192.168.1.110:3389

#Abre uma faixa para loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -p tcp -s $REDE -j ACCEPT

# Aceita FTP
iptables -A FORWARD -p tcp --dport 20 -j ACCEPT
iptables -A FORWARD -p tcp --dport 21 -j ACCEPT

# Aceita SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

# Aceita SMTP
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT

# Aceita DNS
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

# Aceita HTTP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

# Aceita Hamachi
iptables -A INPUT -p tcp --sport 6352 -j ACCEPT
iptables -A FORWARD -p tcp --sport 6352 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 6352 -j ACCEPT
iptables -A INPUT -p udp --sport 6352 -j ACCEPT
iptables -A FORWARD -p udp --sport 6352 -j ACCEPT
iptables -A OUTPUT -p udp --sport 6352 -j ACCEPT

iptables -A OUTPUT -d 0/0 -p tcp --dport 5800:5999 -j ACCEPT
iptables -A INPUT -d 0/0 -p tcp --dport 5800:5900 -j ACCEPT
iptables -A FORWARD -d 0/0 -p tcp --dport 5800:5999 -j ACCEPT


# Aceita POP3
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT

# Aceita Proxy
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 3128 -j ACCEPT

########################## IP Masquerading ###################################

# Masq FTP
iptables -t nat -A POSTROUTING -s $REDE -p tcp --dport 20 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE -p tcp --dport 21 -j MASQUERADE

# Masq SSH
iptables -t nat -A POSTROUTING -s $REDE -p tcp --dport 22 -j MASQUERADE

# Masq POP3
iptables -t nat -A POSTROUTING -s $REDE -p tcp --dport 110 -j MASQUERADE

#Abre portas para UltraVNC
iptables -A INPUT -m multiport -p tcp --port 5900 -j ACCEPT
iptables -A INPUT -m multiport -p udp --port 5900 -j ACCEPT

#Protege contra synflood
iptables -N syn-flood
iptables -A INPUT -i $I_NET -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A syn-flood -j DROP

#Bloqueia Traceroute
iptables -A INPUT -p udp -i $I_NET --dport 33435:33525 -j DROP

# Protecao contra worms
iptables -A FORWARD -p tcp --dport 135 -i $I_LAN -j DROP

# Protege contra os "Ping of Death"
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# Protege contra os ataques do tipo "Syn-flood, DoS, etc"
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

# Protege contra todos os pacotes danificados e ou suspeitos ...
# iptables -A INPUT -m unclean -j DROP
# iptables -A FORWARD -m unclean -j DROP

# Permitir repasse (NAT,DNAT,SNAT) de pacotes estabelecidos e os relatados ...
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW,INVALID -j DROP
iptables -A FORWARD -m state --state NEW,INVALID -j DROP
iptables -A OUTPUT -m state --state NEW,INVALID -j DROP

# Protege contra port scanners avancados (Ex.: nmap)
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

# Protege contra pacotes que podem procurar e obter informacoes da rede interna ...
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP

# Protecoes contra ataques
iptables -A INPUT -m state --state INVALID -j DROP

# Performance - Setando acesso a web com delay minimo
iptables -t mangle -A OUTPUT -o $I_NET -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o $I_NET -p tcp --dport 80 -j TOS --set-tos Minimize-Delay

# Deixa passar as portas UDP do servidores DNS, e rejeita o restante
iptables -A INPUT -i $I_NET -p udp -s $DNSPROVEDOR -j ACCEPT
iptables -A INPUT -i $I_NET -p udp -s $DNSPROVEDOR -j ACCEPT
#iptables -A INPUT -i $I_NET -p udp -j DROP

# Bloqueia qualquer tentativa de conexao de fora para dentro por TCP
iptables -A INPUT -i $I_NET -p tcp --syn -j DROP

# Responde pacotes icmp especificados e rejeita o restante
iptables -A INPUT -i $I_NET -p icmp --icmp-type host-unreachable -j ACCEPT
iptables -A INPUT -i $I_NET -p icmp --icmp-type source-quench -j ACCEPT
iptables -A INPUT -i $I_NET -p icmp -j REJECT --reject-with icmp-host-unreachable

# libera conexoes de fora pra dentro
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 443 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 20 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 21 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT

# libera conexoes de dentro pra fora:
iptables -A OUTPUT -p tcp --destination-port 80 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 3306 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 20 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 21 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 86 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 5190 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 443 -j ACCEPT

# compartilha a web na rede interna
iptables -t nat -A POSTROUTING -s $REDE -o $I_NET -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

# Fecha todas as portas abaixo de 10000
# iptables -A INPUT -i $I_NET -p tcp --dport :10000 -j DROP

# bloqueia o resto
iptables -A INPUT -p tcp --syn -j DROP
iptables -A OUTPUT -p tcp --syn -j DROP
iptables -A FORWARD -p tcp --syn -j DROP

# bloqueia ping
# iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all


;;

#---------------------------------
# INTERROMPE O FIREWALL
#---------------------------------

stop)
# Limpa as regras do iptables
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

# Flushing em todas as regras
iptables -F
iptables -t nat -F
iptables -t mangle -F

# Apaga chains que nao sao default
iptables -X
iptables -t nat -X
iptables -t mangle -X
;;

#---------------------------------
# CHECA O STATUS DO FIREWALL
#---------------------------------

status)
clear
echo
echo
iptables -L
echo
;;

#---------------------------------
# REINICIA O FIREWALL
#---------------------------------

restart)
$0 stop
$0 start
echo
;;

#---------------------------------
# IMPRIME AS OPCOES NO CONSOLE
#---------------------------------#

*)
clear
echo
echo
echo "Uso correto : firewall.rc ( start|stop|status|restart)"
echo
echo
exit 1
echo
;;
esac
exit 0



12. Re: Roteamento Windows Terminal Server

Adriano Rodrigues Balani
balani

(usa Slackware)

Enviado em 20/10/2009 - 22:11h

Faz o seguinte tenta usar as politicas abaixo que estão como DROP, como ACCEPT:
de assim:
iptables -P INPUT DROP
iptables -P FORWARD DROP

deixar assim:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

Faz um teste, e me fala, as do meu script tive que deixar como accept, porem nunca tive problema.



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts