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