Saturday 14 April 2018

Trojaned ssh daemon original sshd binário opções


Instalação do Cygwin SSH O servidor Cygwin SSH é uma emulação do ambiente UNIX e do OpenSSH para Windows. Antes de configurar o Cygwin SSH, você deve consultar o README localizado na distribuição do pacote Cygwin em usrsharedocCygwinopenssh. README. Informações adicionais podem ser encontradas no Cygwin Users Guide. O seguinte é uma visão geral de alto nível do processo de instalação do SSH. Configuração do cliente SSH A máquina que executa o script de procura só requer o cliente SSH. Para configurar um Cygwin SSH proceda com o seguinte. Login como Administrador Windows XP - login como um usuário com privilégio de administrador Windows 2003 Server - login como administrador local, ele não funcionará para usuários de domínio ou administrador de domínio. Certifique-se de que o administrador actual tenha uma palavra-passe do Windows definida. Caso contrário, use as Contas do Painel de Controle-gtUser para criar uma senha. É uma boa idéia fazer logoff e fazer login novamente para verificar se a senha foi criada com êxito. Crie uma pasta c: cygwin para o diretório raiz e c: cygwinpkg para o armazenamento do pacote. Faça o download do arquivo cygwins setup. exe do cygwin e salve setup. exe no c: cygwin. Você pode optar por executá-lo diretamente a partir da sessão de download ou clique em Iniciar-gtRun e digite: c: cygwinsetup. exe. Conforme você inicia o setup. exe, você será recebido pelo quotCygwin Net Release Setup Program ltNextgt. Supondo que você ainda não tenha pacotes baixados para sua máquina, você deve selecionar o quotInstall padrão do Internetquot. LtNextgt. O diretório raiz é o local onde os binários instalados finais irão viver. Escolha um local. É recomendável que você use um caminho que não contém espaços. Por esse motivo, escolha o c: cygwin que você criou anteriormente. Selecionar quotAll Usersquot para a opção quotInstall Forquot permitirá que outros usuários usem SSH. O tipo de arquivo de texto padrão - Unix binário é recomendado. LtNextgt. Você será solicitado para quotLocal Package Directoryquot tipo: c: cygwinpkg. LtNextgt. Selecione o tipo de conexão. Escolha o que é aplicável. QuotDirect Connectionquot é provavelmente aplicável na maioria dos casos ltNextgt. Escolha um site de download que está localizado mais próximo de você. LtNextgt. A próxima janela exibe vários pacotes de software que estão disponíveis. Localize o pacote openssh. Reside sob a árvore quotNetquot. Clicando na palavra quotskipquot irá selecionar o pacote resultando em um quotxquot sendo exibido na caixa de seleção Binário. Selecionar openssh selecionará automaticamente openssl uma vez que é um requisitado pelo openssh. A menos que você queira que o código fonte deixe a segunda caixa de seleção desmarcada. Clique em Next para iniciar a instalação do Cygwin (o pacote base necessário) e SSH. O tamanho desses pacotes é mais de 50MB. Após a instalação dos pacotes Cygwin, você tem a opção de criar ícones na sua área de trabalho. Configuração do Servidor SSH ltFinishgt Cada uma das máquinas que executam um cliente browsechild são obrigadas a executar um daemon SSHD. Para configurar o servidor SSHD do Cygwin, você deve primeiro concluir as etapas iniciais do Setup do Cliente quotSSH. Se você estiver indo para adotar e manter o ambiente SSHD subseqüente à execução do Browse Benchmark você pode querer ler os recursos personalizáveis ​​e opções de configuração apresentados no Cygwin Users Guide. Essas opções incluem a configuração da variável de ambiente ntsec (NT Security) e modificar seu PATH para incluir c: cygwinbin. No mínimo, para configurar o SSHD, você deve abrir uma janela Cygwin (clicando duas vezes no ícone Cygwin) e digitar: Você será solicitado a responder a algumas perguntas. As perguntas variam dependendo se você deseja executar SSHD como um serviço ou não. Uma vez concluído, inicie o servidor SSHD. Iniciado como um serviço: Iniciado na linha de comando dentro de um shell Cygwin: Copyright 1996, 2017 Perforce Software, Inc. Última atualização: DateTime: 20170412 15:41:50 Comando sftp do Linux e Unix Sobre sftp sftp significa FTP seguro. É um programa de linha de comando para transferir arquivos de forma segura por uma conexão de rede. Você já deve estar familiarizado com o FTP: é um método muito simples e muito inseguro para fazer o upload ou o download de arquivos em uma conexão de rede. Ele não fornece qualquer tipo de segurança ou criptografia na sessão ou na transferência de dados. O sftp fornece essa funcionalidade. Pense nisso como uma versão criptografada do ftp. Nota: Se você precisa transferir arquivos por FTP anônimo, sftp não é o programa a ser usado. Como todas as conexões sftp são criptografadas, elas exigem um nome de usuário e uma senha (ou autenticação de chave pública). Assim, para transferências FTP anônimas, basta usar o ftp regular. Sftp syntax sftp executa todas as operações sobre uma sessão ssh criptografada. Ele usa muitos dos recursos do ssh. Tais como autenticação de chave pública e compressão de dados. Há quatro maneiras básicas de usar sftp. E a sintaxe de comando para cada um está listada aqui. (Para obter mais informações sobre cada opção e seus possíveis valores, consulte a seção Opções abaixo). A primeira é uma sessão interativa. Neste modo, o sftp conecta e faz logon no host especificado. Em seguida, entra em seu modo de comando interativo, onde você digita todos os seus comandos em um prompt. Para iniciar uma sessão interativa do sftp. Use a seguinte sintaxe: Consulte Modo Interativo para obter um exemplo de como usar sftp desta maneira. Você também pode usar sftp para recuperar arquivos automaticamente, sem qualquer interação solicitada: Consulte Modo de recuperação automática para obter um exemplo de como usar sftp desta maneira. Ou você pode dizer sftp para iniciar sua sessão interativa em um diretório remoto específico: Finalmente, você pode executar uma sessão completamente automatizada usando a opção - b. O b significa modo batch. Para usar o modo batch, é necessário configurar autenticação não-interativa, como autenticação de chave pública, para que você não tenha que inserir manualmente uma senha. A sintaxe sftp para este modo é: Para obter exemplos de uso do modo em lote e um guia para configurar a autenticação de chave pública, consulte Modo em lote. Aqui está uma descrição de cada uma das opções listadas nas sintaxes de comando listadas acima. Especifique o uso do protocolo versão 1, que remonta a 1997. Esta opção fornece compatibilidade com servidores muito antigos. Se não tiver certeza de que você precisa dele, não especifique esta opção. Especifique o uso do protocolo versão 2, que remonta a 1997. Esta opção fornece compatibilidade com servidores muito antigos. Se não tiver certeza de que você precisa dele, não especifique esta opção. Os comandos do modo interativo não diferenciam maiúsculas de minúsculas, portanto não importa se você os soletra com letras maiúsculas ou minúsculas (ou uma combinação de ambas). No entanto, os nomes de arquivo ainda fazem distinção entre maiúsculas e minúsculas. Qualquer nome de arquivo ou diretório que contenha espaços deve ser colocado entre aspas, ou o servidor irá interpretá-los como nomes separados. Modo de Recuperação Automática Neste modo, você pode especificar o caminho exato do arquivo (ou arquivos) que você deseja recuperar no próprio comando sftp. Por exemplo, se você deseja obter o arquivo documentsportfolio. zip do servidor remoto files. myhost (onde seu nome de usuário é myname), você pode usar o comando: Quando você executar este comando, sftp se conectará a files. myhost. Pedir-lhe a sua palavra-passe, e uma vez que você está autenticado vai tentar baixar o arquivo documentsportfolio. zip. Desde que nós não colocamos uma barra no início do nome do diretório, ele irá procurar por documentos em seu diretório pessoal no servidor. Se encontrar o portfolio. zip. Ele irá baixá-lo. A saída ficará assim: e então sftp simplesmente sairá. Você também pode especificar um local para o arquivo a ser baixado. Por exemplo, este comando: irá transferir portfolio. zip para o diretório tmp. Ou, você pode especificar um nome completamente diferente para o arquivo baixado: ea saída indicará o novo nome do arquivo: Você também pode especificar caracteres curinga no nome do arquivo, por exemplo: e sftp irá baixar todos os arquivos com a extensão. zip nos documentos remotos diretório. A saída irá listar cada arquivo em sua própria linha, assim: Iniciando o Modo Interativo em um Diretório Remoto Específico Às vezes é mais conveniente iniciar uma sessão de modo interativo diretamente de um diretório remoto específico. Você pode fazer isso, especificando-o na linha de comando: Modo Batch Seu também possível executar sftp de uma forma completamente script. Isso é chamado de modo batch. E permite que você execute transferências de sftp sem nenhuma interação no teclado. Isso é útil, por exemplo, se você deseja configurar uma transferência recorrente em um trabalho cron ou uma transferência programada única usando o comando at. No entanto, como o modo de lote é completamente não-interativo, ele não permite que você insira um nome de usuário e uma senha ao conectar-se ao servidor. Assim, para usar o modo batch, você terá que fazer login automaticamente. A maneira padrão de fazer isso, ea mais segura, é usar a autenticação de chave pública. Vamos ver isso rapidamente. Configurando a Autenticação de Chave Pública A Autenticação de Chave Pública permite que você faça login em um servidor remoto com segurança, sem digitar sua senha. Primeiro, você gera duas chaves em seu sistema local: uma chave privada e uma chave pública. Em seguida, copiar o texto de sua chave pública para o servidor remoto. Depois disso, desde que você tenha a chave privada em sua máquina local, você pode fazer login na máquina remota sem digitar uma senha. Para fazer isso, o primeiro passo é gerar as chaves pública e privada. As chaves estarão localizadas no diretório. ssh em seu diretório pessoal em seu sistema local. Primeiro, verifique se o diretório. ssh já existe: Isto irá retornar o nome do diretório: ou dizer que ele não existe: Se ele não existir, precisamos criá-lo antes da próxima etapa: Em seguida, precisamos fazer Se este diretório tem as permissões corretas. Você quer garantir que você é a única pessoa que pode acessar este diretório (ler, escrever e executar). Para um diretório, o valor octal deste modo de arquivo é 700. Permite alterar as permissões em nosso diretório. ssh: Agora precisamos gerar as chaves em si. O programa usado para gerar pares de chaves para o protocolo ssh é chamado ssh-keygen. Executá-lo na linha de comando sem quaisquer opções: Ele irá solicitar-lhe as informações necessárias para gerar as chaves. Use todos os valores padrão (apenas pressione enter em cada prompt). Observação: um dos prompts solicitará uma senha, que oferece um nível adicional de segurança em cima da chave privada criptografada. Aqui deixaremos a senha em branco. Se você quiser usar uma senha com sua chave, você deve usar um programa chamado ssh-agent para carregar sua chave na memória, isso permitirá que você use uma chave protegida por senha sem precisar digitar a senha mais de uma vez. A saída do ssh-keygen será algo como isto: Youll até obter uma bela peça de arte que representa a sua chave pública, que você pode imprimir e pendurar em sua parede, se quiser. Suas chaves agora são geradas. Existem dois arquivos, idrsa e idrsa. pub. Precisamos também alterar as permissões desses arquivos, para que ninguém, a não ser você, possa acessá-los (ler, escrever e executar). O valor octal destes bits de permissão é 700. E verifique se o diretório tem os mesmos bits de permissão definidos: Agora ssh para o seu servidor. Vamos dizer que o seu chamado myhost: Digite sua senha e log in Uma vez que você está no seu prompt de comando servidores, verifique se o diretório. ssh existe lá. No servidor: Se não existir, crie-o e atribua-lhe as permissões adequadas, tal como no seu sistema local. No servidor: Igual para o arquivo authorizedkeys. Primeiro verifique se ele existe. No servidor: Se ele não, criá-lo. Você pode usar o toque para criar um arquivo vazio. No servidor: Claro, se o diretório e o arquivo já existem, você não precisa criá-los. De qualquer forma, uma vez que você sabe que o arquivo. sshauthorizedkeys existe, você pode efetuar logout do servidor: O qual o retornará ao prompt de comando do sistema local. Agora você precisa colocar o conteúdo de seu arquivo de chave pública local (.sshidrsa. pub. Que você criou anteriormente com ssh-keygen) no arquivo. sshauthorizedkeys em seu servidor. O conteúdo deste arquivo está tudo em uma linha muito longa (sem quebras de linha). Você pode olhar para você mesmo com o comando cat: e será algo como isto: Esta linha de texto precisa ser colocada no arquivo authorizedkeys no seu servidor, em sua própria linha. Existem várias maneiras de fazer isso: você pode copiar o texto no servidor local, abrir o arquivo usando um editor de texto no servidor e colá-lo em sua própria linha. Ou, você poderia usar um programa chamado ssh-copy-id. Que é parte da instalação ssh padrão em muitos sistemas. No entanto, aqui vamos anexá-lo diretamente para o arquivo usando o próprio ssh. Se o seu nome de usuário remoto for myusername eo nome do seu servidor for myhost. Você executaria este comando: Isto executa o comando cat no seu arquivo de chave pública, canaliza a saída para ssh. Que leva essa entrada e anexa-lo diretamente para o arquivo authorizedkeys na máquina remota. Agora sua chave pública é instalada no servidor, e você deve ser capaz de fazer logon sem uma senha, bem como realizar sessões batch sftp. Nota: Se o servidor ainda estiver pedindo sua senha ao tentar fazer login, verifique se os servidores da configuração do daemon ssh, localizados por padrão em etcsshsshdconfig. Contém as duas linhas a seguir: Eles fazem parte da configuração padrão, portanto, você não precisa adicioná-los, defini-los ou descomentá-los no arquivo de configuração. No entanto, eles são necessários para autenticação de chave pública. Se não funcionar, este é o primeiro lugar que você deve verificar. Executando a Sessão sftp em lote Para executar uma sessão sftp em lote, basta criar um arquivo de texto contendo a seqüência de comandos sftp a serem executados no servidor, com cada comando em sua própria linha. Por exemplo, se você deseja automatizar o upload de um conjunto de arquivos chamados image01.jpg. Image02.jpg. Em um diretório no servidor remoto chamado imagens em seu diretório pessoal, você poderia criar um arquivo de texto chamado mybatch. txt que contém os seguintes comandos: Então, você executaria o lote com o seguinte comando: e sftp irá produzir os resultados do , Por exemplo: Depois de todos os comandos terem sido executados (com êxito ou não), o sftp sairá e retornará à linha de comando. Sftp examples Este comando tenta iniciar uma sessão sftp interativa com o servidor myhost. O nome utilizado para iniciar sessão será o mesmo que o nome de utilizador com o qual executou o comando. Depois de ter logado com êxito, você verá uma mensagem semelhante à seguinte, junto com o prompt de comando sftpgt: Igual ao comando acima, mas tenta fazer logon com o nome de usuário fred. Tentativas de iniciar uma sessão sftp interativa com o servidor myhost. Usando o nome fred para fazer login. Após o login bem-sucedido, você começará a sessão no diretório homefredimages. Tentativas de baixar o arquivo homefredimagespicture. jpg do servidor myhost usando o nome de usuário fred para fazer login. Se o arquivo existir, ele será baixado para o diretório de trabalho local e, em seguida, sftp será encerrado. Tenta executar os comandos sftp no arquivo de texto batch. txt. No servidor myhost. Como o usuário nomeado fred. Os comandos no arquivo batch. txt devem ser listados um por linha. Para que a sessão seja iniciada, o servidor eo cliente local devem ser configurados para que nenhuma entrada de teclado seja necessária para efetuar logon, consulte Configuração da autenticação de chave pública acima para obter mais informações. Exemplos de Comando Interativo Os exemplos a seguir podem ser executados a partir do prompt sftpgt uma vez que uma sessão interativa foi iniciada. Consulte Comandos do modo interativo acima para obter uma lista completa de comandos e opções interativos. Imprime o nome do diretório de trabalho remoto. Imprime o nome do diretório de trabalho local. Liste o conteúdo do diretório de trabalho remoto. Liste o conteúdo do diretório de trabalho local. Altera o diretório de trabalho remoto para os documentos de subdiretório. Altera o diretório de trabalho local para os documentos de subdiretório. Baixe o arquivo remoto mydocs. zip no diretório de trabalho local. Baixe o arquivo remoto mydocs. zip para o diretório local homefred. Se o diretório homefred não existir, o sftp tentará baixar o arquivo para o diretório local e nomeá-lo fred. Nota: sftp não reconhece o atalho til para diretórios home (), então você terá que usar o nome completo de um diretório home se você estiver especificando-o em sftp. Baixe o arquivo remoto mydocs. zip para o diretório local homefred. Dando-lhe o novo nome download-docs. zip depois que ele é baixado. Crie os documentos de diretório no diretório de trabalho remoto. Faça o upload do arquivo local files. zip para o diretório de trabalho remoto. Faça o upload do arquivo local homefreddocumentsdocuments. zip para o diretório remoto homefreddocuments. Renomeando mydoc. zip depois que ele é carregado. Uplooad todos os arquivos no diretório local homefredimages cujo nome começa com a imagem. E termina no sufixo. jpg. No diretório remoto homefredimages. Renomeie o arquivo remoto homefredfile. txt. Dando-lhe o nome newfile. txt. Exclua o arquivo remoto homefrednewfile. txt. Execute o comando commandname option1 option2 no seu sistema local sem desconectar da sessão sftp. Desconecte da sessão sftp e saia sftp. Comandos relacionados ftp mdash Conduza uma sessão de FTP interativa através de uma conexão de rede segura. Muitos usuários implementaram Secure Shell (ssh) para fornecer acesso protegido a um sistema Linux remoto, mas não percebem que ao permitir a autenticação de senha, eles ainda estão abertos à força bruta Ataques de qualquer lugar na internet. Existem worms correndo desenfreado na internet que fazem um trabalho eficaz encontrar combinações usernamepassword fraca, e estes não são interrompidos pelo uso de Secure Shell. Esta Dica Técnica detalha como usar o cliente PuTTY SSH livre para se conectar a um sistema Linux executando o servidor OpenSSH, tudo ao usar a criptografia de chave pública eo suporte do agente SSH. Muitas dessas informações se aplicam a qualquer instalação do OpenSSH em qualquer sistema UNIX - Solaris, BSD, OpenServer -, mas fomos direcionados para a plataforma Linux quando especificações são solicitadas. Instalação e configlogin simples Proporcionar acesso sem senha, baseado em agente, requer um monte de etapas, portanto, bem abordagem isso em etapas, primeiro fornecendo acesso regular senha para o sistema. Isso permite testar a instalação inicial e a capacidade de fazer login antes de ativar os recursos mais avançados. Baixe e instale os programas Ao contrário da maioria dos programas do Windows, o pacote PuTTY não requer um instalador: os arquivos. EXE individuais são simplesmente descartados em um diretório onde eles são executados diretamente. Nós admiramos a economia e o estilo que o autor de PuTTYs demonstra. Os arquivos podem ser descartados em qualquer diretório que esteja no caminho de comando de usuários, e normalmente usamos C: BIN (veja o próximo item para como configurar isso). Cinco arquivos devem ser baixados do site PuTTY. PuTTY. exe mdash cliente Shell seguro PuTTYgen. exe mdash SSH gerador de chaves publicprivate Pagent. exe mdash SSH chave agente PSCP. exe mdash Cópia segura a partir da linha de comando PSFTP. exe mdash Cópia segura com FTP-como a interface Verifique se o diretório de instalação está no comando Embora seja possível executar o PuTTY com um caminho ou atalho completo, na prática é útil quando estiver totalmente disponível no prompt do CMD para acessar ou copiar arquivos de qualquer lugar no sistema de arquivos. Clique com o botão direito do mouse em Meu computador na área de trabalho e selecione Propriedades. Clique na guia Avançado na parte superior e, em seguida, clique no botão Variáveis ​​de ambiente. Isso abre a caixa de diálogo exibida à direita. Há sempre variável PATH na seção Variáveis ​​do Sistema e, às vezes, também na seção Variáveis ​​do Usuário. Somente os administradores têm acesso às Variáveis ​​do Sistema, portanto Edite ou Adicione o PATH conforme necessário. Normalmente, colocar o novo diretório no início do caminho, e seu separado do resto da lista com um ponto e vírgula. Clique em OK para salvar todas as alterações. Criar um atalho na área de trabalho O PuTTY é frequentemente usado pesadamente por um trabalhador de TI, por isso é útil ter um atalho na área de trabalho para facilitar o acesso. Para adicionar isso, clique com o botão direito do mouse na área de trabalho e clique em Novo atalho. Navegue para ou digite o nome do caminho do executável PuTTY. No nosso exemplo, foi C: binputty. exe. Clique em OK e atribua ao atalho um nome conveniente. Inicie o PuTTY e configure para o sistema de destino Inicie o PuTTY através do atalho e exibirá a caixa de diálogo de configuração: há muitas opções aqui. Bem, preencha vários para fornecer acesso com senha para o sistema, em seguida, configure para acesso à chave pública mais tarde. Categoria: Nome do Host: dbserver Protocolo: () Conexão SSH. Dados Auto-login nome de usuário: steve Conexão. SSH Protocolo SSH Preferencial Versão: () 2 Somente Uma vez que essas configurações simples tenham sido inseridas, elas podem ser salvas para facilitar o acesso na próxima vez. Clique em Sessão à esquerda e digite um nome em Sessões salvas - esse nome geralmente estará relacionado à máquina com a qual você está se conectando. Clique em Salvar para armazenar essas configurações no Registro: weve escolheu o nome Servidor de banco de dados. Login Com as configurações salvas da etapa anterior, sinta como usá-las para se conectar ao sistema de destino. Inicie o PuTTY (se não estiver aberto) e, na seção Session, clique no nome da sessão salva e clique em Load. Clique em Abrir para iniciar a conexão. Quando solicitado, digite a senha para sua conta no sistema remoto e, se estiver correta, você receberá um shell. Agora você pode começar a trabalhar no sistema. No entanto - cada vez que PuTTY se conecta com um servidor, troca a identificação sob a forma de chaves de host. Se a chave do host for desconhecida, ou não corresponder ao que vimos anteriormente, ele avisa o usuário. Para hosts desconhecidos, esta é principalmente uma operação pro forma, mas para sistemas previamente conhecidos pode sugerir que o host não é o mesmo que originalmente conectado. As chaves do host que foram alteradas sem aviso podem ocorrer quando o sistema operacional de destino é reinstalado sem restaurar as chaves de host do backup ou pode ser algo mais nefasto, como um host invasor mascarado como o genuíno. Um deve sempre investigar inesperadamente-alterado chaves de host Criando e usando várias sessões Quando o usuário só precisa se conectar com um sistema, é possível programar nesses parâmetros para a sessão padrão, mas é muito mais comum para acessar vários sistemas. Com um pouco de configuração, podemos facilmente criar e conectar a esses sistemas com um clique. Criar e salvar as sessões Como fizemos na seção anterior, crie e salve quantas sessões nomeadas sejam necessárias e faça uma anotação dos nomes das sessões. Esses nomes podem ser referenciados na linha de comando com o parâmetro - load e podem ser incorporados no atalho. Clique com o botão direito do mouse no atalho e selecione Propriedades e, em seguida, digite o parâmetro carregamento juntamente com o nome da sessão (entre aspas, se necessário). Clique em OK para salvar as propriedades de atalho. Também é uma boa idéia para renomear o atalho para refletir o nome do servidor de sua conexão: clique com o botão direito do mouse no atalho e selecione Renomear. Quando o atalho da sessão estiver totalmente configurado, clicar duas vezes no ícone inicia a conexão. Crie tantos atalhos pré-programados quanto necessário. Criar e instalar um par de chaves publicprivate O verdadeiro poder do Secure Shell entra em jogo quando as chaves publicprivate são usadas. Diferentemente da autenticação de senha, o acesso à chave pública é feito executando uma criação única de um par de números binários muito longos que são matematicamente relacionados. O passo de configuração inicial é moderadamente envolvido, mas precisa ser feito apenas uma vez: uma vez criado, a chave pode ser facilmente instalado em tantos sistemas remotos como desejado. Run PuTTYgen Um par de publicprivate chaves mdash arquivos pequenos contendo números binários muito grandes mdash é necessário, e PuTTYgen faz isso. É executado apenas uma vez para criar um par pessoal de chaves, que são instaladas onde quer que seja necessário. Clique em Iniciar. então corra . Em seguida, digite puttygen na caixa de linha de comando. Isso exibe a caixa de diálogo principal, mostrada à direita. Selecione os parâmetros chave como mostrado e clique em Gerar. Como o tamanho de chave DSA é fixado em 1024 bits, eo tamanho de chave RSA pode ser feito muito maior, recomendamos uma chave RSA de 2048 bits. Note que o padrão é 1024 bits, você tem que substituir manualmente para selecionar 2048. Nota: Não crie uma chave SSH versão 1 de qualquer tipo: eles não são seguros. Você será solicitado a criar alguma aleatoriedade movendo o mouse ao redor: isso dá ao sistema alguma entropia adicional que ajuda a criar melhores chaves. Isso leva apenas alguns segundos para gerar totalmente o par de chaves. Proteger e salvar as chaves Agora o par de chaves foi gerado, mas só existe na memória PuTTYgens: ele tem que ser salvo no disco para ser de qualquer uso. Embora a chave pública não contenha informações confidenciais e será instalada em sistemas remotos, a chave privada deve ser protegida vigorosamente: qualquer pessoa que conheça a chave privada tem a execução completa de todos os sistemas remotos. A chave privada normalmente é protegida com uma frase-senha e esta frase é inserida duas vezes nos campos indicados. O comentário é opcional, mas normalmente é o endereço de e-mail do proprietário da chave. Também poderia ser apenas o nome dos proprietários. Não se esqueça da senha que o par de chaves é inútil sem ele. A chave gerada agora deve ser salva, e isso é feito em três partes: Salvar a Chave Pública e Salvar a Chave Privada tanto o prompt para um nome de arquivo ea chave privada (com extensão. ppk) devem ser salvos em um lugar seguro. A chave pública está em um formato padrão e pode ser usada direta ou indiretamente por outro software, e tem a seguinte aparência: A chave privada está em um formato específico do PuTTY que não pode ser usado por qualquer outro software. Ele nunca será olhado diretamente pelo operador. Instale a chave pública no sistema Linux Com o puttygen ainda aberto, destaque toda a Chave Pública para colar na área de arquivos do OpenSH autorizado e digite control-C para copiar para a área de transferência do sistema local. Esses são basicamente os mesmos dados encontrados no arquivo de chave pública salva, mas em uma forma que pode ser usada diretamente no sistema Linux. Faça login no computador Linux usando a senha de contas, crie o diretório. ssh se necessário e edite o arquivo. sshauthorizedkeys. Este será um arquivo de texto, e a área de transferência deve ser colada nele. A chave pública será apenas uma linha longa, e é realmente fácil de colar os dados de uma forma que trunca os primeiros caracteres. Isso torna a chave inoperável, portanto, certifique-se que a chave começa ssh-rsa ou ssh-dsa. Salve o arquivo. Verifique se o diretório. ssh e os arquivos dentro dele são legíveis apenas pelo usuário atual (isso é uma precaução de segurança), e isso pode ser conseguido usando o comando chmod com parâmetros aplicados a todo o diretório: Saia do sistema. Nota - o arquivo authorizedkeys deve ser propriedade do usuário e unreadableunwritable por qualquer outra pessoa - o servidor OpenSSH irá negar logins se este não for o caso. Pode-se verificar isso com o comando ls: O arquivo deve ser o modo - rw -------. Anexar a chave privada à sessão SSH Agora que o par de chaves publicprivate foi criado, ele pode ser associado a uma sessão SSH. Primeiro, faça bem isso em PuTTY, iniciando o programa e carregando a sessão de interesse. Navegue para Conexão. SSH. Auth no painel Categoria à esquerda e, em seguida, preencha o arquivo de chave particular para o campo de autenticação, navegando para o arquivo. ppk salvo anteriormente. Nota - Com outros clientes Secure Shell, vimos a capacidade de anexar uma chave privada para todas as sessões (como parte de uma configuração global), mas com PuTTY parece exigir configuração para cada sessão. Não tenho certeza por quê. Retorne ao nível da categoria Sessão e salve a sessão atual. Neste ponto, PuTTY (no Windows) e OpenSSH (no Linux) são ambos configurados para acesso seguro, de chave pública. Conectar através da chave pública Agora que as etapas de configuração foram concluídas, estavam prontos para efetuar login usando o mecanismo de chave pública, evitando completamente a etapa de senha. Conecte-se com segurança Inicie o PuTTY com opções para carregar a sessão salva com a chave privada: Ao invés de solicitar a senha de contas (que diferirá em cada sistema remoto), ela pede a frase secreta que está protegendo a chave privada local. Quando a chave privada se encaixa na chave pública no servidor OpenSSH, acesso concedido e um shell apresentado ao usuário. É importante observar que, embora o usuário tenha que digitar uma palavra secreta ao efetuar login, a senha é associada à chave privada local. Não a conta remota. Mesmo se a chave pública de usuários estiver instalada em 1000 diferentes servidores remotos, a mesma senha de chave privada é exigida para todos eles. Isso simplifica muito a tarefa de lembrar as credenciais de acesso e encoraja a escolha de pessoas fortes e seguras. Desabilitando a Autenticação de Senha no OpenSSH Uma vez que os usuários público e privado par de chaves são verificados como corretos, é possível desabilitar a autenticação de senha no servidor Linux inteiramente. Isso inteiramente evita todas as tentativas possíveis de adivinhação de senhas e protege drasticamente uma máquina. No entanto, para máquinas não fisicamente locais, é aconselhável adiar a desabilitação da autenticação de senha até que seja absolutamente claro que o acesso com chave está funcionando corretamente, especialmente se vários usuários estão envolvidos. Uma vez que a autenticação de senha foi desativada, mesmo a senha de root não permitirá que um no sistema. Os novos acessos à chave pública são incentivados a testar com muito cuidado. A configuração do SSH Daemon é encontrada no arquivo sshdconfig, muitas vezes armazenado no diretório etcssh. Este é um arquivo de texto que é relativamente fácil de ler bem estar à procura de duas entradas para modificar. Primeiro é definir PasswordAuthentication para o valor não. Isso pode ser explicitamente definido como Sim. Ou pode ser comentado para confiar no padrão, mas nós desejamos explicitamente desativar este: Em segundo lugar, queremos desativar protocolo SSH versão 1: este é antigo, tem vários pontos fracos de segurança substanciais, e não deve ser permitido a partir do mundo exterior . Edite o arquivo de configuração e assegure-se de que as duas entradas de palavra-chave estejam definidas corretamente comentando as entradas antigas, se necessário. Uma vez que o arquivo de configuração tenha sido salvo, o daemon Secure Shell deve ser reiniciado na maioria das plataformas, isso pode ser feito com o mecanismo de serviço: Isso mata o daemon de escuta e o reinicia, mas não encerra nenhuma sessão de usuário individual existente. Aqueles que sentem que este pode ser um passo arriscado são convidados a simplesmente reiniciar a máquina. Neste momento, o OpenSSH deixará de aceitar senhas de qualquer tipo, com acesso concedido somente para usuários com chaves públicas pré-estabelecidas. Habilitando o Suporte do Agente SSH Até este ponto, nós fornecemos uma grande maneira de segurança de acesso ao sistema, mas ainda não é muito conveniente: ainda precisamos digitar uma (espero) frase-passe complexa de cada vez. Isso pode ficar tedioso quando um grande número de sistemas estão envolvidos. Felizmente, a suíte SSH fornece um mecanismo maravilhoso para desbloquear a chave privada uma vez, e permitindo que as conexões ssh individuais para piggyback nele sem consultar para a senha de cada vez. Launch the agent Navigate to and launch the pageant. exe program from the same location as the other PuTTY-related files, and it will put itself into the system tray (in the lower right near the clock). Double-click the icon in the tray, and it launches a dialog box with an empty list of keys. Click Add Key and navigate to the. ppk file which contains your private key. When prompted for the passphrase, enter it and click OK. Click Close to dismiss the agent. Now, launch one of the already-configured SSH sessions to a pubkey-secured remote host: it will query the agent for the private key, exchange it with the remote, and grant access without further user intervention. Note - the thoughtful reader may wonder just how the agent stores the data, and whether untrusted programs are able to obtain this secret key surreptitiously. Were not sure how it works, but weve not ever heard of real security concerns on this front. Well update this document if we learn something. Preload the private key The first thing that many PuTTY users do when logging into the system for the day is to launch the agent and add the private key. This is just a few steps, but we can optimize it just a bit more. If we launch the agent with the private key file as a parameter, it loads the key automatically. Navigate to pageant. exe and right-click to copy this icon. Paste this as a shortcut on the desktop, then right-click and select Properties. Enter the full path of the. ppk private key file as the parameter, then save the changes. Double-clicking this icon will load the keyfile, demanding the passphrase. Once entered, thats the last time its needed as long as the agent sticks around. There is very little not to like about SSH agent support. Agent Forwarding But weve not exhausted the benefits of SSH agent support. Its a clear win to avoid typing the passphrase every time a new connection is launched, but SSH also provides Agent Forwarding which can pass the credential down the connection to the remote server. This credential can then be passed to yet another server where the users public key has been installed, obviating passwords or the secret passphrase for the entire duration of a network navigation. User launches a connection to Server A: PuTTY on the local machine gets the private key from the agent and provides it to the remote server. Remote server processes the public and private key data and grants access. The user is given a shell on the local system. User attempts to connect to SystemB with ssh - A systemb ( - A enables agent forwarding), and it connects to the SSH server there. System B asks system A for the users private key data, and the SSH server on system A in turn forwards this back to the original workstation where the agent is queried. The local agent passes the data back up the connection, where its forwarded from SystemA to SystemB. SystemB receives this credential, and access is granted by comparing to the public key stored on that machine for that user. This happens automatically and quickly: it takes no more than a second or two for the entire exchange to occur, and this forwarding can go over quite a long chain of SSH connections. This provides for transparent, secure access to a wide range of remote systems. Note - All of this requires that the user have an account on each machine in question, and that the users public key is installed properly on each one. SSH forwarding doesnt provide any access which would not be granted absent forwarding it just adds a more convenient mechanism to whats already provided. Enable Forwarding in PuTTY Enabling agent forwarding is done in the PuTTY configuration dialogs much like all the rest, and just one additional box need to be checked. This option requires, of course, the use of pageant on the local system - without an agent, theres nothing to forward. Should a key-protected connection be attempted with no agent present, PuTTY will simply prompt for the passphrase as it has all along (and will do so on each connection ). Enable Forwarding on the Server In the example above, we saw that the user typed ssh - A host . but its common to make Use agent forwarding the default setting to remove the need to type the - A. The OpenSSH server configuration is found in sshdconfig . while the client configuration is in sshconfig (typically in the etcssh directory). The file can be edited and the ForwardAgent setting set to yes: This setting doesnt affect the server, so it requires no reboot or special operation for it to take effect: the next outbound connection will enable forwarding automatically. This change need be made only once (and its the default on some systems). Copying files securely With the configuration of PuTTY, public key access, and agent support (with forwarding), were prepared to step beyond terminal shell access and move files around. Secure Shell provides multiple methods for copying files from one machine to another, all working together with the same keys and agents. PSCP allows for command-line copying of files to and from a remote SSH server, and PSFTP provides an FTP-like interface for convenient file transfer. Well discuss both. PSFTP - an FTP-like client The PSFTP program can be launched from the command line or from a desktop shortcut, and in both cases accepts either a hostname or a saved session name. When launched, it connects to the target server (fully taking advantage of public keys and the local agent, if any), and presents a psftpgt prompt: Regular users of command-line FTP clients will find this familiar, though its certainly not up to the ease of use as popular GUI clients. The help command may provide some guidance. PSCP - Secure Copy Users at the command line may wish to copy files directly, and this is done with pscp . the Secure Copy command. Just like copying regular files on the local filesystem, pscp takes a machine name and directory as a source or destination. pscp can transfer one file at a time, or a whole set in a single instance: Curiously, the saved session name need not be provided just the hostname and the current username (which is usually taken automatically from the environment. It appears that psftp and pscp both consult the saved-session list, find an appropriate match, and then use the access information associated. This makes for a smooth file-transfer experience. Security Concerns and the Finer Points This Tech Tip has intended to provide a fast path to setting up a Secure Shell environment from workstation to server, but it has skipped over many of the finer points. The whole point of using Secure Shell is Security, and wed be remiss if we didnt touch on some of these points here. Well make the broader point that one must take care when working on an untrusted system: when using advanced features such as agent forwarding or private keys, one is at the mercy of a hostile operator. Kernel-based keyloggers and Trojaned binssh bi naries are just a few of many obvious risks when operating in that kind of environment. Here well touch on a few of the non-obvious points and note that in a trusted and controlled environment, these issues simply dont arise. Protect your private key Though the public key is of only minor concern, the private key must be protected vigorously. Anyone who can get to the decrypted private key (either by learning the passphrase, or brute-forcing it) has full run of all networks where the public key is installed. We strongly recommend limiting dramatically the number of places where the private key is kept. We presume that applications exist which can take a private-key file and attempt to brute-force the key, though weve not yet run across one. Agent use requires trusted machines Whenever an SSH key agent is present, whether it be on the local machine which initiates the outgoing connection, or on intermediate machines which are forwarding them, its technically possible for interlopers on those machines to get access to the secure channel. In OpenSSH, an ssh client communicates with the agent via a UNIX domain socket under the tmp directory( a representative file is tmpssh-DeB10132agent.10132 ), and its restricted to the local user. But superusers also have access to the socket, and its relatively straightforward to hijack the agent to connect to the same target machine. Related Resources

No comments:

Post a Comment