Artigos

2 de junho de 2016

Utilizando SSH no PFSense

Mais artigos de »
Escrito por: Leonardo Souza
Tags:

Resumo: neste artigo veremos com usar o SSH no PFSense. Conheça as configurações necessárias para que o PFSense permita  acesso remoto por meio do SSH (Secure Shell). Veremos com habilitar o serviço, criar chaves RSA, configurar estas chaves no PFSense e como acessar o sistema por meio de senha ou pela chave RSA.

Utilizando SSH no PFSense

SSH (Secure Shell) é um protocolo de rede que permite a conexão remota com outros computadores por meio de um túnel criptografado, o que garante uma maior segurança durante a sessão. Por possuir toda sessão criptografada, este tipo de acesso protege a conexão de ataques do tipo Man in The Meadle, ataque em que um agente intercepta a conexão, capturando assim informações dela, inclusive credenciais (user/password).




Ao habilitarmos o SSH no PFSense garantimos uma camada de segurança mais robusta durante o acesso remoto. Dessa forma qualquer pessoa que tenha as credenciais necessárias para o acesso (usuário, senha e/ou chaves públicas da conexão) pode acessar o PFSense e realizar alterações no sistema, de qualquer computador da rede como se estivesse fisicamente diante do host PFSense.

Neste artigo vamos mostrar como habilitar o SSH PFSense, realizar o acesso por meio de senhas, e, também, por meio de chave pública (sem senha).  Para isso dividimos este artigo em 5 partes:

1 – Habilitar o SSH no PFSense;

2 – Utilizar o SSH com senha;

3 – Gerando chaves RSA para o Acesso;

4 – Configurando a chave RSA no PFSense;

5 – Acessando SSH por meio da chave RSA.

Começaremos habilitando o serviço.

1 – Habilitando SSH:

Por padrão o protocolo SSH não está habilitado, por este motivo precisamos configurar o PFSense para permitir este recurso.

Para habilitar o SSH devemos acessar a área de configurações avançadas do PFSense, para isso acesse o menu System => Advanced.

menu avançado

Surgirá a tela Advanced do sistema, que contem configurações avançadas, entre elas as relacionadas ao SSH.

Procure a opção “Secure Shell”, é nela que faremos as configurações referentes ao SSH.

ssh

Aqui vemos 3 (três) opções:

Enable Secure Shell: esta é a opção que habilita o SSH. Deixe esta opção marcada.

Disable password login for Secure Shell (RSA/DSA key only): esta opção desabilita o login via SSH por meio de usuário e senha, permitindo o acesso apenas por meio de chave pública pré-configurada. Veremos esta opção mais adiante.

SSH Port: neste campo definimos a porta padrão que será utilizada pelo protocolo para realizar a troca de informações, ou seja, o acesso remoto.

Por enquanto vamos marcar apenas a opção que habilita o serviço.

As configurações básicas de SSH já estão prontas, dessa forma já podemos realizar um acesso ao nosso PFSense.

2 – Utilizando o SSH no PFSense com senha

O procedimento para este acesso é semelhante a um acesso a qualquer outro dispositivo com SSH habilitado, ou seja, utilizamos o comando “ssh” seguido do usuário e host, separados por uma “@” (arroba).

$ ssh admin@172.16.0.1

SSH no PFSense

Perceba que para realizar o login foi necessário digitar a senha do usuário informado, neste caso o usuário “admin”.

Se tiver configurado uma porta de comunicação diferente da porta 22 (padrão do SSH), será necessário informar a porta através do parâmetro “-p”.

Vamos utilizar, como exemplo, a porta “2222”.

1-acesso-ssh-port

Dessa forma conseguimos acesso ao console do PFSense por meio do Secure Shell por meio de usuário e senha.

3 – Gerando chaves RSA para o Acesso

No acesso anterior nos foi solicitado usuário e senha para realizar o login no PFSense, porém este não é a única forma de autenticação do SSH. Vamos configurar agora o PFSense para aceitar o login por meio de chaves públicas.

Dessa forma será possível acessar o console de texto sem digitar senha alguma, pois é na chave pública que estarão as informações referentes ao login. Sendo assim, no momento do login é ela quem realiza a autenticação, e, consequentemente, libera o acesso.

Por meio deste método vamos criar um par de chaves e inserir a chave pública no PFSense para que haja a autenticação por meio delas. Estas chaves podem ser criadas por meio de qualquer S.O, ou seja, GNU/Linux, Mac, FreeBSD ou até o Windows.

Para os sistemas baseados em Unix podemos utilizar o ssh-keygen, ferramenta do OpenSSH, utilitário opensource desenvolvido pelo projeto FreeBSD, e que implementa o protocolo SSH. Entre as ferramentas existentes neste utilitário está o ssh-keygen, responsável por criar as chaves. No Windows podemos utilizar o Putty, por exemplo.

Por motivos óbvios este tipo de conexão oferece vulnerabilidades, afinal como as credenciais estão armazenadas nas chaves, basta que alguém tenha posse da chave pública (em teoria) e conseguirá acesso ao computador remoto.

Vamos utilizar o FreeBSD para gerar estas chaves e transferir a pública para o PFSense.

OBSERVAÇÃO: embora neste exemplo seja utilizado o FreeBSD, o procedimento é exatamente o mesmo se for feito por meio de qualquer distro GNU/Linux.

Para gerar as chaves digite o comando ssh-keygen.

criando-chaves1

Para criar as chaves são apresentados 5 passos, nem todos obrigatórios:

  1. Escolher um arquivo/diretório para salvar as chaves, se nenhum for definido será criado o diretório .ssh dentro do diretório home do usuário proprietário das chaves.
  2. A criação do diretório pelo sistema, se não for definido nenhum diretório na etapa anterior.
  3. Definição de senha para aumentar a segurança das chaves. A escolha de senha para as chaves não é obrigatória.
  4. O sistema salva a identificação das chaves no arquivo “id_rsa” dentro do diretório .ssh do proprietário das chaves.
  5. Criação das chaves. Neste exemplo o arquivo referente a chave pública é o “id_rsa_pub” que foi criado dentro do diretório .ssh do proprietário das chaves, ou seja, o diretório /home dele.

Vamos visualizar estes arquivos dentro do diretório .ssh

ls ssh

Podemos ver o arquivo id_rsa.pub, este é o arquivo referente a chave pública. Vamos copiar esta chave e inserir ela no PFSense.

Podemos visualizar a chave utilizando o comando cat.

chave

Neste ponto já temos as chaves criadas, agora vamos copiá-la para o PFSense, assim ele as utilizará para autenticação durante o acesso.

4 – Configurando a chave no PFSense

Para simplificar o entendimento podemos dizer que a chave criada é na verdade um código que será comparado toda vez que a conexão for solicitada. Desta forma vamos inserir este código no PFSense e quando alguém solicitar a conexão, este código, existente no sistema, será comparado com o código da chave de quem solicita acesso.

Para inserir este código no PFSense precisamos copiar o conteúdo do arquivo. Perceba que não vamos copiar o arquivo da chave, e sim o conteúdo do arquivo, esta sim é a chave propriamente dita.

Para copiar esta chave vou utilizar o acesso remoto via WinSCP ,pois estou acessando o PFSense da rede interna por meio de um cliente Windows, isso tornará a cópia mais prática.

Se desejar pode utilizar outro recurso.

Copie o código referente a chave.

copia

Com a chave copiada vamos acessar o PFSense pelo WebConfigurator e inserir o código, ou seja,  a chave.

Acesse o menu System => User Manager.

menu-user

Abrirá a tela de gerenciamento de usuário.

users

Procure a opção Secure Shell e marque a caixa “Disable Password  login form Secure Shell (RSA/DSA key only)”.

apenas chave

Esta opção desabilita o login por meio de senha para utilizar a chave pública.

Agora vamos inserir a chave copiada. Encontre a opção “Keys” e insira o código copiado.

colando-chave

Salve a alteração através do botão Save.

Finalizamos a configuração do acesso por meio das chaves.

5 – Acessando o SSH por meio da chave RSA

O acesso ao PFSense via SSH é realizado da mesma forma que a outro host que permita acesso remoto por meio deste protocolo: basta digitar o comando ssh seguido do usuário e host separados por um símbolo de simbolo de @ (arroba).

Neste caso seria ssh admin@172.16.0.1 (pode-se utilizar o nome do host no lugar do IP se desejar).

$ ssh admin@172.16.0.1

console

Perceba que a senha não foi solicitada, isso ocorreu porque realizamos a configuração necessária para que a senha não fosse pedida no login. Dessa forma as credenciais foram informadas pela chave RSA.

Em caso de ter configurado uma porta diferente para o SSH, basta informá-la no momento do login.

Veja abaixo:

port-ssh

Neste exemplo definimos a porta 2222 para o SSH,sendo assim para acessar precisamos usar a seguinte opção;

concexao-porta

Para realizar logout do SSH no PFSense, ou seja, desconectar, basta utilizar a opção 0.

SSH no PFSense

Conclusão

O SSH é uma forma prática e segura de realizar acesso remoto a hosts da rede. Por este motivo é, sem dúvidas, um dos serviços mais utilizados pelos administradores de rede, afinal em sua maioria estes administradores não acessam os servidores fisicamente, e sim, por meio de acesso remoto. Logo nada melhor do que utilizar um protocolo notoriamente reconhecido por sua segurança.

Para mais detalhes sobre o SSH leia nosso artigo que trata do tema. Nele encontrará um história do projeto, recursos do protocolo, arquitetura e funcionamento do serviço , modos de acesso, criação de chaves, entre outras informações.

Espero que o conteúdo tenha sido útil.






Sobre o Autor

Foto de perfil de Leonardo Souza
Leonardo Souza
Bacharel em Informática, pós graduado em Segurança de Redes de Computadores e analista de Segurança da Informação. Entusiasta de Segurança da Informação e usuário FreeBSD, porém sem xiismo.




0 Comments


Seja o Primeiro a Comentar!


You must be logged in to post a comment.