Iptables + TS - Controle de acesso externo
Bom dia!
Sou novo no forum e o procurei por conta de um problema. Temos um server (Fedora - FW/Proxy) trabalhando na matriz da empresa, o mesmo tem 2 interfaces, uma com um IP válido e uma local. As maquinas da filial acessam o servidor de terminais da matriz atraves de uma regra de PREROUTING e uma de POSTROUTING:
iptables -A PREROUTING -i eth1 -p tcp -s [ipvalidomatriz] --dport 3389 -j DNAT --to-destination 192.168.0.5
iptables -A POSTROUTING -s 192.168.0.5/32 -o eth1 -p tcp -j SNAT --to-source [ipvalidomatriz]
Onde 192.168.0.5 é um servidor Windows2003Server configurado como servidor de terminal (TS).
Os clientes na filial usam a area de trabalho remota e digitam o IP válido para se conectarem.
O problema é que qualquer pessoa que digite o IP de qualquer lugar pode acessar a rede.
Quero bloquear o acesso de forma que só o IP da filial acesse. O link da filial é Embratel e navegam por um IP válido(NAT). Fiz umas regras mas nao sei se estou certo. Gostaria de outras opiniões antes de testar no servidor.
Regras:
iptables -A INPUT -p tcp -i eth1 -s [ipdafilial] --dport 3389 -j ACCEPT
iptables -A OUTPUT -p tcp -o eth1 -s [ipdafilial] --dport 3389 -j ACCEPT
iptables -A FORWARD -p tcp -o eth1 -s 192.168.0.5 --dport 3389 -j ACCEPT
iptables -A INPUT -p tcp -i eth1 -j LOG
iptables -A OUTPUT -p tcp -i eth0 -j LOG
#iptables -A INPUT -p tcp -i eth1 -p tcp --dport 3389 -j REJECT
#iptables -A INPUT -p tcp -o eth1 -p tcp --dport 3389 -j REJECT
iptables -A PREROUTING -i eth1 -p tcp -s [ipvalidomatriz] --dport 3389 -j DNAT --to-destination 192.168.0.5
iptables -A POSTROUTING -s 192.168.0.5/32 -o eth1 -p tcp -j SNAT --to-source [ipvalidomatriz]
Onde eth1 é a interface externa e eth0 interna.
Comentei essas linhas pois um amigo disse que como eu aceitei um determinado IP para porta do TS (3389), os outros já serão negados por default. Procede?
Se esta lógica nao estiver correta aceito sugestoes.
Espero que essa questão sirva para aumentar e disseminar o conhecimento nessa área.
Obrigado!
Re: Iptables + TS - Controle de acesso externo
Informo que a regra está correta, realize os testes e coloque aqui os resultados.
Re: Iptables + TS - Controle de acesso externo
Só poderei testar no próximo fim de semana. Até lá se alguém discordar do eltonlima quiser acrescentar algo ou mesmo sugerir outro raciocínio agradeço.
Obrigado por responder elton, valeu!
Re: Iptables + TS - Controle de acesso externo
Digamos que assim:
200.200.200.200 - IP da Rede Externa onde tem o TS na rede interna...
300.300.300.300 - IP da Maquina a qual vai acessar o 200.200.200.200..
O que eu vou fazer é: Somente o 300.300.300.300 vai ter acesso ao 200.200.200.200 na porta 3389.. Outros clientes que tentarem acessar o 200.200.200.200 na porta 3389 não terão acesso.. Seria isso que vc quer?
iptables -t nat -A POSTROUTING -d 200.200.200.200 -p tcp --dport 3389 -s 300.300.300.300 -j DNAT --to 192.168.0.5:3389
Ou vc pode fazer:
iptables -A INPUT -s 300.300.300.300 -p tcp --dport -j ACCEPT
iptables -t nat -A POSTROUTING -d 200.200.200.200 -p tcp --dport 3389 -j DNAT --to 192.168.0.5:3389
iptables -A INPUT -p tcp --dport 3389 -j DROP
Qq coisa pergunte =D
OBS: Pode dar uma olhada em Firewall com IPTABLES - by Eriberto Show de bola o tuto!
Re: Iptables + TS - Controle de acesso externo
Galera, testei as regras e pra minha surpresa não deu certo. E não foi por conta das regras em si.
O iptables foi configurado como serviço. Uma outra pessoa o configurou antes de eu entrar na empresa.
O arquivo começa com:
*nat
PREROUTING[234:3456]
POSTROUTING[1044:5456]
OUTPUT[102:988]
regras:
-A PREROUTING .....
-A POSTOROUTING .....
as regras nao tem a palavra iptables, já começa do -A
COMMIT
*filter
INPUT [234:9452]
OUTPUT[345:2845]
FORWARD[123:98458]
regras:
-A INPUT ....
-A OUTPUT....
COMMIT
O ponto é que tentei renomear o iptables ativo e colocar o meu arquivo como o novo iptables. E quem disse que o sistema reconhece o arquivo?!
Na descrição da tables nat e dos PREROUTINGS e tal até que vai. Mas na hora que chega no COMMIT dá erro. error line 30. comentei a linha e também não reconhece *filter. Ai tive que dar um iptables-restore pra voltar o que era antes. Com o arquivo original o serviço roda sem problemas, mas se trocar, mesmo que tenha o mesmo conteúdo não roda.