Configurações SSH personalizadas mais comuns do servidor OpenSsh
- 817
- 213
- Loren Botsford
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
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
- « Não foi possível obter bloqueio de trava Lib Dpkg Lock - Ubuntu/Debian
- Instale e configure o MySQL Workbench no Ubuntu Linux »