SSH completo (passo a passo)

Esse é meu primeiro artigo para o VOL, aqui explico como instalar, configurar e usar o OpenSSH, uma ótima opção para administradores de redes que querem mais segurança em seus acessos remotos.

[ Hits: 264.662 ]

Por: Leandro Totino Pereira em 28/08/2006


Editando o sshd_config



O arquivo sshd_config nada mais é que o arquivo de configuração do seu servidor SSH. Vamos entender um pouco sobre ele e sua opções.

# $OpenBSD: sshd_config,v 1.69 2004/05/23 23:59:53 dtucker Exp $

# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.



Port 22 # escolha a porta de onde o seu servidor receberá as conexões

Protocol 2 # protocolo a ser usado pelo servidor
#ListenAddress 0.0.0.0 # opção no qual você escolhe a interface que o
# servidor SSH operará
#ListenAddress ::

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key


# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key # local que armazenará a chave "rsa" que criaremos logo adiante
HostKey /etc/ssh/ssh_host_dsa_key # local que armazenará a chave "dsa" que criaremos logo a diante

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 1h # tempo para o seu servidor criar novas chaves
ServerKeyBits 768 #tamanho da chave,quanto maior é melhor

# Logging
# obsoletes QuietMode and FascistLogging
SyslogFacility AUTH # nível de detalhamento das mensagens exibidas nos logs
LogLevel INFO # define opção de mensagens dos logs

# Authentication:

LoginGraceTime 2m # estabelece tempo por inatividade na conexão SSH

PermitRootLogin yes # essa opção define se o usuário root pode ou não se conectar via SSH no servidor

StrictModes yes # é bom ativar essa opção para o servidor detectar se as chaves estão com com suas permissões adequadas, ou seja, seguras

#MaxAuthTries 6

RSAAuthentication yes # ativa autenticação através da chave rsa
PubkeyAuthentication yes # ativa opção através da chave pubkey, ou seja, chaves públicas
AuthorizedKeysFile .ssh/authorized_keys # cria um arquivo para autorizar entrada dos usuários no servidor

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes # permite autenticação de chaves com senhas
PermitEmptyPasswords no # permite ou não a opção de senhas em branco

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes

# Kerberos options #
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication mechanism.
# Depending on your PAM configuration, this may bypass the setting of
# PasswordAuthentication, PermitEmptyPasswords, and
# "PermitRootLogin without-password". If you just want the PAM account and
# session checks to run without PAM authentication, then enable this but set
# ChallengeResponseAuthentication=no
#UsePAM no

#AllowTcpForwarding no
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
PrintMotd yes # exibe o /etc/motd quando conectado ou não
#PrintLastLog yes
#TCPKeepAlive yes
UseLogin yes # especifica que o usuário tem que logar no sistema em qual se conectará
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
Compression yes # define se os dados serão comprimidos ou não
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10

# no default banner path
#Banner /some/path

# override default of no subsystems
Subsystem sftp /usr/libexec/sftp-server # ativa o sftp-server, servidor ftp com criptografia
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Editando o sshd_config
   3. Adicionando chaves para os usuários
   4. Configuração do cliente
   5. Usando o sftp
Outros artigos deste autor

Montando e desvendando redes no Linux

Enganando invasores com Honeyperl

Instalando e configurando o VNC

Squid + proxy transparente + autentificação + SSL

Leitura recomendada

Hardening, se adequando as normas ISO 27000

PHPIDS - PHP Intrusion Detection System, deixe seu site livre de intrusos!

PacketFence em Debian 6

Esteganografia utilizando steghide

PFSense com Snort

  
Comentários
[1] Comentário enviado por cvs em 28/08/2006 - 08:02h

Na verdade para o slackware poderia ter colocado os passos de instalação e atualização do openssh usando os .tgz da arvore oficial do slackware.

[2] Comentário enviado por solucoesnandor em 28/08/2006 - 09:10h

Muito bom artigo. Parabéns !

[3] Comentário enviado por vmassuchetto em 28/08/2006 - 11:26h

aí velho...

bacana o artigo, mas eu tenho uma dúvida clássica...hehe
eu gostaria de deixar meu pc ligado e poder acessá-lo quando eu estiver fora, como posso fazer isso?

meu ip não é fixo, a brasil telecom deixa ele fixo se eu pedir?
sabe onde tem um tutorial bom, ou até mesmo você pode responder isso via comentário...

valeu!
abraços
vinicius

[4] Comentário enviado por fabio em 28/08/2006 - 11:54h

Olá wtn2die,

Use o DynDNS:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=5239

Um abraço

[5] Comentário enviado por tatototino em 28/08/2006 - 13:40h

cvs é podia ser =D mas eu nunk gostei de usar .tgz no slackware por isso não abordei
e queria dexar muito claro que a intenção desse artigo é apenas o basico não abordei chroot e parametros de segurança no sshd_conf


[6] Comentário enviado por fmpfmp em 29/08/2006 - 12:24h

errado...

[7] Comentário enviado por jroliv em 29/08/2006 - 15:01h

Aconselho deixar o seviço rodando em uma porta direfente da tão conhecida porta 22 por uma questão lógica de segurança.

[8] Comentário enviado por tatototino em 29/08/2006 - 18:20h

jroliv

certissimo o que vc falo mas como falei encima não kis alterar muito do padrão
mas vou deixar um link pra quem quer aprimorar a segurança do seu servidor ssh

http://www.cert.br/docs/whitepapers/defesa-forca-bruta-ssh/

e o chroot

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=418

[9] Comentário enviado por cams em 31/10/2006 - 17:08h

Tuto mto bom mesmo.....valeu

[10] Comentário enviado por digonet em 15/04/2007 - 13:13h

teria como colocar o ssh em disquete em terminal sem hd, não uso o ltsp, e sim preciso do ssh cliente para acessar o programa no meu servidor, teria como, como seria?

obrigado amigos

[11] Comentário enviado por tatototino em 16/04/2007 - 00:14h

acho que dá sim, você pode copiar o comando ssh e suas dependencias para o disquete e depois montar o disquete e fazer um chroot onde o disquete será montado.

use o comando ldd para ver as dependencias do comando ssh

espero ter ajudado

[12] Comentário enviado por stalin em 11/03/2008 - 11:53h

Qdo eu digito ./configure ocorre um erro de compilação como mostra abaixo:

[email protected]:~/Área de Trabalho/ssh-3.2.9.1$ ./configure
loading cache ./config.cache
checking distribution consistency... done
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking build system type... i686-pc-linux-gnu
checking cached information... ok
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal-1.4... missing
checking for working autoconf... missing
checking for working automake-1.4... missing
checking for working autoheader... missing
checking for working makeinfo... missing
checking whether building in source directory... yes
checking using purify... no
checking for gcc... gcc
checking for gcc... gcc
checking whether the C compiler (gcc -g ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.

O que devo fazer para que não ocorra esse erro novamente.

Obrigado

[13] Comentário enviado por tatototino em 15/09/2008 - 15:06h

checking whether the C compiler (gcc -g ) works... no

[14] Comentário enviado por Emilio Araujo em 04/05/2009 - 11:19h

O meu deu o seguinte erro no daemon:

quando /usr/sbin/sshd -D

deu:

Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available -- exiting.

e agora doutor?

[15] Comentário enviado por Emilio Araujo em 05/05/2009 - 12:26h

ja resolvi,

recriei as chaves usando o mesmo caminho,
ate conecto de um pc dentro da rede mas no login da acesso negado.
alguem por favor me ajude.

[16] Comentário enviado por eltonhbm em 10/10/2009 - 21:30h

bom tuto! xD


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts