Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Servidor SSH (Secure Shell Hosting)
Linux user
danchiacchio
18/11/2010
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.
Por: Danilo Perillo Chiacchio
[ Hits: 12614 ]
Conceito: 9.8   2 voto(s)2 voto(s)2 voto(s)2 voto(s)2 voto(s) + quero dar nota ao artigo

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

Leitura recomendada

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 ;-)


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.