Como bloquear seus servidores Linux de acessos não desejados localmente e via rede utilizando boas práticas de controles de acesso.
Para quem trabalha com infraestrutura e disponibiliza servidores através das distros linux, todo conhecimento em segurança é válido. Neste artigo eu mostrarei 8 controles de acesso em sistemas linux , seja localmente ou via rede.
Chaves SSH
Você pode configurar as autenticações sem senha usando um par de chaves SSH. Porém, apenas utilizar senhas nem sempre são boas medidas de segurança, não importa o quanto complexa elas são. Ao utilizar um par de chaves SSH você já consegue elevar o nível de segurança para acessar seus sistemas.
Autenticação SSH
Após configurar chaves SSH para autenticação, você precisa configurar o SSHD (OpenSSH Daemon) para aceita-las em um login remoto. O local do arquivo para configurar a segurança do SSHD é /etc/ssh/sshd_config. Recomenda-se alterar as seguintes opções:
- #PermitRootLogin yes -> PermitRootLogin no
- #PubkeyAuthentication yes -> PubkeyAuthentication yes
- #Permit EmptyPasswords no -> PermitEmptyPasswords no
- PasswordAuthentication yes -> PasswordAuthentication no
É preciso reiniciar o SSHD depois que efetuar as modificações do arquivo de configuração.
Remova os serviços inseguros
Para uma maior segurança dos seus sistemas, remova qualquer serviço inseguro. Podem ser considerados serviços inseguros, por exemplo, aqueles que enviam senhas em formato de texto pela rede ou aqueles que permitem conexões anônimas (não autenticado). Remova os seguintes pacotes:
- tftp-server
- ypserver
- telnet-server
- vsftpd
- rsh-server
Qualquer transferência de arquivos e conectividade entre sistemas deve ser feita usando SSH. Não há a necessidade de rsh-server, vsftpd, e telnet-server. Você deve substituir o LDAP ou Active Directory por ypserv (NIS/NIS+). Já o tftp-server, caso realmente precise utilizar, crie uma máquina virtual para isso, e instale-o em uma jaula utilizando chroot para uma maior segurança.
Senhas em branco
Verifique que todas as contas utilizam uma senha para autenticação. Não permita nenhuma conta ter uma senha em branco, nem com valor vazio. Configurar um par de chaves é uma boa prática contra senhas em branco. Remova qualquer instância de opções “nullok” em /etc/pam.d/system-auth e /etc/pam.d/password-auth para prevenir logins com senhas vazias.
Redirecionamento X11
Neste post eu falou um pouco sobre o protocolo X11. Se você usar o Protocolo X na sua rede, tenha certeza que está assegurado por SSL. Edite o arquivo /etc/ssh/sshd_config e configure o parâmetro X11Forwarding desse modo:
X11Forwarding yes
Caso o parâmetro já existe e está comentado com ‘#’, remova ‘#’ e reinicie o SSHD.
Proteja o GNOME
Se você utiliza o GNOME nos seus servidores, proteja-os editando seu arquivo de configuração localizado em /etc/gdm/custom.conf. Adicione ou edite a linha AutomaticLoginEnable na seção ‘[daemon]’ do arquivo custom.conf e mude o parâmetro para false, dessa forma:
[daemon]
AutomaticLoginEnable=false
Adicione também a linha para o TimedLoginEnable na mesma seção [daemon] do arquivo, e mude seu parâmetro para false:
[daemon]
TimedLoginEnable=false
Alguns especialistas alertam para o uso de interfaces gráficas (GUI) em servidores de sistemas, eles são alvos fáceis de malware.
Versão SNMP e nome da comunidade
Use uma versão do SNMP de 3.0 pra cima para encriptar a autenticação e mensagens. Altere o nome da string para public ou private para um valor diferente do padrão.
Essas foram algumas práticas para quem administra servidores linux. E você recomenda mais alguma?