[Fedora-users-br] VPN - protegendo a rede interna.

Hugo Cisneiros hugo em devin.com.br
Sex Mar 3 18:08:26 UTC 2006


wanderlei wrote:
> Oi gente.. 

Hau!

> Eu to pensando em implementar algo mais robusto para quem sabe vender 
> uma ideia em futuros projetos, mas esbarrei com um problema que esta me 
> deixando doido..
>  
> Vamos imaginar que eu tenha uma rede formada por alguns servidores 
> dedicados com IPs validos, clientes acessando esses servidores e a 
> internet via NAT e esse mesmo servidor NAT é tb meu servidor de VPN 
> (linux).  Pra complicar um pouco mais vamos imaginar que eu tenha um 
> firewall fisico entre o router e a rede interna  :)..
>  
> A situação atual (vamos dizer)..
>  
> O firewall configuradom, direcionando todas as requisições para os 
> devidos servidores, inclusivo a autenticação no VPN Server.
>  
> O Problema (que naum existe mais com certeza vai existir)..
>  
> O cliente X contrata um serviço de Colocation e quer ter acesso SSH em 
> seu server, mas por segurança eu naum libero esse acesso direto,  faço 
> ele logar no meu VPN Server e ter um IP da minha rede interna, assim ele 
> vai ter acesso ao seu server por SSH sem problema (com algumas 
> configurações mas que naum vem ao caso)..
>  
> Porem, assim como ele tem acesso ao seu server ele tb tem acesso ao 
> restante da rede, é esse o pepino, como fazer para que ele tenha acesso 
> somente ao servidor que é dele e somente na porta que ele desejar seja 
> ela qual for??
 >
> A principio pensei em usar um IP FIXO (classo C) para cada cliente 
> pre-configurado no chap e/ou pap, assim eu saberia qual cliente estaria 
> com qual ip e assim com a ajuda do iptables eu criaria regras de alow e 
> deny. mas ai esbarro com outros problemas.

Configure na VPN para que quando estabelecer a conexao, o usuário que 
conectar receba um IP com máscara 255.255.255.252, e apenas rotas para a 
sua máquina do servidor. Assim o usuário fica preso a esta sub-rede 
virtual criada pela VPN :P

> Pergunto:
>  
> Existe, nas configurações do PPTPD algo que restrinja o acesso a uma ou 
> mais maquinas e principalmente, que cada permissão de acesso à server 
> possa ter configurações especificas (serviços)..

PPTPD? :-)
Isso é muito dependente do programa que você usa para fazer a VPN. 
Melhor procurar na documentação do programa que você usa para isso... 
Que você não disse qual era :P

Mas mesmo assim, para o que eu falei acima, se alguem acessa via SSH sua 
máquina interna, ela vai ter acesso às outras pois estará trabalhando na 
máquina local. Para resolver isso também há outra solução, implementar 
no servidor local em questão um firewall iptables que permita o usuário 
apenas trabalhar localmente a nível de rede.

Então uma boa prática de segurança para isso seria:

1. Restringir a VPN para apenas uma subnet de 2 IPs, exemplo: 
192.168.0.1 (servidor) e 192.168.0.2 (cliente). O próximo usuário seria 
192.168.0.5 (servidor) e 192.168.0.6 (cliente), e por aí vai. Inclusive 
aí você conseguiria por um cadastro saber quem está conectado ou não, 
comparando o cadastro com o IP associado ao cliente.

2. Como login SSH, criar um ambiente chroot para que o usuário não tenha 
nenhum outro acesso na máquina, a não ser no diretório que você quiser. 
O ambiente chroot deve conter apenas os binários e executáveis 
necessários para o cliente.

3. Habilitar os limites de processos, arquivos abertos, usos de memória 
e etc para cada usuário (via PAM, limits.conf), assim ele não conseguirá 
executar algo na sua máquina que consuma tudo e faça a máquina "cair de 
joelhos".

4. Utilizar o mecanismo "-m owner" do iptables (ver manpage dele, 
procurar por OWNER) para restringir o usuário para apenas rodar coisas 
localmente, sem acessar nada em outros IPs e redes.

Claro que isso vai depender muito do seu caso, e restringir um serviço 
de colocation por exemplo não é uma boa idéia :)

Se o cliente tem total acesso a máquina, então a solução seria comprar 
um switch gerenciável e adicionar VLANs para cada máquina da rede. Bem, 
  deu pra entender né? Dependendo do caso, as possibilidades podem ser 
infinitas.

> Agradeço ideias.

Qualquer coisa falaí! :D

> Wanderlei

-- 
[]'s
Eitch

http://www.devin.com.br/eitch/
"Talk is cheap. Show me the code." - Linus Torvalds




Mais detalhes sobre a lista de discussão Fedora-users-br