Segurança Linux
Ae galera, vou disponibilizar aqui algumas dicas sobre segurança de sistemas GNU/Linux, vale lembrar que são apenas dicas, não é nenhum “Manual de Segurança”, são dicas que fui “ajuntando” aqui e que acabo usando no dia-a-dia, aconselho fortemente uma pesquisa sobre os assuntos que você não conhecer, o pai google ta ae pra isso :-) conforme for lembrando de mais vou postando ae, ok!?
Lembrando que criticas são sempre bem vindas, se acharem que tem algo a melhorar (é claro q tem :-) ou sugerir algum artigo que gostariam de ver por aqui, deixe nos comments.
My 2 cents:
-Bios: É recomendável desabilitar o boot por unidades removiveis como disquetes e CD-ROM, defina uma senha para acesso ao Setup, assim evita-se que pessoas não autorizadas possam usar discos de boot especias e/ou alterar a configuração da BIOS. É valido lembrar que se alguem tiver acesso fisico ao interior da maquina pode-se simplesmente resetar a BIOS usando o jumper ou simplesmente retirando a bateria por um tempo.
-Modo Single-user: No processo de inicialização você pode passar parâmetros para o kernel através da linha de comando. Um desses parâmetrs é o “linux single”, conhecido como “single-user mode”, é geralmente usado para manutenção do sistema. O problema é que assim o sistema é logado como root, sem ter que digitar nenhuma senha.
Para resolver isso procuramos no /etc/inittab a seguinte linha:
id:3:initdefault:
e adicionamos, abaixo, a seguinte linha:
~~:S:wait:/sbin/sulogin”
ficando assim:
id:3:initdefault:
~~:S:wait:/sbin/sulogin”
Para completar temos que reiniciar o init:
# /sbin/init q
-Ctrl+Alt+Del: Para evitar a reinicialização por esse meio, basta comentar umaa linha no /etc/inittab (como mostra abaixo), isso é importante caso você não tenha uma boa segurança fisica para o servidor.
Basta comentar a linha:
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
adcionando um # no inicio, ficando assim:
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Para completar temos que reiniciar o init:
# /sbin/init q
-Pacotes desnecessários: Nunca tenha pacotes desnecessários no sistema. Eles são uma ameaça, e podem ser prejudiciais posteriormente. Qualquer pacote que desconheça e/ou seja desnecessário, desinstale.
-Usuários: certifique-se de excluir todas as contas de usuário que não forem ser usadas, muitas distribuições vem com contas padões que podem muito bem serem excluidas, certifique-se quais usuário realmente necessitam de acesso ao shell, monitore as permissões, só de acesso ao que realmente é necessário.
Os arquivos passwd e shadow devem somente estar acessiveis para o usuário root, nem mesmo a leitura é permitida para outros usuários. Para uma maio segurança pode-se atribuir o “stick bit” para torna-lo imutavel, mas lembre-se de retira-lo quando for adcionar ou remover algum usuário.
Periodicamente use o Jhon the Ripper para testar as senhas de seus usuários.
-Senhas: Uma password “inquebravel”, ao contrario do que muitos imaginam, não existe, com tempo e poder de processamento necessário toda password pode ser descoberta por força bruta. É muito comum também o uso de engenharia social. Engenharia Social é o jeito mais fácil de se conseguir acesso a contas em um servidor. Engenharia social é tema pra um artigo e até livros inteiros, pretendo falar um pouco sobre isso em outro artigo, mas uma busca no google pode render resultados valiosos :)
Algumas dicas recomendadas para senhas:
- Devem conter, no minimo, seis caracteres. Mas é fortemente recomendado o uso de oito, numa mistura de letras, numeros e caracteres especias, incluindo também letras em caixa alta com caixa baixa.
- Não deve ser facil de advinhar, senhas baseadas no user name, em pessoas da familia, trabalho, documentos, etc, não são uma boa idéia.
- Deve ter um prazo de expiração, forçando a sua troca periodicamente.
-Shell: Alem de restringir o uso de shell apenas pra quem precisa dele, uma boa solução é criar um outro usuário com UID baixo (com privilégios de root) e usá-lo para dar manutenção no sistema, um login como root seria um motivo de alerta. Para reforçar a segurança, podemos fazer alterações no codigo do bash para logar todo comando digitado, ao invés de salva-los no arquivo .bash_history. E usar tornar esse o shell o padrão d usuário root e do usuário com privilégios de root.
-A conta root: A conta de root não tem nenhuma restrição de segurança imposta, você pode fazer tudo sem que lhe seja perguntado nada, por esse motivo assume-se que se o você tem acesso a uma conta com esses privilégios,você sabe o que esta fazendo. Por isso, preste muita atenção e tome muito cuidado quando estiver usando essa conta, o ideal é somente usar uma conta root quando é extremamente necessário, mesmo assim prefira logar com uma conta comum e usar o comando su ou sudo.
Mas caso você tenha mesmo que logar como root, não seria legal esquecer um terminal logado com a senha de root (acredite, isso acontece bastante :-). Pra evitar isso basta definir a variável “TMOUT” com o tempo (em segundos) que a sessão pode permanecer ativa sem que nada seja digitado.
Para isso adcione a a linha “TMOUT=3600″ (sem aspas) em seu profile (vi /etc/profile), logo abixo da linha HISTSIZE. Ficando assim:
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
TMOUT=3600
També, é necessário exportar as variaceis que foram definidas, para isso procure a seguinte linha:
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME CVSROOT
Adcione a variável TMOUT, ficando assim:
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME CVSROOT TMOUT
Note que 3600 é o equivalente a uma hora, e que definindo essa variavel no /etc/profile, a regra estará valendo para todos os usuários, mas se você quiser definir isso para usuários especificos basta usar o .bashrc do usuário. Para que tenha efeito é preciso “relogar” no sistema (logout – login)
-Logs: Logs são essenciais para a administração de segurança, por isso conheça seus logs, saiba tudo o que acontece neles e com eles, mas como nos tempos de hoje onde o tempa para ser dedicado aos logs é uma coisa rara, existem varios programas que podem auxiliar nessa tarefa, com opções de enviar email, sms e um monte de frescuras a mais, mas não pense que isso lhe isenta da tarefa de analisar pessoalmente os logs.
Para uma maior segurança pode-se usar uma maquina como servidor de logs, para onde as demais deverão ser configuradas para enviar os logs. Lembre-se também de sempre fazer backup de seus logs.
“linux single”, tô lembrado disto.. hahahaha Ótimo para botar keylogs por aí… hehehe
edenis
7 Setembro, 2006 em 3:45 pm