00 - SOA - Apostila Base SSH.pdf

10
SSH

Transcript of 00 - SOA - Apostila Base SSH.pdf

  • 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 >