Como posso configurar o SSH para que fique restrito à minha rede local?

33

Estou tentando vincular meu novo laptop rodando 11.10 ao meu laptop rodando 8.04 através do meu roteador usando SSH.

Esta pergunta é feita e respondida no ubuntuforums aqui:

http://ubuntuforums.org/showthread.php?t=1648965

Eu pensei que seria útil ter uma resposta mais definitiva aqui.

Nota: Eu precisava primeiro instalar o openssh-server no laptop ao qual estava tentando conectar e abrir a porta SSH no meu firewall usando o firestarter.

klenwell
fonte
você pode nos dizer o que não é "definitivo" o suficiente sobre a resposta do slooow nesse tópico? Caso contrário, sua pergunta parece ambígua.
23412 d_inevitable
@d_inevitable Por um lado, não é a única resposta e não é indicada como correta. É o que eu escolheria, mas é por isso que pensei que seria útil migrar essa pergunta. Também pode ajudar a incluir instruções gerais, ou um link útil, na configuração do SSH entre duas máquinas locais.
klenwell

Respostas:

46

Você pode restringir o acesso ao seu servidor ssh de várias maneiras.

Na IMO, o mais importante é usar as teclas ssh e desativar a autenticação de senha.

Veja as seguintes páginas wiki para detalhes

https://help.ubuntu.com/community/SSH/OpenSSH/Keys

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#Disable_Password_Authentication

Você pode restringir o acesso a uma sub-rede específica de várias maneiras. Assumirei que seu servidor ssh está na sub-rede 192.168.0.0/16 com um endereço IP 192.168.0.10, ajuste de acordo;)

Roteador

Uma linha de defesa é usar um roteador. Certifique-se de desativar o UPnP e não permitir o encaminhamento de porta.

Configuração SSH

Você pode definir várias opções no /etc/ssh/sshd_config. Um é o endereço de escuta. Se você definir um endereço de escuta na sua sub-rede. Um endereço IP privado não é roteável pela Internet.

http://compnetworking.about.com/od/workingwithipaddresses/f/privateipaddr.htm

ListenAddress 192.168.0.10

Você também pode usar o AllowUsers

AllowUsers [email protected]/16

Um pouco relacionado, você também pode alterar a porta

Port 1234

Veja http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html

Wrapper TCP

Conforme descrito na postagem do fórum, você pode usar o TCP Wrapper. O wrapper TCP usa 2 arquivos /etc/hosts.allowe/etc/hosts.deny

Edite /etc/hosts.allowe adicione sua sub-rede

sshd : 192.168.0.

Editar /etc/hosts.denye negar tudo

ALL : ALL

Consulte também http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/

Firewall

Por último, você pode firewall do seu servidor. Você pode usar iptables, ufw ou gufw.

iptables

sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

Por favor, não use DROP no iptables, consulte http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject

ufw

sudo ufw allow from 192.168.0.0/16 to any port 22

gufw tem uma interface gráfica

GUFW

Veja https://help.ubuntu.com/community/UFW

https://help.ubuntu.com/community/IptablesHowTo

Pantera
fonte
Algumas redes usam 10.0.0.0 como endereço IP; nesse caso, substitua 192.168.0.0/24 por 10.0.0.0/8 para permitir o intervalo 10.0.0.0-10.255.255.255. Se você deseja permitir apenas um único IP, use algo como 192.168.1.2/32. Um muito detalhado explicação pode ser encontrada em [ serverfault.com/q/49765/51929](How faz Subnetting Trabalho)?
Lekensteyn
1
Por favor, não use o DROP em iptables - Veja chiark.greenend.org.uk/~peterb/network/drop-vs-reject
Panther
Essa página não menciona IPs falsificados como um possível motivo para usar o DROP over REJECT. Esta resposta no Sec.SE explica por que não é realmente relevante (os pacotes de origem são maiores que os pacotes retornados).
Lekensteyn
@Lekensteyn - não vi uma discussão sobre IP falsificado nesse link. Como você sugere, o DDoS e o IP falsificado estão além dessa discussão e não estou convencido de que o DROP seja superior ao REJECT para muitas coisas. Os DDos são complexos e, sem informações sobre a causa dos DDos, é impossível defendê-los. Por exemplo, eu vi o WP usado como DDoS e a solução do problema está na configuração adequada do WP e pouco ou nada a ver com o iptables.
Pantera
ListenAddressparece ser o mais simples e mais elegante solução
code_monk
1

O ssh (shell seguro) é usado para acessar e transferir dados com segurança (par RSA_KEYS usado). Você pode acessar os dados usando o ssh de duas maneiras 1. Linha de comando 2. usando o navegador de arquivos

Linha de Comando: Para isso, você não precisa instalar nada. A primeira tarefa é fazer login em outro computador.

ssh other_computer_username@other_computer_ip

Este comando solicitará uma senha que seja a senha do outro computador (para um nome de usuário específico). Você acabou de fazer login no shell de outro computador. Pense que este terminal é como o terminal do seu computador. Você pode fazer tudo usando o shell em outro computador que você pode fazer no seu computador

Navegador de arquivos: você precisa instalar o openssh-server

sudo apt-get install openssh-server

Para efetuar login, vá para arquivo-> connectToServer

insira a descrição da imagem aqui

shantanu
fonte
As instruções da linha de comando foram a primeira coisa que tentei. Consegui executar ping no meu outro computador no IP da LAN. Mas quando tento SSH, ele trava. Portanto, presumo que tenho que configurar meu outro computador para permitir o acesso SSH primeiro.
klenwell
certifique-se de que o seu roteador não bloquear porta 22 ou ssh
shantanu
obrigado. Eu já sabia tudo o que você mencionou por experiência própria, mas foi uma grande facilidade ouvi-la simples e estruturada de outra pessoa.
lakesare