a maioria das pessoas assume que o Linux é seguro, e isso é uma falsa suposição. Imagina que o teu portátil é roubado sem ser endurecido. Um ladrão provavelmente assumiria que seu nome de usuário é ” root “e sua senha é” toor”, uma vez que essa é a senha padrão no Kali e a maioria das pessoas continuam a usá-la. E tu? Espero que não.
as implicações negativas da carreira de escolher não endurecer a sua máquina Kali Linux são graves, por isso vou partilhar os passos necessários para tornar a sua máquina Linux segura, incluindo a forma como uso o teste de penetração e o Kali Linux para fazer o trabalho. É importante notar que, embora sejam muitas distribuições (AKA distros) do Linux e cada uma difere da perspectiva da linha de comando, a lógica é a mesma. Use as seguintes dicas para endurecer a sua própria caixa Linux.
- 1-documente a informação da máquina
- 2-protecção BIOS
- 3-encriptação em disco rígido (confidencialidade)
- 4-Proteção do disco (disponibilidade)
- 5-bloqueie a pasta de arranque
- 6-Desativar USB de uso
- 7-atualização do Sistema
- 8-Verifique os pacotes instalados
- 9-Verificação de portas abertas
- 10-Secure SSH
- 11- Enable SELinux
- 12- parâmetros de rede
- 13- Políticas de senha
- 14-Permissões e verificações
- 15- processo de endurecimento
- palavras finais
1-documente a informação da máquina
cada vez que você trabalha em uma nova tarefa de endurecimento Linux, você precisa criar um novo documento que tem todos os itens da lista de verificação listados neste post, e você precisa verificar todos os itens que você aplicou. Além disso, no topo do documento, você precisa incluir a informação da máquina Linux:
- nome da Máquina
- endereço IP
- endereço Mac
- Nome da pessoa que está fazendo o endurecimento (provavelmente você)
- Data
- Número do Ativo (Se você estiver trabalhando para uma empresa, então você precisa incluir o número do imobilizado que a sua empresa utiliza para marcação de hosts.)
2-protecção BIOS
é necessário proteger a BIOS do hospedeiro com uma senha para que o utilizador final não seja capaz de alterar e sobrepor as definições de segurança da BIOS; é importante manter esta área protegida de quaisquer alterações. Cada fabricante de computador tem um conjunto diferente de chaves para entrar no modo BIOS, então é uma questão de encontrar a configuração onde você define a senha administrativa.
Em seguida, você precisa desativar o arranque de dispositivos de mídia externos (USB/CD/DVD). Se você omitir para alterar esta configuração, qualquer um pode usar uma pen USB que contém um sistema operacional inicializável e pode acessar os dados do seu sistema operacional.
+ deseja saber mais sobre o Linux? Aprenda mais com Pluralsight, uma plataforma de aprendizagem tecnológica. Aprenda o Linux agora. +
as placas-mãe dos servidores mais recentes têm um servidor WEB interno onde você pode acessá-las remotamente. Certifique-se de alterar a senha padrão da página de administração ou desativá-lo, se for possível.
3-encriptação em disco rígido (confidencialidade)
a maioria das distribuições Linux irão permitir-lhe cifrar os seus discos antes da instalação. Criptografia de disco é importante em caso de roubo, porque a pessoa que roubou o seu computador não será capaz de ler os seus dados se eles conectam o disco rígido à sua máquina.
na imagem abaixo, escolha a terceira opção da lista: guiado-use o disco inteiro e configure o LVM encriptado (LVM significa Gestor de volume lógico).)
se sua distribuição Linux não suporta criptografia, você pode ir com um software como TrueCrypt.
4-Proteção do disco (disponibilidade)
Backups têm tantas vantagens em caso de um sistema danificado, bugs na atualização do so. Para servidores importantes, o backup precisa ser transferido fora do local em caso de um desastre. Backup precisa ser gerenciado também. Por exemplo, quanto tempo você vai manter os backups antigos? Quando você precisa fazer backup de seu sistema (todos os dias, todas as semanas …)?
sistemas Críticos devem ser separados em diferentes partições para:
/
/boot
/usr
/home
/tmp
/var
/opt
Porcionamento discos dá-lhe a oportunidade de desempenho e de segurança em caso de um erro de sistema. Na imagem abaixo, você pode ver a opção de como separar partições no Kali Linux durante a instalação.
5-bloqueie a pasta de arranque
a pasta de arranque contém ficheiros importantes relacionados com o kernel do Linux, por isso terá de se certificar de que esta pasta está bloqueada para as permissões apenas para leitura, seguindo os próximos passos simples. Primeiro, Abre o ficheiro “fstab”.
em seguida, adicione a última linha destacada na parte inferior.
Quando você terminar de editar o arquivo, você precisa definir o proprietário, executando o seguinte comando:
#chown root:root /etc/fstab
em seguida, defina algumas permissões para proteger as configurações de inicialização:
- define o proprietário e o grupo de /etc/grub.conf para o utilizador raiz:
#chown root:root /etc/grub.conf
- definir a permissão no /etc / grub.conf arquivo para leitura e gravação para raiz:
#chmod og-rwx /etc/grub.conf
- Exigir autenticação para o modo de usuário único:
#sed -i "/SINGLE/s/sushell/sulogin/" /etc/sysconfig/init
#sed -i "/PROMPT/s/yes/no/" /etc/sysconfig/init
6-Desativar USB de uso
Dependendo de como críticas do seu sistema, às vezes é necessário desativar os sticks USB de uso no host Linux. Existem várias maneiras de negar o uso do armazenamento USB; aqui está um popular:
abra a “lista negra”.conf” arquivo utilizando o seu editor de texto favorito:
#nano /etc/modprobe.d/blacklist.conf
Quando abre o ficheiro, em seguida, adicione a seguinte linha no final do arquivo (salvar e fechar):
blacklist usb_storage
Após isso, abra o rc.local do arquivo:
#nano /etc/rc.local
por último, adicione as seguintes duas linhas:
modprobe -r usb_storage
exit 0
7-atualização do Sistema
a primeira coisa A fazer após o primeiro boot é para atualização de sistema; isto deve ser uma etapa fácil. Geralmente, você abre a sua janela de terminal e executa os comandos apropriados. No Kali Linux, você conseguir isso através da execução de comandos na imagem abaixo:
8-Verifique os pacotes instalados
Lista todos os pacotes instalados em seu sistema operacional Linux e remover o desnecessários. Você precisa ser muito rigoroso se o host que você está tentando endurecer é um servidor porque os servidores precisam do menor número de aplicativos e serviços instalados neles. Aqui está um exemplo de como listar os pacotes instalados no Kali Linux:
Lembre-se que desabilitar serviços desnecessários irá reduzir a superfície de ataque, por isso é importante remover as seguintes legado serviços se você achou instalado no servidor Linux:
- o servidor Telnet
- servidor RSH
- servidor NIS
- servidor TFTP
- TALK server
9-Verificação de portas abertas
Identificação de conexões abertas para a internet é uma missão crítica. No Kali Linux, eu uso o seguinte comando para detectar quaisquer portos abertos escondidos:
10-Secure SSH
sim, de fato SSH é seguro, mas você precisa endurecer este serviço também. Em primeiro lugar, se você pode desativar o SSH, isso é um problema resolvido. No entanto, se você quiser usá-lo, então você tem que alterar a configuração padrão do SSH. Para fazê-lo, navegue para /etc/ssh e abra o ficheiro “sshd_ Config” usando o seu editor de texto favorito.
- mudar a porta padrão número 22 para outra coisa, por exemplo, 99.
- certifique-se que o root não consegue entrar remotamente através do SSH:
PermitRootLogin no
- permitir alguns utilizadores específicos:
AllowUsers
a lista pode continuar, mas deve ser suficiente para começar. Por exemplo, algumas empresas adicionam banners para dissuadir os atacantes e desencorajá-los de continuar. Eu encorajo você a verificar o manual do SSH para entender todas as configurações neste arquivo, ou você pode visitar este site para mais informações.
Aqui estão algumas opções adicionais que você precisa se certificar de existir no arquivo” sshd_config”:
- Protocol2
- IgnoreRhosts yes
- HostbasedAuthentication não
- PermitEmptyPasswords no
- X11Forwarding não
- MaxAuthTries 5
- Cifras aes128-ctr,aes192-ctr aes256-ctr
- ClientAliveInterval 900
- ClientAliveCountMax 0
- UsePAM yes
Finalmente, defina as permissões no arquivo sshd_config, de modo que apenas usuários root pode alterar seu conteúdo:
#chown root:root /etc/ssh/sshd_config
#chmod 600 /etc/ssh/sshd_config
11- Enable SELinux
Security Enhanced Linux is a Kernel security mechanism for supporting access control security policy. O SELinux tem três modos de configuração:
- Desativado: desligado
- Permissiva: Imprime avisos
- Aplicação: Política é imposta
Usando um editor de texto, abra o arquivo de configuração:
#nano /etc/selinux/config
E certifique-se de que a diretiva é aplicada:
SELINUX=enforcing
12- parâmetros de rede
garantir as suas actividades de rede host Linux é uma tarefa essencial. Nem sempre assumas que a tua firewall vai tratar de tudo. Aqui estão algumas características importantes a considerar para garantir a sua rede de host:
– desativar o encaminhamento de IP, definindo a rede.ipv4.parâmetro ip_forward a 0 em ” / etc / sysctl.conf”
– activar a protecção da mensagem de erro má, definindo a rede.ipv4.icmp_ignore_bogus_error_responses parâmetro 1 in ” / etc / sysctl.conf ”
recomendo vivamente a utilização do Firewall Linux, aplicando as regras iptable e filtrando todos os pacotes recebidos, enviados e encaminhados. Configurar as suas regras iptables vai levar algum tempo, mas vale a pena a dor.
13- Políticas de senha
as pessoas muitas vezes reutilizam suas senhas, o que é uma má prática de segurança. As senhas antigas são armazenadas no arquivo “/etc/security/opasswd”. Vamos usar o módulo PAM para gerir as Políticas de segurança da máquina Linux. Sob uma distribuição debian, abra o arquivo ” / etc / pam.d / common-password ” usando um editor de texto e adicionar as duas linhas seguintes:
auth sufficient pam_unix.so likeauth nullok
password sufficient pam_unix.so remember=4
(não permitirá que os usuários reutilizem as últimas quatro senhas.)
outra política de senha que deve ser forçada é senhas fortes. O módulo PAM oferece um pam_cracklib que protege o seu servidor de ataques de dicionário e força bruta. Para realizar esta tarefa, abra o arquivo / etc / pam.d / system-auth usando qualquer editor de texto e adicionar a seguinte linha:
/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1
O Linux irá alterar a senha para evitar gravá-la no cleartext, por isso, terá de se certificar de definir um algoritmo seguro de lavagem de senhas SHA512.
outra funcionalidade interessante é bloquear a conta após cinco tentativas falhadas. Para fazer isso acontecer, você precisa abrir o arquivo ” / etc / pam.d/senha-auth” e adicione as seguintes linhas:
auth required pam_env.so
auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800
auth pam_unix.so
auth pam_faillock.so authfail audit deny=5 unlock_time=604800
auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=604800
auth required pam_deny.so
Nós não somos feitos ainda; uma etapa adicional é necessária. Abra o ficheiro ” / etc / pam.d/system-auth” e certifique-se de que você tem as seguintes linhas adicionadas:
auth required pam_env.so
auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800
auth pam_unix.so
auth pam_faillock.so authfail audit deny=5 unlock_time=604800
auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=604800
auth required pam_deny.so
Depois de cinco tentativas falhadas, somente um administrador pode desbloquear a conta utilizando o seguinte comando:
# /usr/sbin/faillock –user <userlocked> –reset
Também, outra boa prática é definir a palavra-passe expira após 90 dias, para realizar esta tarefa, você precisa:
- configure o parâmetro PASS_MAX_DAYS para 90 em ” / etc / login.defs”
- Alterar o active usuário, executando o seguinte comando :
#chage --maxdays 90 <user>
A próxima dica para melhorar as senhas de políticas para restringir o acesso para o comando su definindo o pam_wheel.então os parâmetros em “/etc/pam.d / su”:
auth necessária pam_wheel.so use_uid
a dica final para a Política de senhas é desactivar as contas do sistema para utilizadores não root usando o seguinte programa bash:
#!/bin/bash
for user in `awk -F: '( < 500) {print }' /etc/passwd`; do
if
then
/usr/sbin/usermod -L $user
if && &&
then /usr/sbin/usermod -s /sbin/nologin $user
fi
fi
done
14-Permissões e verificações
Prepare-se mentalmente porque esta vai ser uma longa lista. Mas, permissões é uma das tarefas mais importantes e críticas para alcançar o objetivo de segurança em uma máquina Linux.
#chown root:root /etc/anacrontab
#chmod og-rwx /etc/anacrontab
#chown root:root /etc/crontab
#chmod og-rwx /etc/crontab
#chown root:root /etc/cron.hourly
#chmod og-rwx /etc/cron.hourly
#chown root:root /etc/cron.daily
#chmod og-rwx /etc/cron.daily
#chown root:root /etc/cron.weekly
#chmod og-rwx /etc/cron.weekly
#chown root:root /etc/cron.monthly
#chmod og-rwx /etc/cron.monthly
#chown root:root /etc/cron.d
#chmod og-rwx /etc/cron.d
Definir o direito e permissões em “/var/spool/cron” para “raiz crontab”
#chown root:root <crontabfile>
#chmod og-rwx <crontabfile>
Definir Usuário/Proprietário do Grupo e Permissão “passwd” arquivo
#chmod 644 /etc/passwd
#chown root:root /etc/passwd
Definir Usuário/Proprietário do Grupo e Permissão no “grupo” arquivo
#chmod 644 /etc/group
#chown root:root /etc/group
Definir Usuário/Proprietário do Grupo e Permissão “sombra” arquivo
#chmod 600 /etc/shadow
#chown root:root /etc/shadow
Definir Usuário/Proprietário do Grupo e Permissão “gshadow” arquivo
#chmod 600 /etc/gshadow
#chown root:root /etc/gshadow
15- processo de endurecimento
Para o último item na lista, eu estou incluindo algumas dicas que devem ser consideradas ao fortalecimento de um host Linux.
em primeiro lugar, restringir os dumps do núcleo por:
- adicionar o núcleo duro 0 aos ” /etc/security / limits.conf ” file
- Adding fs.suid_dumpable = 0 para o ” / etc / sysctl.ficheiro conf”
Em segundo lugar, configurar o escudo Exec por:
- adicionar kernel.exec-shield = 1 para o “/etc/sysctl.conf ” file
Third, enable randomized Virtual Memory Region Placement by:
- adicionar kernel.randomize_va_space = 2 to the ” / etc / sysctl.ficheiro conf”
palavras finais
neste pequeno post, cobrimos muitas configurações importantes para a segurança Linux. Mas, nós apenas arranhamos a superfície do endurecimento Linux-há um monte de configurações complexas e rudimentares. Para saber mais sobre como endurecer seus servidores Linux para uma melhor segurança, confira meus cursos em Pluralsight.Gus Khawaja é um consultor de segurança e autor em Pluralsight. Ele trabalha em segurança, TI e desenvolvimento de aplicações Web e cria cursos para Pluralsight. Gus entregou e desenvolveu com sucesso soluções de TI para empresas em todo o Canadá. Depois de muitos anos de experiência em Ciência da computação, ele voltou sua atenção para a segurança cibernética e a importância que a segurança traz a este campo minado. Sua paixão por hacking ético misturou-se com seu passado na programação e isso faz dele um sábio profissional Suíço de canivete no campo da ciência da computação.