TS no firewall [RESOLVIDO]

1. TS no firewall [RESOLVIDO]

Rodrigo Hlatki
rodrigoh79

(usa Debian)

Enviado em 11/10/2010 - 13:17h

Blz galera. Dou descrever bem o assunto pois ká não sei mais o que fazer e preciso resolver com urgência. Implementei um proxy/firewall (Debian 5 com iptables e squid). Tenho o seguinte ambiente: Servidor Windows Server 2008 com Terminal Services. As estações com windows xp e Seven devem acessar via TS Local (raramente externo) o servidor para rodar o programa de contabilidade. Simplesmente não acessa. Dá erro na hora de conectar. Já percorri internet afora atrás de dicas e tutoriais. Nada resolveu. Segue meu script de firewall para análise. Já formatei, reinstalei, configurei do zero de novo, testei com outro script. Nada. Meu modem está como bridge, sem nenhuma configuração extra (DMZ e NAT).


## Ativa Modulos
# -------------------------------------------------------
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_LOG
modprobe ipt_limit
modprobe ipt_state
modprobe ipt_REDIRECT
modprobe ipt_owner
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

## Zera regras
# -------------------------------------------------------
iptables -F
iptables -Z
iptables -X
iptables -t nat -F

## Determina a politica padrao
# -------------------------------------------------------
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

## Ativa roteamento no kernel
# -------------------------------------------------------
echo "1" > /proc/sys/net/ipv4/ip_forward

echo "1" > /proc/sys/net/ipv4/ip_dynaddr

echo "1" > /proc/sys/net/ipv4/tcp_syncookies

echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route

echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects

echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects

echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

## Abre para a interface de loopback.
# -------------------------------------------------------
iptables -A INPUT -s 127.0.0.1 -i lo -j ACCEPT
#iptables -A INPUT -s 192.168.3.0 -i lo -j ACCEPT
#iptables -A INPUT -s 192.168.2.0 -i lo -j ACCEPT

## ACCEPT (libera) pacotes de retorno da internet
# -------------------------------------------------------
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

## Libera o HTTP
# -------------------------------------------------------
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

## DNS - Libera a resolucao de nomes
# -------------------------------------------------------
#INPUT
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT

## DHCP
# -------------------------------------------------------
#iptables -A INPUT -p udp -i eth1 --sport 79 -d 192.168.2.254 -j ACCEPT

## Mascaramento de rede para acesso externo
# -------------------------------------------------------
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

## Redirencionar portas 80 para 3128
# -------------------------------------------------------
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3128

# -------------------------------------------------------
iptables -I FORWARD -p tcp -i eth1 --dport 80 -j ACCEPT
iptables -I FORWARD -p tcp -i eth1 --dport 443 -j ACCEPT

## Fechando LocalHost:
# -------------------------------------------------------
iptables -A INPUT -m tcp -p tcp -s 127.0.0.1 --dport 3128 -j DROP

## Libera a conexao para a rede interna
# -------------------------------------------------------
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

## TLL
# -------------------------------------------------------
iptables -t mangle -A OUTPUT -o ppp0 -j TTL --ttl-set 200

## Aceita conexoes vindas da rede interna com destino ao web server
# -------------------------------------------------------
iptables -A INPUT -p tcp -i eth1 --syn --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 --syn --dport 443 -j ACCEPT

## Abre para uma faixa de endereco da rede local
# -------------------------------------------------------
iptables -A INPUT -p tcp --syn -i eth1 -j ACCEPT

## Abre rede
# -------------------------------------------------------
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
iptables -A INPUT -i ppp0 -j ACCEPT
iptables -A OUTPUT -o ppp0 -j ACCEPT

## Libera o MSN
# -------------------------------------------------------
#iptables -A INPUT -p tcp --dport 1863 -j ACCEPT

## Terminal Server
# -------------------------------------------------------
iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 3389 -i ppp0 -j DNAT --to 10.1.1.150:3389

## VNC
# -------------------------------------------------------
#iptables -A INPUT -p tcp --dport 5900 -j ACCEPT
#iptables -A INPUT -p tcp --dport 5800 -j ACCEPT

## Liberando SSH (porta 6689 e 22 )
# -------------------------------------------------------
iptables -A INPUT -p tcp --dport 6689 -j ACCEPT

## Liberando Webmin (porta 332)
# -------------------------------------------------------
iptables -A INPUT -p tcp --dport 332 -j ACCEPT

## Libera o mysql
# -------------------------------------------------------
#iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
#iptables -A INPUT -p tcp --dport 3310 -j ACCEPT

## Libera o POP SMTP
# -------------------------------------------------------
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT #SMTP
#iptables -A INPUT -p tcp --dport 110 -j ACCEPT #POP
#iptables -A INPUT -p tcp --dport 465 -j ACCEPT #SMTP
#iptables -A INPUT -p tcp --dport 587 -j ACCEPT #SMTP
#iptables -A INPUT -p tcp --dport 995 -j ACCEPT #POP

## Fechando as portas do samba caso fique de cara para a internet.
# -------------------------------------------------------
iptables -A INPUT -p tcp -i ppp0 --syn --dport 137 -j DROP
iptables -A INPUT -p tcp -i ppp0 --syn --dport 138 -j DROP
iptables -A INPUT -p tcp -i ppp0 --syn --dport 139 -j DROP
iptables -A INPUT -p tcp -i ppp0 --syn --dport 445 -j DROP

## Bloqueando U89 - software burlador de proxy
# -------------------------------------------------------
iptables -A FORWARD -p tcp --dport 9666 -j DROP

##Bloqueio de Multicast
# -------------------------------------------------------
iptables -A INPUT -s 224.0.0.0/8 -d 0/0 -j DROP
iptables -A INPUT -s 0/0 -d 224.0.0.0/8 -j DROP

##Bloqueio de Black Orifice
# -------------------------------------------------------
iptables -A INPUT -p tcp -i ppp0 --dport 12345:12345 -j DROP
iptables -A INPUT -p udp -i ppp0 --dport 12345:12345 -j DROP

##Bloqueio acesso X server
# -------------------------------------------------------
iptables -A INPUT -p tcp -i ppp0 --dport 5999:6003 -j DROP
iptables -A INPUT -p udp -i ppp0 --dport 5999:6003 -j DROP
iptables -A INPUT -p tcp -i ppp0 --dport 7100 -j DROP

##Bloqueio de NetBus
# -------------------------------------------------------
iptables -A INPUT -p tcp -i ppp0 --dport 31337 -j DROP
iptables -A INPUT -p udp -i ppp0 --dport 31337 -j DROP

##Proteç Contra IP Spoofing
# -------------------------------------------------------
iptables -A INPUT -s 10.0.0.0/8 -i ppp0 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -i ppp0 -j DROP
iptables -A INPUT -s 172.16.0.0/16 -i ppp0 -j DROP
iptables -A INPUT -s 192.168.0.0/24 -i ppp0 -j DROP

## Protecao diversas contra portscanners, ping of death, ataques DoS, etc.
# -------------------------------------------------------
#INPUT
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state INVALID -j REJECT
iptables -A INPUT -p tcp -i ppp0 --dport 1023:65535 -j ACCEPT
iptables -A INPUT -p udp -i ppp0 --dport 1023:65535 -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p udp -s 0/0 -i ppp0 --dport 33435:33525 -j REJECT
iptables -A INPUT -p icmp -i ppp0 -j DROP
iptables -A INPUT -p icmp --icmp-type echo-reply -s 0/0 -i ppp0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -s 0/0 -i ppp0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -s 0/0 -i ppp0 -j ACCEPT
iptables -A OUTPUT -p icmp -o ppp0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -p icmp -j DROP
iptables -A INPUT -i ppp0 -p tcp --syn -j DROP

#FORWARD
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --dport 135 -i ppp0 -j REJECT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP

#VALID
iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP

# Protecao contra port scanners
# -------------------------------------------------------
iptables -N SCANNER
iptables -A SCANNER -m limit --limit 5/m -j LOG --log-level 6 --log-prefix "FIREWALL: port scanner: "
iptables -A SCANNER -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL NONE -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL ALL -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i ppp0 -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i ppp0 -j SCANNER

# Protecao contra tronjans
# -------------------------------------------------------
iptables -N TROJAN
iptables -A TROJAN -m limit --limit 5/m -j LOG --log-level 6 --log-prefix "FIREWALL: trojan: "
iptables -A TROJAN -j DROP
iptables -A INPUT -p tcp -i ppp0 --dport 666 -j TROJAN
iptables -A INPUT -p tcp -i ppp0 --dport 666 -j TROJAN
iptables -A INPUT -p tcp -i ppp0 --dport 4000 -j TROJAN
iptables -A INPUT -p tcp -i ppp0 --dport 6000 -j TROJAN
iptables -A INPUT -p tcp -i ppp0 --dport 6006 -j TROJAN
iptables -A INPUT -p tcp -i ppp0 --dport 16660 -j TROJAN

# Protecao contra trinoo
# -------------------------------------------------------
iptables -N TRINOO
iptables -A TRINOO -m limit --limit 5/m -j LOG --log-level 6 --log-prefix "FIREWALL: trinoo: "
iptables -A TRINOO -j DROP
iptables -A INPUT -p tcp -i ppp0 --dport 1524 -j TRINOO
iptables -A INPUT -p tcp -i ppp0 --dport 27444 -j TRINOO
iptables -A INPUT -p tcp -i ppp0 --dport 27665 -j TRINOO
iptables -A INPUT -p tcp -i ppp0 --dport 31335 -j TRINOO
iptables -A INPUT -p tcp -i ppp0 --dport 34555 -j TRINOO
iptables -A INPUT -p tcp -i ppp0 --dport 35555 -j TRINOO

##Negar Ident
# -------------------------------------------------------
iptables -A INPUT -p tcp -m tcp --dport 113 -j REJECT --reject-with tcp-reset

## Reset em conexoes para portas desconhecidas
# ---------------------------------------------------------
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset

## Esta regra e coracao do firewall ,
# -------------------------------------------------------
iptables -A INPUT -p tcp --syn -j DROP

Conecto a net através do pppoeconf. minha rede interna tem faixa de ip 10.1.1.0, a eth0 (ligada ao modem) está com 192.168.1.3 e o modem com 192.168.1.1.
Já estou tão ferrado que aceito scripts prontos, ou um endereço de msn para ajuda.
Grato desde já.


  


2. MELHOR RESPOSTA

Alcimar
arc

(usa Slackware)

Enviado em 12/10/2010 - 13:45h

Rodrigo com as regras abaixo no seu firewall somente o INPUT está com DROP, pq vc esta aceitando novos pacotes tanto no OUTPUT como FORWARD

## ACCEPT (libera) pacotes de retorno da internet
# -------------------------------------------------------
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

Você não precisa ficar fazendo todos aquelas proteções no INPUT por que ele esta como DROP então seu script ficou muito grande e redundante.

Aqui uso o redirecionamento da seguinte forma e funciona de boa.

#iptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.200:3389

Detalhe no servidor de TS o gateway dele é o seu firewall? Por que por esses dias tive um problema em derterminado cliente que não fazia redirecionamento quando fui ver o pessoal tinha tirado o gateway da maquina para ninguém acessar a internet.


3. prolixidade...

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 11/10/2010 - 13:39h

nota: seu firewall é (IMHO) desnecessáriamente longo e prolixo, melhor seria estabelecer a policy DROP para input/forward e permitir apenas o necessário. Não é "black orifice", é "Back Orifice", um pequeno exploit ;) criado pela galera do Cult of the Dead Cow. Hoje em dia, em desuso.

bem, aos fatos: seu problema (aparentemente) está no redirecionamento; sugiro FORTEMENTE a leitura atenta dêste post do Magnum (um "papa" no assunto): http://under-linux.org/blogs/magnun/%5Bdica%5D-problema-comum-no-redirecionando-com-iptables-nat-sna...

flames > /dev/null


4. Re: TS no firewall [RESOLVIDO]

leonardo Souza
lejoso

(usa Debian)

Enviado em 11/10/2010 - 14:08h

Boa Tarde,

Sinceramente não entendi uma coisa. Vocẽ está na rede local e está tentando acessar o servidor TS que está na mesma rede. Se for isso essas requisições não passarão pelo firewall, aí pode ser algo no servidor de TS.
Caso não seja isso, favor postar qual o ip da estação que está testando e o ip do servidor TS também.

Att,




5. Estranho

Rodrigo Hlatki
rodrigoh79

(usa Debian)

Enviado em 11/10/2010 - 15:28h

é estranho, mas não é o servidor. Pq eu retiro o proxy, configuro o modem adsl e faço nat no modem para a porta 3389 apontando pro servidor e volta a fundionar. Na verdade era assim que funcionava antes, agora que o cliente decidiu por proxy.


6. Re: TS no firewall [RESOLVIDO]

Rodrigo Hlatki
rodrigoh79

(usa Debian)

Enviado em 11/10/2010 - 15:34h

Irado, as políticas são DROP para imput e forward.


7. Re: TS no firewall [RESOLVIDO]

Rodrigo Hlatki
rodrigoh79

(usa Debian)

Enviado em 11/10/2010 - 15:40h

jejoso, é assim: o servidor é 10.1.1.150, e uma outra estação com a mesma faixa 10.1.1.0. Ambos sob a máscara 255.255.255.0


8. Re: TS no firewall [RESOLVIDO]

Rodrigo Hlatki
rodrigoh79

(usa Debian)

Enviado em 11/10/2010 - 15:55h

Irado, vc pode então apontar as falhas e me mostrar como melhorá-las. Essa tua crítica ficou meio no ar. Que meu firewall tá uma zica eu sei.


9. Re: TS no firewall [RESOLVIDO]

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 11/10/2010 - 21:22h

"Irado, vc pode então apontar as falhas e me mostrar como melhorá-las. Essa tua crítica ficou meio no ar. Que meu firewall tá uma zica eu sei."

nunca deixo nada no ar.. mas também não resolvo nada para ninguém, só aponto caminhos e meios ;)

se policy é drop pra que vc precisa de regras drop? redundância? isso agrada os gerentes que são cunhados do dono, e só a êles ;)

tudo o que eu um dia imaginei dizer já foi dito, cabe a vc ler e aprender ;)

http://www.google.com.br/custom?domains=www.vivaolinux.com.br&sitesearch=www.vivaolinux.com.br&a...

divirta-se ;)

flames > /dev/null





10. Re: TS no firewall [RESOLVIDO]

Rodrigo Hlatki
rodrigoh79

(usa Debian)

Enviado em 11/10/2010 - 22:05h

Não estou pedindo nada pronto Irado, estou pedindo uma ajuda para corrigir meu script. Mas vc preferiu apontar que escrevi black orifice ao invés de back orifice. Se vc fizer uma crítica mais construtiva talvez eu possa aprender, assim como vc sugeriu. Vc me apontou o google, se eu estou pedindo ajuda aqui é pq já pesquisei bastante e não encontrei a solução. Afinal o intuito de um fórum é ajudar a galera, ou não? Mas nem esquente. Alguém outro vai me ajudar. Mesmo assim, obrigado.


11. faça por merecer

irado furioso com tudo
irado

(usa XUbuntu)

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

caro bonequinho arrogante: vc não merece ajuda. Se tivesse tido curiosidade mínima para seguir o link veria que.. bem.. não interessa.

como eu disse, vc NÃO MERECE ajuda. Quem sabe um dia, quando baixar a crista de noob e começar a se interessar DE FATO por aprender.

fique bem,

Cya.

flames > /dev/null


12. Re: TS no firewall [RESOLVIDO]

Rodrigo Hlatki
rodrigoh79

(usa Debian)

Enviado em 11/10/2010 - 22:24h

E eu é que sou o arrogante hein? Deixe quieto.



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts