Bê-á-bá do SSH, parte 9: Controle de acesso
O último
artigo desta série abordou a criação de túneis pelo OpenSSH, um dos recursos
mais práticos, que permitem contornar as dificuldades do NAT e ainda garantir a
segurança de máquinas remotas em viagens por meio de simples VPNs.
Vejamos agora como controlar o acesso ao seu servidor OpenSSH. Por interface de redeO arquivo ListenAddress 0.0.0.0 Esta opção, se definida com o valor acima, faz com que o servidor OpenSSH escute em todas as interfaces de rede da máquina. Se seu servidor possui mais de uma conexão de rede, cabe a seguinte pergunta: o OpenSSH deve escutar em todas as interfaces? Caso seu servidor tenha uma interface com o IP 10.1.2.3 e a outra com o IP
192.168.100.200, e não precise escutar OpenSSH na primeira, basta usar o
seguinte valor no arquivo de configuração do servidor OpenSSH
( ListenAddress 192.168.100.200 Por iptablesBloquear um serviço de rede via iptables é sempre uma possibilidade, mas pode ser interessante deixar esse recurso como última opção. A menos, claro, que você esteja concentrando no iptables todas as filtragens de serviços. Nesse caso, bastam linhas como: # iptables -A INPUT -s <red para ativar o serviço SSH vindo de determinada rede ou host. Por tcp_wrappersO sistema tcp_wrappers foi feito justamente para dar aos serviços como o
OpenSSH um controle de acesso mais refinado. Com ele, basta incluir nos arquivos
Um dado interessante do tcp_wrappers é que não é ele que nega ou permite acesso aos serviços. O tcp_wrappers simplesmente informa ao serviço específico caso o endereço de origem da conexão seja proibido. Então, continua sendo o serviço — no caso, o OpenSSH — quem nega ou permite acesso. Ele simplesmente passa a contar com a ajuda do tcp_wrappers para tomar essa decisão. Por isso, antes de usar o tcp_wrappers em conjunto com seu servidor
# ldd $(which sshd) lib... ... libwrap.so.0 => /lib/libwrap.so.0 (0x0 Como você pode ver, o binário Se você deseja impedir que a rede 10.0.0.0/8 se conecte ao seu servidor
OpenSSH, basta acrescentar a seguinte linha ao arquivo
sshd: 10.0.0.0/8 Porém, se há uma máquina dentro da rede 10.0.0.0/8 (a máquina 10.1.2.3, por exemplo) que deve poder acessar seu servidor, você pode usar a linha um pouco diferente: sshd: 10.0.0.0/8 EXCEPT 10.1.2.3 É possível ainda definir nomes de redes e de hosts. Por exemplo, para proibir
máquinas do domínio perigo.br de acessarem seu servidor OpenSSH, basta adicionar
a seguinte linha ao sshd: .perigo.br ConclusãoO tcp_wrappers é um sistema extremamente poderoso e flexível, características típicas das soluções livres. Um post futuro ainda vai tratar de mais detalhes dele. Por enquanto, confira as páginas de manual hosts_access(5) e hosts_options(5) Até breve! |