00 - soa - apostila base ssh.pdf
TRANSCRIPT
-
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 [email protected] 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 # nvel de detalhamento das mensagens exibidas nos logs LogLevel INFO # 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 [email protected] 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-ssh-no.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-ssh-secure.html > Cliente SSH e Servidor SSH. Disponvel em: < http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12169 >