Tornar um servidor Linux acessível apenas por caixas confiáveis

1

Eu tenho três caixas de linux em uma rede (sejam elas A, B e C).

A é uma máquina servidora que fornece alguns serviços (ftp, samba, http). Eu quero esses serviços acessíveis apenas pela máquina B. Existe uma maneira, talvez usando ssh ou VPNs para atingir esse objetivo? Você também pode fornecer links sobre isso?

EDIT: De suas respostas eu entendo que não tenho sido muito claro sobre o foco na autenticação e também simplifiquei muito o problema. Basicamente não existe uma rede real. Há apenas um que tem um slot Ethernet "flutuante". Quando nosso cliente quer fazer a manutenção, ele conecta seu laptop (B) usando um cabo cruzado normal. Eu só quero evitar que um funcionário mal-intencionado possa anexar seu próprio laptop (C) e comece a usar serviços como o ftp, por exemplo. Sim, eu poderia usar senhas para serviços, mas gostaria de usar a proteção em um nível inferior (por exemplo, em uma base de conexão em vez de em uma base de serviço).

EDIT2: Basicamente, quero que apenas pessoas com o certificado correto consigam fazer networking com A.

    
por Emiliano 11.11.2010 / 16:23

4 respostas

2

Você pode usar o iptables para bloquear tudo, menos o SSH.

O serviço SSH (sshd) pode ser configurado para exigir logins baseados em chave e não permitir logins baseados em senha. Você poderia gerar pares de chaves RSA no servidor para cada usuário e fornecer ao usuário uma cópia da chave privada gerada depois de instalar a chave pública em seu arquivo ~ user / .ssh / authorized_keys.

Os usuários autorizados podem usar encapsulamento SSH para o SAMBA e o HTTP serviços (e usar SFTP em vez de FTP)

Você pode revogar / desativar o acesso renomeando ~ user / .ssh / authorized_keys

Não tenho certeza de como você controlaria, no servidor, outros usos inesperados do túnel. Mas talvez isso não seja um problema - desde que o usuário confiável proteja sua chave privada, nenhum usuário não confiável poderá acessar o servidor.

    
por 11.11.2010 / 18:20
3

Existem várias maneiras diferentes de realizar essa tarefa, dependendo de quanto trabalho você deseja colocar nesse nível e qual nível de paranóia você deseja ter.

  • Rede física: você pode configurar uma VLAN privada em que B e A têm uma conexão e os serviços de B só ouvem nessa rede específica. Isso não é necessariamente o mais flexível, já que qualquer host que você queira acessar os serviços de B também deve estar conectado a essa VLAN.
  • TCP Wrappers : são muito menos exigentes do que fazer isso em iptables e uma ordem de magnitude mais fácil de solucionar problemas.
  • IPtables: usado em conjunto com a rede física, seria bastante apertado e você pode seguir o link de Zypher para isso.
por 11.11.2010 / 16:40
2

Você é a melhor aposta, e a maneira mais simples de fazer isso seria usar o iptables.

deixe o ip do servidor B ser 192.168.1.20
No servidor A, crie uma cadeia como:

iptables -A INPUT -m tcp -p tcp -s 192.168.1.20/32 --dport 80 -j ACCEPT
iptables -A INPUT -m tcp -p tcp -s 192.168.1.20/32 --dport 21 -j ACCEPT
iptables -A INPUT -m tcp -p tcp -s 192.168.1.20/32 --dport 389 -j ACCEPT
...
iptables -A INPUT -m state --state RELATED,ESTABLISHED --j ACCEPT
iptables -A INPUT -j DROP

Isso basicamente diz ao firewall para permitir conexões a partir de um IP nas portas específicas, bem como em seu tráfego relacionado. Para ftp você terá que instalar o módulo ftp_contrak também.

Alguns iptables documentação para você começar.

  EDITES RE:

No exemplo de caso que você deu, eu apenas desligaria a porta e não a colocaria na inicialização. Quando você precisar fazer manutenção, ligue a porta. Além disso, se seu funcionário tiver acesso físico e intenções maliciosas, a conectividade de rede é a menor das suas preocupações.

    
por 11.11.2010 / 16:34
1

Você já pensou em usar uma VPN? Por exemplo, instale o OpenVPN nos servidores e configure o iptables para que somente a porta OpenVPN seja permitida nessa interface de manutenção cruzada. E talvez DHCP, se você quiser dar-lhes um endereço, em oposição a eles terem que abrir manualmente um IP. Em seguida, permita o FTP e os outros protocolos que você deseja apenas para os endereços de rede na VPN.

Cada funcionário autorizado teria sua própria chave e, se um funcionário o deixasse, poderia revogar a chave. Então você estaria protegido contra funcionários anteriores. Ou, se você não quisesse esse nível de proteção, poderia usar uma chave compartilhada em vez de uma autoridade de certificação.

    
por 14.11.2010 / 22:26

Tags