Configurações SSH personalizadas mais comuns do servidor OpenSsh

Configurações SSH personalizadas mais comuns do servidor OpenSsh

O OpenSsh Conjunto de serviços públicos Vamos criar conexões seguras e criptografadas entre máquinas. Neste tutorial, vamos dar uma olhada em algumas das opções mais úteis que podemos usar para mudar o comportamento de sshd, o OpenSsh Daemon para facilitar seu trabalho de administração do sistema Linux.

Neste artigo, assumimos a existência de um servidor já em execução e acessível. Se você quiser saber mais sobre a instalação do OpenSSH, pode dar uma olhada neste artigo sobre como instalar o servidor SSH no Ubuntu Linux.

Neste tutorial, você aprenderá:

  • Como personalizar o comportamento do daemon sshd manipulando opções no arquivo de configuração SSH principal /etc/ssh/sshd_config
  • Como alterar as portas padrão usadas pelo servidor
  • Como alterar o endereço do servidor ouve para
  • Como alterar o tempo máximo de login SSH
  • Como permitir ou negar o login como raiz
  • Como alterar as tentativas máximas de login e o número máximo de sessão aberta
  • Como exibir uma mensagem quando o usuário tenta se autenticar para o servidor
  • Como ativar/desativar a senha e a autenticação de pubKey
  • Como ativar/desativar a autenticação do HostBased
  • Ativando/desativando o encaminhamento X11


Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Independente da distribuição
Programas Nenhum software adicional é necessário para seguir este tutorial além do OpenSsh
Outro Um servidor OpenSsh em execução
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

O arquivo de configuração do Daemon SSHD

Por padrão sshd, o OpenSsh Daemon, lê sua configuração do /etc/ssh/sshd_config arquivo. Um caminho de arquivo diferente pode ser especificado usando o -f opção ao lançar o daemon. Existem muitas opções que podemos mudar para alterar o comportamento do daemon. Embora não seja possível mencionar todos eles aqui, veremos alguns dos mais usados ​​e o que podemos obter alterando seus valores. Toda vez que uma opção é alterada, para tornar as alterações eficazes, o daemon deve ser reiniciado. Ao usar o Systemd, o comando a ser executado é:

$ sudo systemctl reiniciar sshd

Alterando as portas usadas pelo servidor

Isso é o que é chamado de Segurança através da obscuridade Medida: por padrão o sshd Daemon escuta na porta 22. Alterar a porta em uso não melhora a segurança em si, pois é trivial fazer uma verificação de porta e ver quais portas estão em uso por uma máquina. Mais do que sempre, no entanto, as tentativas de login de força bruta apenas visam a porta padrão, portanto, modificar a porta em uso pode ajudar. Para instruir o daemon a ouvir uma porta específica, usamos o Porta opção e forneça o número da porta:

Porta 1024


Múltiplas ocorrências da opção podem ser fornecidas: o servidor ouvirá em todas as portas especificadas. Antes de reiniciar o servidor SSH para tornar a mudança eficaz, é realmente importante modificar as regras do firewall de acordo com a mudança. No lado do cliente, para conectar usando uma porta específica, devemos especificar o número da porta usando o -p Opção (abreviação para -port). Por exemplo, para fazer login usando a porta 1024, escrevíamos:

$ SSH -P 1024 EGDOC@FEANOR

Para evitar ter que especificar a porta cada vez que nos conectarmos ao servidor, podemos configurar uma entrada para ela no ~/.ssh/config Arquivo (podemos ter que criá -lo, pois ele não existe por padrão e devemos torná -lo acessível apenas pelo usuário), como no exemplo abaixo:

Host Feanor HostName 192.168.0.39 Porta 1024

Dessa forma, cada vez que tentaremos SSH em uma correspondência Hospedar (Feanor neste caso) Os parâmetros especificados na estrofe relacionada do arquivo de configuração SSH serão aplicados automaticamente.

Alterando o endereço que o servidor ouve para

Além do porto o sshd Daemon ouve, também podemos alterar o Ouça o endereço. Por padrão, o servidor ouve em todos os endereços locais. Exemplos da sintaxe para usar com esta opção já podem ser encontrados no arquivo de configuração SSH:

#Listenaddress 0.0.0.0 #listenaddress ::

Podemos especificar o endereço de uma das seguintes maneiras:

  • Host | Endereço IPv4 | Endereço IPv6
  • Host | Endereço IPv4: Porta
  • Host | Endereço IPv6: Porta

A opção de uso é chamada Ouça Múltiplas ocorrências das opções são permitidas, a fim de especificar vários endereços. Podemos usar IPv4 ou IPv6 endereço e especificar opcionalmente a porta a ser usada. Se não especificarmos uma porta o sshd Daemon ouvirá nos portos especificados com o Porta opção que vimos acima.

Alterando o tempo máximo de login

Podemos configurar o OpenSsh Daemon para desconectar após um período de tempo especificado se o usuário não efetuar login com sucesso. Nesse caso, a opção que queremos mudar é chamada LogingRacetime. Tudo o que precisamos fazer é fornecer o valor limite de tempo, por exemplo:

LogingRacetime 2m

O valor padrão para esta opção é 120s (segundos)

Permitir ou negar o login como raiz

Usando o Permitrootlogina opção, podemos estabelecer se o sshd Daemon deve permitir que o usuário raiz faça login diretamente. A opção aceita um desses valores:

  • sim
  • não
  • Proibit-Password
  • apenas comando forçado

Os dois primeiros valores são bastante auto-explicativos. Ao usar sim O usuário root pode fazer o login via SSH, ao usar não Esta possibilidade é negado. O Proibit-Password e apenas comando forçado Os valores são mais interessantes.

Quando o primeiro
é usado como o valor do Permitrootlogina Opção, senha e logins interativos do teclado estão desativados, mas o usuário root pode fazer login usando um chave pública. Se apenas comando forçado é usado, em vez disso, o login root via autenticação de chave pública é permitida, mas apenas se um comando a opção é especificada na chave autorizada. Por exemplo:

command = "ls -a" ssh -rsa […]


Acima, especificamos LS -A como o comando da chave ssh que será usada pela raiz. Dessa forma, ao se conectar usando a chave, o comando será executado e, em seguida, a conexão com o servidor será fechada. Vamos verificar (aqui presumi que a chave já está em vigor no cliente e foi autorizada no servidor):

$ ssh root@feanor Digite a senha para a chave '/home/egdoc/.ssh/id_rsa ':… bash_history .Bashrc .perfil .ssh .vim .conexão Viminfo com Feanor fechada.

Alterar as tentativas de login máximo e o número máximo de sessão aberta

Outros dois parâmetros que queremos mudar é o número de tentativas de login por conexão e o número de conchas abertas, login ou sessão de subsistema permitida. Podemos mudar o parâmetro anterior usando o Maxauthtries opção, fornecendo o número de tentativas permitidas (o valor padrão é 6). O último, em vez disso, pode ser modificado usando o MaxSessions opção. Esta opção também leva um valor inteiro, o ser padrão 10.

Exiba uma mensagem quando o usuário tenta autenticar para o servidor

Podemos usar o Bandeira Opção para especificar um arquivo que contém algum texto que queremos enviar ao usuário antes que ele se autentique ao servidor. O valor padrão para a opção é nenhum, Portanto, nenhum banner é exibido. Aqui está um exemplo. O arquivo/etc/ssh/banner que criamos contém algum texto que usamos como uma mensagem. Se definirmos a opção como abaixo:

Banner/etc/ssh/banner.TXT

Quando tentamos fazer login, obtemos o seguinte resultado:

$ ssh egdoc@feanor ##################################Bancrinho############# ###################### egdoc@senha de Feanor: 

Ativar/desativar a senha e a autenticação de pubKey.

O sshd Daemon fornece várias maneiras de autenticar usuários. Podemos optar por ativar ou desativar a autenticação por senha ou por chave pública usando respectivamente o PasswordAuthentication e PubKeyauthentication opções. Por padrão, ambas as opções geralmente são definidas como sim: Isso significa que o usuário pode se conectar ao servidor, fornecendo sua senha e também usando uma chave pública que possui (a chave também pode ser protegida por uma senha). Para desativar uma das duas opções que simplesmente usamos não como um valor. Por exemplo, se quiser permitir o login por chaves públicas, podemos definir:

PasswordAuthentication no

Dessa forma, apenas os usuários que têm um chave pública Contido no arquivo de chaves autorizadas poderá fazer login no servidor. O arquivo de chaves autorizado é o arquivo que contém as chaves públicas permitidas. Por padrão, o arquivo é .ssh/autorizado_keys no diretório inicial do usuário no servidor, mas isso pode ser alterado usando o Autorizado KeysFile opção e especificando um arquivo alternativo, fornecendo um absoluto ou a relativo caminho. Quando um caminho relativo é usado, é considerado em relação ao diretório inicial dos usuários. A opção também pode ser definida como nenhum: Dessa forma, o servidor não procurará chaves públicas em arquivos.

Habilitando/desativando a Autenticação HostBased

O servidor OpenSsh pode ser definido para aceitar baseado em hospedeiro autenticação. Ao usar esse tipo de autenticação, um host autentica em nome de todos ou alguns de seus usuários. A opção está definida como não por padrão. Definindo a opção para sim não é suficiente para fazer a autenticação baseada no hospedeiro funcionar.

Ativando/desativando o encaminhamento X11

O X11 Window System possui uma arquitetura cliente-servidor: os clientes são os muitos aplicativos gráficos que solicitam conexão com o servidor que gerencia exibições. O servidor X11 e seus clientes geralmente são executados na mesma máquina, mas isso não é necessário. É possível acessar um servidor X11 remoto por meio de um protocolo dedicado, mas inseguro. OpenSsh Vamos executar a conexão com segurança, criando um túnel criptografado. A opção que controla esse comportamento é X11 para a direção. O recurso geralmente é desativado por padrão, por isso está definido como não.

Devemos definir a opção para sim Se queremos tirar proveito disso. No lado do cliente, habilitamos o recurso usando o -X opção da linha de comando, ou definido ForwardX11 para sim No arquivo de configuração do cliente. Por exemplo, digamos que tenhamos X11 em execução na máquina remota; Queremos usar a conexão SSH para iniciar o aplicativo "Pluma" (um editor de texto leve) e controlá -lo usando o x11 para. Nós corremos:

$ ssh egdoc@feanor -x pluma


O programa será lançado. Na barra de título, claramente podemos ver que ela está sendo executada em "Feanor", que é o nome da máquina remota.



X11 Encaminhamento em ação

Conclusão

Neste tutorial, vimos o que é o padrão sshd arquivo de configuração de daemon e aprendemos como podemos usar uma alternativa especificando seu caminho com o -f opção ao iniciar o serviço. Também demos uma olhada em algumas das opções mais úteis que podemos usar no referido arquivo para alterar o comportamento do SSHD. Vimos como permitir ou negar autenticações baseadas em senha e com base pública; como ativar ou negar o login de raiz; Como ativar ou desativar o recurso de encaminhamento X11 e como fazer o servidor exibir uma mensagem quando um usuário tenta autenticar nele.

Também vimos como especificar as tentativas máximas permitidas de login por conexão e como alterar os endereços e portas que o servidor ouve. Para saber mais sobre as possíveis configurações de servidor, consulte a página manual para SSHD e o arquivo de configuração SSHD_CONFIG.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Como aproveitar ao máximo o OpenSsh
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Linux: Configurar SSH
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Coisas para instalar no Ubuntu 22.04
  • Como monitorar a atividade da rede em um sistema Linux
  • Instale Arch Linux na estação de trabalho VMware
  • Download do Linux