O Guia Completo do Arquivo Sshd_Config para Linux

O Guia Completo Do Arquivo Sshd Config Para Linux



O protocolo SSH ou Secure Shell é usado para fazer login remotamente em uma máquina e executar comandos na máquina remota. Os dados que são transferidos usando o protocolo SSH são criptografados com algoritmos especiais que tornam o SSH mais seguro do que o Telnet. Basicamente, o OpenSSH é uma ferramenta que implementa esse protocolo.

O que vamos cobrir?

Neste guia, exploraremos os diferentes aspectos do arquivo de configuração do servidor OpenSSH. Vamos começar agora.







Arquivos de Configuração do OpenSSH

Existem alguns arquivos principais para o cliente e servidor OpenSSH. Possui dois tipos de arquivos de configuração:



1. Arquivos relacionados ao lado do cliente: Um dos arquivos é o ssh_config. É um arquivo de configuração de todo o sistema. Este arquivo está localizado em /etc/ssh/ssh_config.



O outro arquivo é config, que é um arquivo de configuração específico do usuário localizado em $HOME/.ssh/config.





O programa SSH em um host obtém a configuração desses arquivos ou por meio da interface de linha de comando. No caso dos arquivos mencionados anteriormente, o arquivo de configuração de todo o sistema, que é ssh_config, tem prioridade sobre o arquivo “config” específico do usuário.

2. sshd_config: Está relacionado ao lado do servidor. O servidor OpenSSH lê este arquivo ao iniciar.



Explorando o sshd Arquivo de configuração

O arquivo de configuração sshd contém muitas diretivas que também podem ser personalizadas. Vejamos o layout padrão deste arquivo:

$ gato / etc / ssh / sshd_config


# Este é o arquivo de configuração de todo o sistema do servidor sshd. Ver

# sshd_config(5) para mais informações.

Porta 222
Endereço de escuta 0.0.0.0
OuvirEndereço ::
HostKey / etc / ssh / ssh_host_key
ServerKeyBits 768
LoginGraceTime 600

KeyRegenerationInterval 3600
PermitRootLogin sim
Ignorar Rhosts sim
Modos restritos sim
X11 Encaminhamento não

AllowTcpForwarding não
permitirTTY não
X11DisplayOffset 10
PrintMotdName sim
Mantenha vivo sim
SyslogFacility AUTH

INFORMAÇÕES de Nível de Log
RhostsAuthentication não
RhostsRSAAuthentication não
RSAAuthentication sim
Autenticação de Senha sim
AllowEmptyPasswords não
CheckMail não


Qualquer linha que comece com “#” é considerada um comentário. Vamos explorar alguns dos parâmetros fornecidos:

1. A diretiva Port especifica um número de porta. Este é o número da porta na qual o sshd escuta as conexões. O valor padrão para esta porta é 22, que é o padrão. No entanto, em nosso caso, mudamos para 222.

Além disso, podemos especificar mais de uma diretiva Port. Dessa forma, podemos usar várias portas para ouvir as conexões sshd.

2. O ListenAddress contém o endereço IP para escuta. A ação padrão é escutar em todos os endereços IP vinculados ao servidor. Observe também que a diretiva Port deve suceder a diretiva ListenAddress.

3. O caminho totalmente qualificado do arquivo de chave do host RSA privado é especificado pela diretiva HostKey. No caso anterior, o caminho é /etc/ssh/ssh_host_key .

4. A diretiva PermitRootLogin permite o login root para sshd quando está definido como sim. Isso deve ser definido como não, a menos que os arquivos hosts.allow e hosts.deny sejam usados ​​para restringir o acesso sshd.

5. A diretiva X11Forwarding permite o encaminhamento do X Window System quando definido como sim.

6. Qual instalação de Syslog que o sshd deve usar é especificado usando a diretiva SyslogFacility. Mantenha o valor padrão como está.

7. O nível de criação de log para Syslog é especificado usando a diretiva LogLevel.

Alterando a sshd Porta

Por padrão, o sshd ou o daemon do servidor OpenSSH usa a porta 22 do protocolo TCP. É recomendável alterar esse número de porta para algum outro valor em um ambiente de teste. Isso nos garante que a conectividade do servidor esteja disponível o tempo todo.

Além disso, é uma boa prática verificar a sintaxe da configuração de um novo arquivo sshd_config antes de usá-lo, independentemente da porta em que ele é executado. Para verificar a sintaxe, podemos usar o seguinte comando:

$ sshd -t


Também é importante observar que apenas o usuário root deve ser capaz de ler e gravar neste arquivo. Isso significa que, se um arquivo de configuração sshd_config estiver devidamente protegido, a execução do comando anterior precisará de autoridade root.

Se nenhuma saída aparecer ao executar o comando de verificação de sintaxe anterior, isso significa que o arquivo está correto.

Modificando o arquivo de configuração padrão e a porta

Em alguns casos, queremos executar uma nova instância de sshd em uma porta diferente. Isso pode ocorrer porque a porta 22 já está em uso ou pode haver algumas áreas de risco ao alterar essa porta em um ambiente de produção. Nesse tipo de situação, podemos criar um arquivo de configuração alternativo para nosso servidor.

Vamos criar um novo arquivo sshd_config como sshd_config_new. Este arquivo pode ser usado para alguns parâmetros de servidor diferentes. Agora, vamos especificar este arquivo para ser considerado como o novo arquivo de configuração do servidor na porta número 100:

$ sudo / usr / sbin / sshd -f / etc / ssh / sshd_config_new -p 100


O daemon sshd agora escuta na porta 100. Podemos usar qualquer valor de porta, mas não aquele que já está em uso.

Agora, vamos verificar se nossa nova porta está funcionando conforme desejado. Para isso, temos que usar um programa cliente ssh e executar o seguinte comando:

$ / usr / lixeira / ssh -p 100 < ip do servidor >



A opção “-p” especifica a porta 100 a ser usada no servidor remoto. Caso estejamos testando localmente, podemos usar o IP do servidor para ser o IP localhost:

$ / usr / lixeira / ssh -p 100 127.0.0.1

Solução de problemas de configuração do OpenSSH

Às vezes, nosso servidor não está funcionando como desejado. Nesses casos, podemos usar o sinalizador “-d” para solucionar problemas de configuração do servidor OpenSSH. Usando o sinalizador “-d”, o servidor entra no modo de depuração e manipula apenas uma única conexão.

A saída produzida no modo de depuração é detalhada. Podemos usar mais sinalizadores “-d” para aumentar o nível de depuração. Vamos executar o comando debug em nosso servidor usando o novo arquivo de configuração:

$ / usr / sbin / sshd -d -p 100 -f / etc / ssh / sshd_config_new


A saída do comando anterior é registrada no stderr em vez de usar o recurso AUTH do syslogd.

Conclusão

O daemon OpenSSH ou sshd é uma parte crucial de muitas infraestruturas de administração. Como tal, requer experiência para gerenciá-lo para uma operação ideal. Neste artigo, aprendemos sobre o arquivo de configuração do servidor OpenSSH como sshd_config.