SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
1               Terminal Remoto e Shell Seguro                        Luiz Arthur

O uso de terminais e login remotos sempre existiram para a gerência de
computadores remotos, entretanto no início estes terminais de logins remotos
não possuam segurança pois os dados eram transmitidos pela rede em forma de
texto puro, ou seja, todos os dados (incluindo senha) quando capturados pela
rede podiam ser lidos sem maiores problemas.

O servidor de Shell Seguro (SSH) proporciona acesso remoto com autenticação
forte e sessão de encriptação com chave pública. O shell seguro é seguro e fácil
de usar. O SSH substitui o telnet, FTP, rlogin e rsh como alternativa segura. Toda
a comunicação entre cliente/servidor é feita de forma encriptada usando chaves
públicas/privadas RSA ou DSA para criptografia garantindo uma transferência
segura de dados.

O ssh é então um programa de login remoto (acesso ao sistema) para a execução
de comandos em uma máquina remota. O ssh substitui programas de login
remotos já consagrados como o telnet, rlogin, etc, os quais não proviam nenhuma
segurança (os dados eram transmitidos no formato texto puro) na transferência
de dados. O ssh também permite que conexões de servidores gráficos remotos
seja feita por um canal seguro.

A segurança do ssh é fornecida devido ao fato dos dados serem criptografados
antes de serem transmitidos, isto é possível através do uso de chaves
criptograficas publicas trocadas entre os hosts no inicio da transmissão dos
dados.
2
                     Terminal Remoto e Shell Seguro                       Luiz Arthur

    O servidor ssh chamado de sshd é um serviço que “escuta” conecções dos
    clientes. O sshd prove autenticação, execução de comandos remotamente, além
    de troca de dados entre os hosts remotos (estilo FTP).

    O ssh de forma geral é constituído dos seguintes programas:

     ●   openssh – Contém o utilitário de geração de chaves criptograficas, conhecido
         como ssh-keygen e o programa de cópia de arquivo remoto chamado de scp.

     ●   openssh-server – Contém o daemon do servidor sshd e do servidor ftp seguro.

     ●   Openssh-clients – Contém as ferramentas de ciente OpenSSH para
         manutenção de chave de cliente, bem como o comando ssh para login seguro
         e o comando sftp para FTP seguro.

    Quando um servidor e cliente ssh se conectam, eles trocam chaves criptograficas.
    As chaves são comparadas às chaves conhecidas (trocadas em uma sessão
    anterior, por exemplo). Se as chaves não forem encontradas, ao usuário é
    perguntado se uma chave nova deve ser aceita. Se a chave for aceita pelo usuário
    a chave do host é adicionada ao arquivo ~/.ssh/known_hosts no diretório home do
    usuário, e então é usada para codificar uma chave de sessão gerada
    aleatoriamente. A chave de sessão é então usada por ambos os sistemas para
    codificar o resto da sessão.
3                     Terminal Remoto e Shell Seguro                                 Luiz Arthur

    Se nenhuma autenticação especial foi configurada, é solicitado ao usuário um usuário e
    uma senha; utilizando o ssh para uma conexão entre os hosts, assim o roubo de senha
    torna-se praticamente impossível, por que a senha é codificada antes de ser enviada.

    A velocidade do console remoto conectado via Internet é excelente (melhor que a obtida
    pelo telnet e serviços r*) dando a impressão de uma conexão em tempo real, a compactação
    dos dados também pode ser ativada para elevar ainda mais a velocidade entre cliente-
    servidor ssh.

    Configurando o sshd

    Pouca configuração é exigida para executar um servidor SSH, mas é possível muita
    configuração.

    Muitos dos servidores em Linux tem a característica de não necessitarem de muita
    configuração apesar de possuírem inúmeras variáveis que podem ser configuradas
    conforme a necessidade. O SSH não é nenhuma exceção, sem configuração, o SSH
    funcionará muito bem, mas há opções de configuração que você pode usar para modificá-lo
    para seu uso particular.

    O sshd é configurado pelo arquivo texto /etc/ssh/sshd_config.               As    principais
    opções/parâmetros de configuração neste arquivo são:

    AllowGroups – Lista os grupos dos quais são permitidos logins. Um usuário tem que
    pertencer a um dos grupos listados para se registrar ao sistema. Por padrão, logins não são
    limitados a grupos específicos.
4
                     Terminal Remoto e Shell Seguro                         Luiz Arthur

    AllowTcpForwarding – Especifica se o encaminhamento (roteamento) é permitido
    ou não. Por padrão, é permitido (yes);

    AllowUsers – Lista os usuários que são permitidos para o login. Por padrão,
    logins não são limitados a usuários específicos. Os usuários são separados por
    espaços;

    Banner – Identifica um arquivo que contém uma página de banner (uma
    mensagem) que é exibida antes do login;

    ChallengeResponseAuthentication – Especifica se              a   autenticação   de
    desafio/resposta deve ser usada ou não. O default é yes.

    Ciphers – Identifica as técnicas de criptografia que serão suportadas pelo
    servidor. Os ciphers suportados são: ``3des-cbc'', ``aes128-cbc'', ``aes192-cbc'',
    ``aes256-cbc'',    ``aes128-ctr'',  ``aes192-ctr'',  ``aes256-ctr'',   ``arcfour'',
    ``blowfish-cbc'', and ``cast128-cbc''. O padrão é ``aes128-cbc,3des-cbc,blowfish-
    cbc,cast128-cbc,arcfour,     aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-
    ctr''

    CheckMail – Especifica se o sshd deve verificar se o usuário que efetuou a
    conecção tem ou não mensagem de email. O padrão é não verificar.
5
                    Terminal Remoto e Shell Seguro                       Luiz Arthur

    ClientAliveInterval – Define o intervalo de tempo no qual serão enviadas
    mensagens ao cliente quando o link estiver inativo. Estas mensagens são um meio
    de concluir uma resposta do cliente. O padrão é 0, significando que o servidor
    não enviará as mensagens.

    ClientAliveCountMax – Define o número máximo de mensagem que serão
    enviadas a um cliente inativo, antes da conexão ser terminada pelo servidor. O
    padrão é 3.

    DenyGroups – Lista os grupos que não estão autorizados a se registrar no
    servidor. Usuários que pertencem a quaisquer deste grupos não serão
    autorizados a se registrar. Por padrão todos os grupos estão autorizados.

    DenyUsers – Lista os usuários que não estão autorizados a se registrar no
    servidor. Por padrão todos estão autorizados.

    HostbasedAuthentication – Especifica se .rhosts e /etc/hosts.equiv serão usados
    ou não para autenticação de clientes. O padrão é não.

    HostKey – Identifica o arquivo que contém os chaves privadas do host. O padrão é
    /etc/ssh/ssh_host_key.

    IgnoreRhosts – Significa que os arquivos .rhosts e .shosts não serão usados,
    mesmo       se     RhostsAuthenticatio,     RhostsRSAAuthentication      ou
    HostbasedAuthenticaion forem especificados.
6
                     Terminal Remoto e Shell Seguro                         Luiz Arthur

    IgnoreUserKnownHosts – Faz com que o servidor ignore o ~/.ssh/know_hosts do
    usuário   durante    a    autenticação     de    RhostsRSAAuthentication  e
    HostbasedAuthentication. O padrão é usar o arquivo ~/.ssh/know_hosts.

    KeepAlive – Especifica se o sistema deve enviar ou não mensagens keepalive para
    descobrir se o link está operacional. O padrão é yes.

    ListenAddress – Identivica o endereço e porta na qual o sshd deve escutar por
    conexões. O padrão é escutar todos os endereços atribuídos ao servidor e escutar
    a porta padrão (normalmente a 22).

    LoginGraceTime – Define a quantidade de tempo que o servidor esperará pelo
    usuário para completar um login bem-sucedido. O padrão é 600 segundos.

    LogLevel – Especifica o nível de detalhe gravado no registro de logs.

    MaxStartups – Define o número máximo de conexões que podem estar esperando
    por autenticação. O padrão é 10.

    PasswordAuthenticationPassword – Informa ao sshd se a autenticação por senha
    é permitida ou não, o padrão é sim.
7
                    Terminal Remoto e Shell Seguro                       Luiz Arthur

    PermitEmptyPasswords – Informa ao sshd se uma senha é requerida ou não para
    autenticação por senha.

    PermitRootLogin – Define o nível de acesso concedido ao usuário root. São quatro
    nível: yes (Ao usuário root é concedido acesso de login completo por ssh), no (o
    usuário root não pode acessar o sshd diretamente), without-password (o usuário
    root é autorizado acessar o sistema, mas não pode usar senhas para fazer isto),
    forced-commands-only (o root é autorizado a executar comandos remotamente se
    o usuário foi autenticado por autenticação de chave publica.

    PidFile – Define o caminho no qual o sshd grava seu IP de processo. O padrão é
    /var/run/sshd.pid.

    Port – Define a porta na qual o sshd executa por tráfego entrante. O padrão é a
    porta 22.

    Protocol – Lista as versões do protocolo SSH que o servidor deve suportar. O
    padrão é tentar primeiro a versão 2 e então recuar para a versão 1 (então a
    opção é 2,1). A versão 1 tem alguns problemas de segurança bem conhecidos, se
    possível desabilite-o.

    RhostsAuthentication – Informa ao sshd para usar o .rhosts ou /etc/hosts.equiv
    para a autenticação sem senha. O padrão é não.
8
                     Terminal Remoto e Shell Seguro                    Luiz Arthur

    RhostsRSAAuthentication – Informa ao sshd que pode usar arquivos de hosts
    confiaveis junto com a chave RSA. O padrão é não utilizar.

    RSAAuthentication – Define a autenticação de chave pública RSA é permitida ou
    não, o padrão é permitir.

    ServerKeyBits – Define o número de bits usada para criptografar a sessão ssh
    versão 1. O valor mínimo é 512 e o padrão é 768 bits.

    UserLogin – Especifica se o Login é usado ou não para sessões de login
    interativas. O padrão é não.

    X11DisplayOffset – Define o mais baixo número de exibição que sshd está
    autorizado a usar para encaminhar X11. O padrão é 10.

    X11Forward – Informa ao ssh se deve ou não encaminhar tráfego X11 ao cliente,
    o padrão é não

    A maioria das opção não são necessárias.

    Observe o arquivo de configuração com o comando a seguir:

    # less /etc/ssh/sshd_config
9
                     Terminal Remoto e Shell Seguro                       Luiz Arthur

    O sshd não funciona por padrão no slackware como um processo do inetd. Então
    o sshd é um processo independente.

    Desta forma, após configurar o arquivo do servidor sshd basta iniciar o script de
    inicialização do sshd, com o seguinte comando:

    #/etc/rc.d/rc.sshd restart

    Para verificar se o servidor esta funcionando corretamente basta executar o
    netstat e verificar se o serviço sshd esta em execução, para isto execute o
    comando:

    # netstat -a --tcp | grep sshd

    Se tudo correu bem você pode usar o seguinte comando para acessar o servidor
    ssh:

    #ssh ip_do_servidor_ssh

    Talvez seja necessário nos comandos incluir o nome do usuário que vai acessar o
    servidor ssh, assim os comandos ssh ficariam como a seguir:

    #ssh usuario@ip_do_servidor_ssh
10
                 Terminal Remoto e Shell Seguro                       Luiz Arthur

 Aplicativos clientes para o uso de servidores SSH

 Comando ssh

 O comando ssh é a ferramenta usada acessar seções de console remotos. O
 arquivo de configuração de usuários é ~/.ssh/config e o arquivo global
 /etc/ssh/ssh_config. Para conectar a um servidor ssh remoto:

 $ ssh usuario@ip/nome_do_servidor_ssh

 Caso o nome do usuário seja omitido, seu login atual do sistema será usado. Com
 a opção -l é usada também para alterar a identificação de usuário.

 O uso da opção -C é recomendado para ativar o modo de compactação dos dados
 (útil em conexões lentas).

 Uma porta alternativa pode ser especificada usando a opção -p porta (a 22 é
 usada por padrão).

 Na primeira conexão, a chave pública do servidor remoto será gravada em
 ~/.ssh/know_hosts, e verificada a cada conexão como checagem de segurança
 para se certificar que o servidor não foi alvo de qualquer ataque ou modificação
 não autorizada das chaves.
11
                 Terminal Remoto e Shell Seguro                         Luiz Arthur

 Exemplos:

 Conecta-se ao servidor remoto usando o login do usuário atual

 $ ssh ftp.sshserver.org


 Conecta-se ao servidor remoto usando o login john (via ssh versão 2)

 $ ssh -2 ftp.sshserver.org -l john


 Conecta-se ao servidor remoto usando compactação e o login john

 $ ssh ftp.sshserver.org -C -l john


 Semelhante ao exemplo acima, usando o formato "login@ip"

 $ ssh john@ftp.sshserver.org -C
12
                     Terminal Remoto e Shell Seguro                      Luiz Arthur

 Comando scp


 Permite a cópia de arquivos entre o cliente/servidor ssh.

 A sintaxe usada por este comando é a seguinte:

 $ scp [origem] [destino]

 Os parâmetros de origem e destino são semelhantes ao do comando cp mas
 possui um formato especial quando é especificado uma máquina remota:

     ●   Um caminho padrão - Quando for especificado um arquivo local. Por exemplo:
         /usr/src/arquivo.tar.gz.

     ●   usuario@host_remoto: /diretório/arquivo - Quando desejar copiar o
         arquivo de/para um servidor remoto usando sua conta de usuário. Por
         exemplo: gleydson@ftp.server.org:~/arqs.

 A opção -C é recomendável para aumentar a taxa de transferência de dados
 usando compactação. Caso a porta remota do servidor sshd seja diferente de 22,
 a opção -P porta deverá ser especificada (é "P" maiúscula mesmo, pois a -p é
 usada para preservar permissões/data/horas dos arquivos transferidos).
13
                 Terminal Remoto e Shell Seguro                       Luiz Arthur

 Exemplos:

 Para copiar um arquivo local chamado /pub/teste/script.sh            para meu
 diretório pessoal em ftp.sshserver.org.

 $ scp -C /pub/teste/script.sh gleydson@ftp.sshserver.org:~/

 Para fazer a operação inversa a acima (copiando do servidor remoto para o local)
 é só inverter os parâmetros origem/destino:

 $ scp -C gleydson@ftp.sshserver.org:~/script.sh /pub/teste

 Para copiar o arquivo local chamado /pub/teste/script.sh para o diretório
 /scripts dentro do meu diretório pessoal em ftp.sshserver.org com o nome
 teste.sh.

 $ scp -C /pub/teste/script.sh gleydson@ftp.sshserver.org:~/scripts/teste.sh

 O exemplo abaixo faz a transferência de arquivos entre 2 computadores remotos:
 O arquivo teste.sh é lido do servidor server1.ssh.org e copiado para
 server2.ssh.org (ambos usando o login gleydson)

 $ scp -C gleydson@server1.ssh.org:~/teste.sh gleydson@server2.ssh.org:~/
14
                 Terminal Remoto e Shell Seguro                        Luiz Arthur

 Comando sftp

 Permite realizar transferência de arquivos seguras através do protocolo ssh. A
 conexão e transferências são realizadas através da porta 22 (ainda não é possível
 modificar a porta padrão).

 A sintaxe para uso deste comando é a seguinte:
 sftp usuario@host_remoto

 Compactação pode ser especificada através da opção -C. Um arquivo contendo os
 comandos usados na seção sftp poderá se especificado através da opção -b
 arquivo para automatizar tarefas.

 O suporte ao programa sftp somente está disponível ao protocolo ssh versão 2 e
 superiores.
15
       Terminal Remoto e Shell Seguro   Luiz Arthur

 fim
16
       Terminal Remoto e Shell Seguro   Luiz Arthur

 fim

Más contenido relacionado

La actualidad más candente

Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Danilo Filitto
 
Configurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edConfigurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edCarlos Melo
 
Seguranca da Informação - Filtros/tcpd
Seguranca da Informação - Filtros/tcpdSeguranca da Informação - Filtros/tcpd
Seguranca da Informação - Filtros/tcpdLuiz Arthur
 
Segurança autenticação apache -ppt
Segurança autenticação apache -pptSegurança autenticação apache -ppt
Segurança autenticação apache -pptCarlos Melo
 
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Felipe Santos
 
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSLPalestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSLfgsl
 
Redes prática - NFS
Redes prática - NFSRedes prática - NFS
Redes prática - NFSLuiz Arthur
 
Vps manager 2.0 documentação e intalação
Vps manager 2.0   documentação e intalaçãoVps manager 2.0   documentação e intalação
Vps manager 2.0 documentação e intalaçãoManim Edições
 
Certificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 ExercíciosCertificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 ExercíciosLeandro Rezende
 
Seguranca da informação seguranca em_redes_parte_03praticas
Seguranca da informação seguranca em_redes_parte_03praticasSeguranca da informação seguranca em_redes_parte_03praticas
Seguranca da informação seguranca em_redes_parte_03praticasFernando Beltrao
 
Certificação Digital - Aula2 Exercícios
Certificação Digital - Aula2 ExercíciosCertificação Digital - Aula2 Exercícios
Certificação Digital - Aula2 ExercíciosLeandro Rezende
 
SENAI - Segurança firewall
SENAI - Segurança   firewall SENAI - Segurança   firewall
SENAI - Segurança firewall Carlos Melo
 
Tutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunelTutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunelManim Edições
 

La actualidad más candente (18)

Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)
 
Configurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edConfigurando servidor web https no apache2 ed
Configurando servidor web https no apache2 ed
 
Seguranca da Informação - Filtros/tcpd
Seguranca da Informação - Filtros/tcpdSeguranca da Informação - Filtros/tcpd
Seguranca da Informação - Filtros/tcpd
 
Aula20 open vpn
Aula20 open vpnAula20 open vpn
Aula20 open vpn
 
Aula sockets
Aula socketsAula sockets
Aula sockets
 
Segurança autenticação apache -ppt
Segurança autenticação apache -pptSegurança autenticação apache -ppt
Segurança autenticação apache -ppt
 
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
 
Comandos Unix
Comandos UnixComandos Unix
Comandos Unix
 
Dhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamentoDhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamento
 
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSLPalestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
Palestra Hardening Linux - Por Juliano Bento - V FGSL e I SGSL
 
Redes prática - NFS
Redes prática - NFSRedes prática - NFS
Redes prática - NFS
 
Socket
SocketSocket
Socket
 
Vps manager 2.0 documentação e intalação
Vps manager 2.0   documentação e intalaçãoVps manager 2.0   documentação e intalação
Vps manager 2.0 documentação e intalação
 
Certificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 ExercíciosCertificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 Exercícios
 
Seguranca da informação seguranca em_redes_parte_03praticas
Seguranca da informação seguranca em_redes_parte_03praticasSeguranca da informação seguranca em_redes_parte_03praticas
Seguranca da informação seguranca em_redes_parte_03praticas
 
Certificação Digital - Aula2 Exercícios
Certificação Digital - Aula2 ExercíciosCertificação Digital - Aula2 Exercícios
Certificação Digital - Aula2 Exercícios
 
SENAI - Segurança firewall
SENAI - Segurança   firewall SENAI - Segurança   firewall
SENAI - Segurança firewall
 
Tutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunelTutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunel
 

Similar a SSH Terminal Remoto

Similar a SSH Terminal Remoto (20)

Introdução ao Ssh
Introdução ao SshIntrodução ao Ssh
Introdução ao Ssh
 
Usuário LInux
Usuário LInuxUsuário LInux
Usuário LInux
 
APLICAÇÕES SEGURAS.pptx
APLICAÇÕES SEGURAS.pptxAPLICAÇÕES SEGURAS.pptx
APLICAÇÕES SEGURAS.pptx
 
Servidores linux
Servidores linuxServidores linux
Servidores linux
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Tutorial sobre ssh
Tutorial sobre sshTutorial sobre ssh
Tutorial sobre ssh
 
Squid proxy
Squid proxySquid proxy
Squid proxy
 
Cluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxCluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em Linux
 
HTTPS com TLS em Modo RSA
HTTPS com TLS em Modo RSAHTTPS com TLS em Modo RSA
HTTPS com TLS em Modo RSA
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Criptografia P2P - Comunicadores Instantâneos
Criptografia P2P - Comunicadores InstantâneosCriptografia P2P - Comunicadores Instantâneos
Criptografia P2P - Comunicadores Instantâneos
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e Drbd
 
Aula 1
Aula 1Aula 1
Aula 1
 
M4 tarefa video
M4 tarefa videoM4 tarefa video
M4 tarefa video
 
Roteiro sshd
Roteiro sshdRoteiro sshd
Roteiro sshd
 
Web service
Web serviceWeb service
Web service
 
Linux - Servidor de FTP VSFTPD
Linux - Servidor de FTP VSFTPDLinux - Servidor de FTP VSFTPD
Linux - Servidor de FTP VSFTPD
 
Dawi o protocolo-http
Dawi o protocolo-httpDawi o protocolo-http
Dawi o protocolo-http
 
Protocolos; SNMP, TELNET, SSH
Protocolos; SNMP, TELNET, SSHProtocolos; SNMP, TELNET, SSH
Protocolos; SNMP, TELNET, SSH
 

Más de Luiz Arthur

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Luiz Arthur
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãLuiz Arthur
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Luiz Arthur
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Luiz Arthur
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Luiz Arthur
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsLuiz Arthur
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterLuiz Arthur
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na webLuiz Arthur
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookLuiz Arthur
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.orgLuiz Arthur
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Luiz Arthur
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Luiz Arthur
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologiaLuiz Arthur
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105Luiz Arthur
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computaçãoLuiz Arthur
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação CLuiz Arthur
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonLuiz Arthur
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-segurancaLuiz Arthur
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redesLuiz Arthur
 

Más de Luiz Arthur (20)

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhã
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
 
NAPSOL
NAPSOLNAPSOL
NAPSOL
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no Twitter
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na web
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e Facebook
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.org
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologia
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computação
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação C
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-python
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-seguranca
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redes
 

SSH Terminal Remoto

  • 1. 1 Terminal Remoto e Shell Seguro Luiz Arthur O uso de terminais e login remotos sempre existiram para a gerência de computadores remotos, entretanto no início estes terminais de logins remotos não possuam segurança pois os dados eram transmitidos pela rede em forma de texto puro, ou seja, todos os dados (incluindo senha) quando capturados pela rede podiam ser lidos sem maiores problemas. O servidor de Shell Seguro (SSH) proporciona acesso remoto com autenticação forte e sessão de encriptação com chave pública. O shell seguro é seguro e fácil de usar. O SSH substitui o telnet, FTP, rlogin e rsh como alternativa segura. Toda a comunicação entre cliente/servidor é feita de forma encriptada usando chaves públicas/privadas RSA ou DSA para criptografia garantindo uma transferência segura de dados. O ssh é então um programa de login remoto (acesso ao sistema) para a execução de comandos em uma máquina remota. O ssh substitui programas de login remotos já consagrados como o telnet, rlogin, etc, os quais não proviam nenhuma segurança (os dados eram transmitidos no formato texto puro) na transferência de dados. O ssh também permite que conexões de servidores gráficos remotos seja feita por um canal seguro. A segurança do ssh é fornecida devido ao fato dos dados serem criptografados antes de serem transmitidos, isto é possível através do uso de chaves criptograficas publicas trocadas entre os hosts no inicio da transmissão dos dados.
  • 2. 2 Terminal Remoto e Shell Seguro Luiz Arthur O servidor ssh chamado de sshd é um serviço que “escuta” conecções dos clientes. O sshd prove autenticação, execução de comandos remotamente, além de troca de dados entre os hosts remotos (estilo FTP). O ssh de forma geral é constituído dos seguintes programas: ● openssh – Contém o utilitário de geração de chaves criptograficas, conhecido como ssh-keygen e o programa de cópia de arquivo remoto chamado de scp. ● openssh-server – Contém o daemon do servidor sshd e do servidor ftp seguro. ● Openssh-clients – Contém as ferramentas de ciente OpenSSH para manutenção de chave de cliente, bem como o comando ssh para login seguro e o comando sftp para FTP seguro. Quando um servidor e cliente ssh se conectam, eles trocam chaves criptograficas. As chaves são comparadas às chaves conhecidas (trocadas em uma sessão anterior, por exemplo). Se as chaves não forem encontradas, ao usuário é perguntado se uma chave nova deve ser aceita. Se a chave for aceita pelo usuário a chave do host é adicionada ao arquivo ~/.ssh/known_hosts no diretório home do usuário, e então é usada para codificar uma chave de sessão gerada aleatoriamente. A chave de sessão é então usada por ambos os sistemas para codificar o resto da sessão.
  • 3. 3 Terminal Remoto e Shell Seguro Luiz Arthur Se nenhuma autenticação especial foi configurada, é solicitado ao usuário um usuário e uma senha; utilizando o ssh para uma conexão entre os hosts, assim o roubo de senha torna-se praticamente impossível, por que a senha é codificada antes de ser enviada. A velocidade do console remoto conectado via Internet é excelente (melhor que a obtida pelo telnet e serviços r*) dando a impressão de uma conexão em tempo real, a compactação dos dados também pode ser ativada para elevar ainda mais a velocidade entre cliente- servidor ssh. Configurando o sshd Pouca configuração é exigida para executar um servidor SSH, mas é possível muita configuração. Muitos dos servidores em Linux tem a característica de não necessitarem de muita configuração apesar de possuírem inúmeras variáveis que podem ser configuradas conforme a necessidade. O SSH não é nenhuma exceção, sem configuração, o SSH funcionará muito bem, mas há opções de configuração que você pode usar para modificá-lo para seu uso particular. O sshd é configurado pelo arquivo texto /etc/ssh/sshd_config. As principais opções/parâmetros de configuração neste arquivo são: AllowGroups – Lista os grupos dos quais são permitidos logins. Um usuário tem que pertencer a um dos grupos listados para se registrar ao sistema. Por padrão, logins não são limitados a grupos específicos.
  • 4. 4 Terminal Remoto e Shell Seguro Luiz Arthur AllowTcpForwarding – Especifica se o encaminhamento (roteamento) é permitido ou não. Por padrão, é permitido (yes); AllowUsers – Lista os usuários que são permitidos para o login. Por padrão, logins não são limitados a usuários específicos. Os usuários são separados por espaços; Banner – Identifica um arquivo que contém uma página de banner (uma mensagem) que é exibida antes do login; ChallengeResponseAuthentication – Especifica se a autenticação de desafio/resposta deve ser usada ou não. O default é yes. Ciphers – Identifica as técnicas de criptografia que serão suportadas pelo servidor. Os ciphers suportados são: ``3des-cbc'', ``aes128-cbc'', ``aes192-cbc'', ``aes256-cbc'', ``aes128-ctr'', ``aes192-ctr'', ``aes256-ctr'', ``arcfour'', ``blowfish-cbc'', and ``cast128-cbc''. O padrão é ``aes128-cbc,3des-cbc,blowfish- cbc,cast128-cbc,arcfour, aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256- ctr'' CheckMail – Especifica se o sshd deve verificar se o usuário que efetuou a conecção tem ou não mensagem de email. O padrão é não verificar.
  • 5. 5 Terminal Remoto e Shell Seguro Luiz Arthur ClientAliveInterval – Define o intervalo de tempo no qual serão enviadas mensagens ao cliente quando o link estiver inativo. Estas mensagens são um meio de concluir uma resposta do cliente. O padrão é 0, significando que o servidor não enviará as mensagens. ClientAliveCountMax – Define o número máximo de mensagem que serão enviadas a um cliente inativo, antes da conexão ser terminada pelo servidor. O padrão é 3. DenyGroups – Lista os grupos que não estão autorizados a se registrar no servidor. Usuários que pertencem a quaisquer deste grupos não serão autorizados a se registrar. Por padrão todos os grupos estão autorizados. DenyUsers – Lista os usuários que não estão autorizados a se registrar no servidor. Por padrão todos estão autorizados. HostbasedAuthentication – Especifica se .rhosts e /etc/hosts.equiv serão usados ou não para autenticação de clientes. O padrão é não. HostKey – Identifica o arquivo que contém os chaves privadas do host. O padrão é /etc/ssh/ssh_host_key. IgnoreRhosts – Significa que os arquivos .rhosts e .shosts não serão usados, mesmo se RhostsAuthenticatio, RhostsRSAAuthentication ou HostbasedAuthenticaion forem especificados.
  • 6. 6 Terminal Remoto e Shell Seguro Luiz Arthur IgnoreUserKnownHosts – Faz com que o servidor ignore o ~/.ssh/know_hosts do usuário durante a autenticação de RhostsRSAAuthentication e HostbasedAuthentication. O padrão é usar o arquivo ~/.ssh/know_hosts. KeepAlive – Especifica se o sistema deve enviar ou não mensagens keepalive para descobrir se o link está operacional. O padrão é yes. ListenAddress – Identivica o endereço e porta na qual o sshd deve escutar por conexões. O padrão é escutar todos os endereços atribuídos ao servidor e escutar a porta padrão (normalmente a 22). LoginGraceTime – Define a quantidade de tempo que o servidor esperará pelo usuário para completar um login bem-sucedido. O padrão é 600 segundos. LogLevel – Especifica o nível de detalhe gravado no registro de logs. MaxStartups – Define o número máximo de conexões que podem estar esperando por autenticação. O padrão é 10. PasswordAuthenticationPassword – Informa ao sshd se a autenticação por senha é permitida ou não, o padrão é sim.
  • 7. 7 Terminal Remoto e Shell Seguro Luiz Arthur PermitEmptyPasswords – Informa ao sshd se uma senha é requerida ou não para autenticação por senha. PermitRootLogin – Define o nível de acesso concedido ao usuário root. São quatro nível: yes (Ao usuário root é concedido acesso de login completo por ssh), no (o usuário root não pode acessar o sshd diretamente), without-password (o usuário root é autorizado acessar o sistema, mas não pode usar senhas para fazer isto), forced-commands-only (o root é autorizado a executar comandos remotamente se o usuário foi autenticado por autenticação de chave publica. PidFile – Define o caminho no qual o sshd grava seu IP de processo. O padrão é /var/run/sshd.pid. Port – Define a porta na qual o sshd executa por tráfego entrante. O padrão é a porta 22. Protocol – Lista as versões do protocolo SSH que o servidor deve suportar. O padrão é tentar primeiro a versão 2 e então recuar para a versão 1 (então a opção é 2,1). A versão 1 tem alguns problemas de segurança bem conhecidos, se possível desabilite-o. RhostsAuthentication – Informa ao sshd para usar o .rhosts ou /etc/hosts.equiv para a autenticação sem senha. O padrão é não.
  • 8. 8 Terminal Remoto e Shell Seguro Luiz Arthur RhostsRSAAuthentication – Informa ao sshd que pode usar arquivos de hosts confiaveis junto com a chave RSA. O padrão é não utilizar. RSAAuthentication – Define a autenticação de chave pública RSA é permitida ou não, o padrão é permitir. ServerKeyBits – Define o número de bits usada para criptografar a sessão ssh versão 1. O valor mínimo é 512 e o padrão é 768 bits. UserLogin – Especifica se o Login é usado ou não para sessões de login interativas. O padrão é não. X11DisplayOffset – Define o mais baixo número de exibição que sshd está autorizado a usar para encaminhar X11. O padrão é 10. X11Forward – Informa ao ssh se deve ou não encaminhar tráfego X11 ao cliente, o padrão é não A maioria das opção não são necessárias. Observe o arquivo de configuração com o comando a seguir: # less /etc/ssh/sshd_config
  • 9. 9 Terminal Remoto e Shell Seguro Luiz Arthur O sshd não funciona por padrão no slackware como um processo do inetd. Então o sshd é um processo independente. Desta forma, após configurar o arquivo do servidor sshd basta iniciar o script de inicialização do sshd, com o seguinte comando: #/etc/rc.d/rc.sshd restart Para verificar se o servidor esta funcionando corretamente basta executar o netstat e verificar se o serviço sshd esta em execução, para isto execute o comando: # netstat -a --tcp | grep sshd Se tudo correu bem você pode usar o seguinte comando para acessar o servidor ssh: #ssh ip_do_servidor_ssh Talvez seja necessário nos comandos incluir o nome do usuário que vai acessar o servidor ssh, assim os comandos ssh ficariam como a seguir: #ssh usuario@ip_do_servidor_ssh
  • 10. 10 Terminal Remoto e Shell Seguro Luiz Arthur Aplicativos clientes para o uso de servidores SSH Comando ssh O comando ssh é a ferramenta usada acessar seções de console remotos. O arquivo de configuração de usuários é ~/.ssh/config e o arquivo global /etc/ssh/ssh_config. Para conectar a um servidor ssh remoto: $ ssh usuario@ip/nome_do_servidor_ssh Caso o nome do usuário seja omitido, seu login atual do sistema será usado. Com a opção -l é usada também para alterar a identificação de usuário. O uso da opção -C é recomendado para ativar o modo de compactação dos dados (útil em conexões lentas). Uma porta alternativa pode ser especificada usando a opção -p porta (a 22 é usada por padrão). Na primeira conexão, a chave pública do servidor remoto será gravada em ~/.ssh/know_hosts, e verificada a cada conexão como checagem de segurança para se certificar que o servidor não foi alvo de qualquer ataque ou modificação não autorizada das chaves.
  • 11. 11 Terminal Remoto e Shell Seguro Luiz Arthur Exemplos: Conecta-se ao servidor remoto usando o login do usuário atual $ ssh ftp.sshserver.org Conecta-se ao servidor remoto usando o login john (via ssh versão 2) $ ssh -2 ftp.sshserver.org -l john Conecta-se ao servidor remoto usando compactação e o login john $ ssh ftp.sshserver.org -C -l john Semelhante ao exemplo acima, usando o formato "login@ip" $ ssh john@ftp.sshserver.org -C
  • 12. 12 Terminal Remoto e Shell Seguro Luiz Arthur Comando scp Permite a cópia de arquivos entre o cliente/servidor ssh. A sintaxe usada por este comando é a seguinte: $ scp [origem] [destino] Os parâmetros de origem e destino são semelhantes ao do comando cp mas possui um formato especial quando é especificado uma máquina remota: ● Um caminho padrão - Quando for especificado um arquivo local. Por exemplo: /usr/src/arquivo.tar.gz. ● usuario@host_remoto: /diretório/arquivo - Quando desejar copiar o arquivo de/para um servidor remoto usando sua conta de usuário. Por exemplo: gleydson@ftp.server.org:~/arqs. A opção -C é recomendável para aumentar a taxa de transferência de dados usando compactação. Caso a porta remota do servidor sshd seja diferente de 22, a opção -P porta deverá ser especificada (é "P" maiúscula mesmo, pois a -p é usada para preservar permissões/data/horas dos arquivos transferidos).
  • 13. 13 Terminal Remoto e Shell Seguro Luiz Arthur Exemplos: Para copiar um arquivo local chamado /pub/teste/script.sh para meu diretório pessoal em ftp.sshserver.org. $ scp -C /pub/teste/script.sh gleydson@ftp.sshserver.org:~/ Para fazer a operação inversa a acima (copiando do servidor remoto para o local) é só inverter os parâmetros origem/destino: $ scp -C gleydson@ftp.sshserver.org:~/script.sh /pub/teste Para copiar o arquivo local chamado /pub/teste/script.sh para o diretório /scripts dentro do meu diretório pessoal em ftp.sshserver.org com o nome teste.sh. $ scp -C /pub/teste/script.sh gleydson@ftp.sshserver.org:~/scripts/teste.sh O exemplo abaixo faz a transferência de arquivos entre 2 computadores remotos: O arquivo teste.sh é lido do servidor server1.ssh.org e copiado para server2.ssh.org (ambos usando o login gleydson) $ scp -C gleydson@server1.ssh.org:~/teste.sh gleydson@server2.ssh.org:~/
  • 14. 14 Terminal Remoto e Shell Seguro Luiz Arthur Comando sftp Permite realizar transferência de arquivos seguras através do protocolo ssh. A conexão e transferências são realizadas através da porta 22 (ainda não é possível modificar a porta padrão). A sintaxe para uso deste comando é a seguinte: sftp usuario@host_remoto Compactação pode ser especificada através da opção -C. Um arquivo contendo os comandos usados na seção sftp poderá se especificado através da opção -b arquivo para automatizar tarefas. O suporte ao programa sftp somente está disponível ao protocolo ssh versão 2 e superiores.
  • 15. 15 Terminal Remoto e Shell Seguro Luiz Arthur fim
  • 16. 16 Terminal Remoto e Shell Seguro Luiz Arthur fim