Servidor SSH (Secure Shell Hosting)

Venho mostrar como configurar um servidor SSH (tanto no lado servidor SSH, quanto ao lado do cliente SSH), tendo como plataforma de implementação do Debian Lenny.

[ Hits: 239.856 ]

Por: Danilo Perillo Chiacchio em 18/11/2010


Instalação



O SSH é dividido em dois módulos, um chamado "sshd", que é o módulo servidor, um serviço que fica residente na máquina que será acessada, enquanto que o "ssh" é o módulo cliente, um utilitário que você utiliza para acessar o servidor ssh.

1) Instalar o pacote openssh-server:

# apt-get update
# apt-get install openssh-server
(no Debian e derivados)

# yum update
# yum install openssh-server
(no Fedora e derivados)

2) Após instalar o pacote do SSH, ativar o serviço do mesmo. Por padrão na maioria das distribuições ele é configurado para subir no boot automaticamente, mas não custa verificar:

# /etc/init.d/ssh start (no Debian e derivados)

# service sshd start (no Red Hat, Mandriva, Fedora e CentOS)

Obs.: No CentOS, caso você instale o pacote do servidor SSH depois da instalação do sistema, é preciso configurar o serviço do ssh para inicializar junto com o sistema, através do comando:

# chkconfig sshd on (onde "sshd" é o nome do serviço do servidor SSH no CentOS)

3) Por padrão o protocolo SSH escuta na porta 22, onde passa a ser necessário liberá-la no firewall, case utilize um. O pacote do servidor SSH chama-se "openssh-server" e o pacote do cliente SSH chama-se "openssh-client", onde é possível realização da instalação somente de um deles mediante as necessidades.

Configuração do cliente SSH

Vamos abordar as principais opções que deve conter o arquivo de configuração do cliente SSH (nesse caso, o acesso será feito através de um cliente Linux a um servidor Linux).

As configurações do cliente SSH vão no arquivo /etc/ssh/ssh_config.

Exemplo do arquivo de configuração do cliente SSH (/etc/ssh/ssh_config):

ForwardX11 no
#Opção para "rodar" aplicativos gráficos remotamente via SSH.
#Para funcionar, essa opção deve estar habilitada no cliente - ForwardX11 yes - e
#também no servidor SSH. Vale ressaltar que o uso do modo gráfico no SSH
#é recomendado somente em uma rede local, e não na Internet, pois o
#protocolo do X é otimizado somente para uso local, sendo que para uso na
#Internet o mesmo irá consumir muita banda e apresentará muita lentidão,
#mesmo em conexões rápidas);

Compression = yes
#Essa opção, quando ativada, permite ativar a compressão dos dados através
#do do programa gzip. Com o seu uso há um ganho de performance em servidores
#que estão acessíveis via Internet;

Port 22
#Essa opção indica em qual porta o cliente SSH deve se conectar no servidor SSH.
#Lembrando que para funcionar, essa mesma porta deve estar configurada para
#o protocolo "escutar" no servidor SSH);

ServerAliveInterval 120
#Essa opção permite que a conexão do cliente SSH e o servidor não seja encerrada
#depois de alguns minutos de inatividade. Você pode especificar um tempo em
#segundos para que o cliente ssh envie pacotes periodicamente para o servidor ssh,
#com o objetivo de manter a conexão ativa);

Obs.: Como parte da segurança do SSH, ele utiliza um sistema de chaves assimétricas para verificar a identidade do servidor. O servidor possui uma chave pública, que é enviada ao cliente na primeira conexão. As identificações de todos os servidores conhecidos ficam armazenadas no arquivo .ssh/know_hosts, dentro do diretório home do usuário.

Caso ocorra algum problema ao se conectar ao servidor SSH devido a suspeita da chave remota - chave do servidor - ter sido alterada na tentativa de um ataque), basta remover a identificação do servidor no arquivo .ssh/know_hosts através do comando:

# ssh-keygen -R <Endereço IP do Servidor SSH>
# ssh-keygen -R 192.168.1.10


Com isso a identificação é removida e substituída por uma identificação de backup, que é feita antes do primeiro acesso por segurança. Isso pode ser feito excluindo o conteúdo do arquivo manualmente também.

As opções omitidas recebem valores padrões, onde somente é aconselhável inserir no arquivo as opções que conhece, com seus respectivos valores e também mediante a necessidade.

    Próxima página

Páginas do artigo
   1. Instalação
   2. Configuração do servidor SSH
   3. Usando chaves de autenticação
Outros artigos deste autor

Instalando e Configurando o SAMBA3 no FreeBSD 8.1 Release

Configuração de servidor DHCP no Debian Linux

Anon-Proxy no Debian Lenny

Leitura recomendada

Aquisição Estática de Dados em Computação Forense

Elevação de privilégios locais

Festa com SQL injection

Bloqueio de usuários com página de aviso

Sudoers 1.8.12 - Parte II - Manual

  
Comentários
[1] Comentário enviado por obernan em 09/01/2011 - 23:30h

Cara, valeu pelas boas dicas de ssh !!!!

[2] Comentário enviado por danchiacchio em 10/01/2011 - 11:07h

Bom dia Amigo obernan,

Que bom que lhe ajugou, fico muito feliz.

Abraços,
Danilo.

[3] Comentário enviado por andersonlves em 07/03/2011 - 12:39h

POw man
Muito bom seu artigo. Gostei muito.

Parabens

VC so pode me explicar qual a funcionalidade na pratica das seguintes linhas:

- banner
- Subsystem sftp /usr/lib/sftp-server
Obrigado

Anderson Pinho

[4] Comentário enviado por andersonlves em 07/03/2011 - 12:41h

Desculpe Danilo

Mais surgi outra dúvida

No lugar dos nomes de user liberados ou bloqueados eu posso criar um arquivo txt com os nomes?

Grato

Anderson Pinho

[5] Comentário enviado por danchiacchio em 07/03/2011 - 17:58h

Ola Amigo Anderson, tudo bem?

Segue abaixo algumas explicações:

SFTP (Secure File Transfer Protocol)

Cenário:
Debian Lenny 5.07;
OpenSSH 5.1;

SFTP pode ser considerado um programa (ou funcionalidade) que pode ser habilitada no servidor SSH. Ele é um ftp, mas como uma camada de segurança implementada pelo protocolo SSH.

Habiltando a utilização do mesmo no servidor SSH:

Passo 1: Editar o arquivo de configuração do servidor SSH e inserir a linha abaixo para podermos liberar o uso do modulo sftp:

Subsystem sftp /usr/lib/sftp-server

Passo 2: Feito isso, podemos reiniciar o servidor SSH, para que essa alteração entre em vigor. Podemos fazer isso atraves do comando:

# /etc/init.d/ssh restart

Passo 3: A partir de uma máquina cliente (pode ser Linux, BSD, Windows - desde que tenha suporte a SSH e ao cliente SFTP), vamos fazer o acesso ao servidor SFTP, atraves do comando abaixo:

# sftp -oPort=2222 root@192.168.1.200

Explicando:

-oPort=2222: Indica a utilização de uma opção extra ao comando "sftp". No caso, estou especificando a porta que o Servidor SSH está utilizando;

root@192.168.1.200: Aqui, estamos especificando o usuário@endereço IP do Servidor SSH;

Passo 4: Feito isso, bastamos aceitar a cópia da chave publica do servidor SSH (essa chave será copiada para o arquivo "known_hosts" em nosso diretório pessoal) e digitar a senha. Pronto, já estamos conectados no servidor SSH.

Passo 5: Um exemplo simples de utilização, é fazer o download de algum arquivo localizado no servidor SSH para a nossa máquina local. Quando conectados no servidor, um prompt parecido com o abaixo será mostrado:

sftp>

Para baixarmos o arquivo /etc/ssh/sshd_config do servidor para nossa máquina, basta digitar o comando abaixo:

sftp> get /etc/ssh/sshd_config

Sobre o banner, conforme está no artigo, ele é utilizado para mostrar algum mensagem ao usuário antes do logon via SSH.

Sobre a opção de arquivo externo para declarar usuários, eu acredito que não é possivel esse recurso. Mas, o que pode ser feito e que é muito util, e criar um grupo de usuários no sistema e inserir os usuários que terão acesso ao SSH. Assim, a linha abaixo pode ser inserida no arquivo de configuração do servidor SSH:

AllowGrups <Nome Grupo>

Espero ter ajudado.

Obrigado – Danilo ;-)

[6] Comentário enviado por tiagobls em 18/07/2016 - 21:21h

Boa noite, pessoal eu não sei se estou no artigo correto, mas creio que sim heheh.. Estou começando agr na plataforma Linux, e queria instalar um servidor SSH tunnel em minha máquina e acessar minha internet wifi em meu dispositivo android através do Http Injector, pra isso eu precisaria criar um user e senha no servidor, configurar porta 443 ou 22, configurar um host e proxy também. Alguém poderia me dar uma ajuda de como começar e por onde começar?

peço desculpa se não fui claro.
Obrigado desde já.

[7] Comentário enviado por danchiacchio em 18/07/2016 - 22:16h

Olá tiagobls, Boa Noite. Tudo bem?

Eu particularmente nunca precisei fazer isso, mas procurando na Internet encontrei alguns links e gostaria de compartilhar com você:

http://psiphonhandler.blogspot.com.br/2015/10/http-injector-aprenda-criar-configuracao.html
http://fenomenodanet.blogspot.com.br/2015/10/http-injector-como-criar-conta-ssh.html

Não sei se é exatamente o que procura, mas espero ter ajudado de certa forma.

Abraços,
Danilo.

[8] Comentário enviado por fernando_angeli em 08/08/2016 - 14:19h

Pessoal se alguém poder me ajudar por favor, agradeço , desculpem me se eu estiver no lugar errado pois sou novo por .
Minha dúvida é :
Eu tenho um servidor Debian na vdd estou tentando configurar , eu gostaria de acessa lo via Android , através da porta 443 e usar o IP do servidor como proxy na porta 80 , 8080, e amabas , tenho pequenas noções do sistema já atualizou os repositórios instalei o editor de texto nano e algumas coisas a mais , só estou perdido nessa questão do proxy, no meu caso eu quero fazer algo meu mesmo sem precisar usar aplicativos de terceiros para pode se conectar a internet desde agradeço pelo espaço/compreensão

[9] Comentário enviado por ionsisbr em 25/11/2016 - 06:12h

Preciso de uma grande ajuda:

Comprei um VPS CentOS e acesso via ssh.
Tem algum comando para restaurar a configiração de fabrica,
uma vez que comandos como MAKE não estao funcionando??????
Muito obrigado

[10] Comentário enviado por linus black em 19/05/2017 - 13:11h

ótimo artigo, mas vc poderia me dizer como eu poderia deixar isso automático exemplo:
quando o cliente entra na área do wifi do server ele autentica e transfere arquivo pré determinado
dês de já obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts