Você está na página 1de 10

SSH

Desenvolvido por Tatu Ylonen em 1995 para uso no Unix, o SSH (Secure Shell)
um um protocolo de rede de criptografia para comunicao segura de dados (pacote
de programas), utilizado como ferramenta de acesso remoto, atravs de linha de
comandos de login remoto, cujo objetivo aumentar a segurana de um sistema de
redes.

Funcionamento do SSH
O SSH utiliza um fortssimo mtodo de criptografia, denominado de Public Key
Cryptography, que fornece a autenticao e encriptao entre hosts cliente e
servidor para que nenhum usurio e nenhum dado sejam interceptados por outros
hosts.
Neste processo de troca de informaes usado uma chave pblica (public key)
para encriptao dos dados e uma chave privada (private key) para desencriptao.
Assim, antes de um host estabelecer conexo com outro host, eles passam por um
processo de "reconhecimento" de troca de chaves pblicas onde o host de origem
envia sua chave pblica para o host de destino reconhec-la, e o host de destino faz
o mesmo com o host de origem. Concluda a troca das chaves, a comunicao
passa a ser realizada com segurana.
O SSH existe em duas verses, a verso Cliente e Servidor.

Cliente SSH
Por padro a verso cliente j vem instalada na distribuio GNU/Linux.
A porta padro do servio ssh 22.
Mas caso isto no ocorra, a instalao dever ser feita atravs dos seguintes
comandos:
apt-get update
apt-get upgrad
apt-get install ssh
Aps a instalao do pacote ssh deve ser feita as configuraes, realizadas no host
cliente do GNU/Linux, no arquivo /etc/ssh/ssh_config.
Um exemplo bsico do arquivo /etc/ssh/ssh_config:
ForwardX11 no
Opo para utilizao de aplicativos grficos remotamente via SSH, devendo ser
ForwardX11 yes, tambm no servidor SSH. desaconselhvel usar o modo grfico
em internet por usar munta banda. Portanto, deve ser usado somente em rede local.
Compression = yes
Quando ativada permite ativar a compresso dos dados atravs do compactador
gzip.
Port 22
Informa em qual porta o cliente SSH deve se conectar no servidor SSH. Para
funcionar, essa mesma porta deve estar configurada para o protocolo "escutar" no
servidor SSH.
ServerAliveInterval 120
Permite que a conexo do cliente SSH e o servidor no seja encerrada depois de
alguns segundos .Deve ser configurado um tempo em segundos para manter a
conexo ativa;
Para utilizao do do Cliente SSH, na conexo a um servidor SSH deve ser usado
o seguinte comando:
ssh usuario@ip
Exemplo 1:
ssh jarbasfc@192.168.0.2
Exemplo 2:
ssh jarbasfc@nome_do_servidor_ssh

Servidor SSH
A porta padro do servio ssh 22.
Para criarmos um Servidor SSH a instalao dever ser feita atravs dos seguintes
comandos:
apt-get update
apt-get upgrad
apt-get install openssh-server
Aps a instalao do pacote openssh-server devemos efetuara as configuraes,
realizadas no Servidor SSH no arquivo /etc/ssh/sshd_config, atravs de um editor de
texto (pico, nano, vi, vim, gedit) conforme comando:
pico /etc/ssh/sshd_config
Basicamente devem ser editadas as linhas a seguir, deixando as demais como
padro, se desejar:
Sugesto de configurao de um Servidor SSH
############### Incio do Arquivo de Configurao #############
# Package generated configuration file
# See the sshd(8) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# escolha a porta de onde o seu servidor receber as conexes
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2 # protocolo a ser usado pelo servidor (Existem as verses 1 e 2)
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes # cria um processo com ou sem privilegios para tratar as conexes iniciais
# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600 # Tempo para o seu servidor criar novas chaves
ServerKeyBits 768
# Logging
SyslogFacility AUTH
LogLevel INFO

# nvel de detalhamento das mensagens exibidas nos logs

# define opo de mensagens dos logs

# Authentication:
LoginGraceTime 120 # estabelece tempo por inatividade na conexo SSH
PermitRootLogin yes # essa opo define se o usurio root pode ou no se conectar via SSH
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no # permite ou no a opo de senhas em branco
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no
# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no # especifica que o usurio tem que logar ou no no sistema em qual se conectar
#MaxStartups 10:30:60
#Banner /etc/issue.net
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
###### Fim do arquivo de configurao /etc/ssh/sshd_config ########

Dicas para Tornar o seu servidor de acesso remoto mais seguro:


1. Use senhas fortes: No use senhas fceis, muito menos pequenas, de preferncia
assimtricas e sem padro (nada de "letra numero letra numero." ou "numero letra
numero letra.") e faa bom uso dos caracteres como @,#,$,&...;
2. Mude a porta do ssh: S com isso minimizamos problemas com um ataque
automatizado, ou ataques de script kiddies que no sabem mudar a porta do ssh no
exploit que baixaram da internet. Isso pode ser feito atravs da opo 'Port' do
/etc/ssh/sshd_config.
3. Bloqueie o acesso como usurio root: Assim, evitam-se problemas de algum
conseguir quebrar a senha do root e j acessar com plenos poderes. Com isso, o
'atacante' teria que descobrir o login e password de um usurio e depois a senha do
root. Isso pode ser feito adicionando 'PermitRootLogin no' no /etc/ssh/sshd_config.
4. Certifique-se de o sshd est rodando com separao de privilgios: Dessa forma
o sshd cria um processo no privilegiado para tratar as conexes iniciais. Aps
sucesso na autenticao, cria outro processo que tem os privilgios necessrios.
Isso default no ssh, mas devemos garantir que NO exista uma linha com
'UsePrivilegeSeparation no' no /etc/ssh/sshd_config.
Aps a edio do arquivo sshd_config dever ser reiniciado o servio atravs do
seguinte comando:
/etc/init.d/ssh stop
/etc/init.d/ssh start
/etc/init.d/ssh restart

Ou o comando:
service ssh restart
Depois do reinicio do servio o Servidor SSH estar apto a navegar entre os host,
tanto para distribuies GNU/Linux como para outros Sistemas Operacionais, como
exemplo o Windows.
Para navegar em uma mquina cliente GNU/Linux:
A comunicao entre o Servidor SSH e um host cliente deve ser usado o seguinte
comando:
ssh usuario@ip
Exemplo 1:
ssh jarbasfc@192.168.0.2
Exemplo 2:
ssh jarbasfc@nome_do_servidor_ssh

Copiando um arquivo de um servidor:


scp usuario@numero_de_ip:/local destino
Exemplos:
scp root@numero_de_ip:/etc/services /home/diretorio_usuario
Copiando Diretrios:
# scp -r usuario@numero_de_ip:/etc /tmp
Copiando arquivos e Diretrios de uma mquina local para o servidor (Basta inverter
a ordem)
scp /etc/services root@numero_de_ip
scp -r /etc root@numero_de_ip
Em interfaces grficas como KDE e GNOME, podemos usar o gerenciador de
arquivos (Nautilus no Gnome e Konqueror no KDE) para fazer cpias de contedos
entre mquinas.

Na barra de endereos do Gerenciador, faa: sftp://usuario@numero_de_ip


Exemplo:
sftp://usuario@numero_de_ip

Acessando via Windows Seven utilizando o programa PuTTY, basta clicar no


executvel do programa, informar o IP do servidor e pressionar o boto Open:

Aps clicar em Open, ser aberto o prompt onde dever ser informado o usurio e
senha que possuem conta no servidor:

Referencial Bibliogrfico
SSH - Conceitos bsicos e conexo por senha no Linux 01. Disponvel em:
< http://www.youtube.com/watch?v=e7TdtHL6b0E >
SSH - Conexo por Chave Pblica e Criptografia Assimtrica no Linux 02. Disponvel
em: < http://www.youtube.com/watch?v=k49z94w9xKU>
William. Configurando servidor SSH no Ubuntu Server, 2014 Disponvel em:
<
http://devwilliam.blogspot.com.br/2014/04/parte-2-configurando-servidor-sshno.html >.
Wikelivros. Guia do Linux/Avanado/Servidor ssh/Usando aplicativos clientes, 2011.
Disponvel
em:
<
http://pt.wikibooks.org/wiki/Guia_do_Linux/Avan%C3%A7ado/Servidor_ssh/Usando_
aplicativos_clientes >
Dailson Fernandes. Instalando e Configurando um Servidor SSH - Secure Shell.
2011. Disponvel em:
< http://dailson.blogspot.com.br/2009/11/implementando-um-servidor-sshsecure.html >
Cliente SSH e Servidor SSH. Disponvel em:
< http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12169 >