8 de ago de 2019

6 práticas recomendadas para a segurança do OpenSSH

Segurança do OpenSSH


Olá, meu caro! 

Talvez você nunca tenha se deparado com a situação abaixo, mas e se deparasse, qual seria a sua atitude? Você tem controle dos acessos realizados no seu parque de máquinas?  A imagem abaixo demonstra informações de segurança no Kibana do meu ambiente na google cloud cuja as máquinas estão expostas na internet e com algumas portas abertas. Existem regras de firewall, tanto iptables quanto fail2ban,  porém agora iremos ver algumas ações recomendadas que podem ser feitas no OpenSSH para ampliar a segurança. 


Figura 1 - Kibana, dashboard de monitoramento de atividades dos hosts.


Estas são as seis tarefas mais importantes para proteger sua configuração do servidor SSH:

Figura 2 - Configurações sshd_config

1.       Use uma senha forte;
2.       Altere a porta padrão do SSH;
3.       Desabilite o login do root;
4.       Limite o acesso do usuário;
5.       Use acesso baseado em chave para autenticação.
6.       Desativar senhas vazias
 

1.       Use uma senha forte;


Não é demais enfatizar o quanto é importante usar senhas de usuário e senhas fortes para suas chaves. O ataque de força bruta funciona porque o usuário acessa senhas baseadas em dicionário. Você pode forçar os usuários a evitar senhas contra um ataque de dicionário e usar a ferramenta john the ripper para descobrir senhas fracas existentes.

2. Altere a porta padrão do SSH;


A porta padrão do serviço SSH é 22, você deve alterá-la para tornar menos óbvio que seu servidor esteja executando um serviço SSH.

#vim /etc/ssh/sshd_config
Altere a linha abaixo:
Port 22
Escolha outro valor para a porta
Port 2123

 3.       Desabilite o login do root;


É importante desativar o login direto para o usuário root, pois há muitos ataques de força bruta contra o root. IMPORTANTE: teste o login SSH com seu usuário alternativo não raiz que você planeja usar para logins ssh antes de desabilitar a conta raiz.

Figura 3 - Tentativas de acesso com usuário root


4.       Limite o acesso do usuário;


Por padrão, todos os usuários do sistema podem efetuar login via SSH usando sua senha ou chave pública. Às vezes, você cria uma conta de usuário do UNIX / Linux para fins de FTP ou email. No entanto, esses usuários podem efetuar login no sistema usando o ssh. Eles terão acesso total às ferramentas do sistema, incluindo compiladores e linguagens de script, como Perl, Python, que podem abrir portas de rede e fazer muitas outras coisas sofisticadas. O controle baseado em grupo é mais flexível e fácil de administrar, por isso coloquei os dois exemplos abaixo. Se você optar por utilizar a permissionamento por usuário e não grupos caso você adicione um novo usuário no sistema, você terá que editar o sshd_config e adicionar esse novo usuário. 

Para permissão de usuários:
#AllowUsers luizep developers
Para permissão de grupos:
AllowGroups developers devops sysadmin
Para negar usuários:
#DenyUsers root


5.       Use acesso baseado em chave para autenticação;


Todos os logins baseados em senha devem ser desativados. Somente logins baseados em chave pública são permitidos. Adicione o seguinte no seu arquivo sshd_config:

PubkeyAuthentication yes


6.       Desativar senhas vazias.


Você precisa explicitamente proibir o login remoto de contas com senhas vazias, atualize sshd_config com a seguinte linha:

PermitEmptyPasswords no

2 de ago de 2019

Comandos úteis para o elastichsearch

Introdução


Para quem não conhece, o Elasticsearch é um “servidor de buscas distribuído baseado no Apache Lucene”. Em outras palavras, pode-se dizer que o Elasticsearch é um banco de dados NoSQL, porém com esteroides, uma série de plugins e ferramentas auxiliares. E o melhor, opensource.
Abaixo está uma lista de comandos que podem ajudar na execução de solução de problemas do seu cluster elasticsearch.

substitua localhost pelo endereço IP de seus hosts elasticsearch se não estiver escutando em localhost.

Saúde do cluster

curl -XGET 'http://localhost:9200/_cluster/health?pretty'

Deletar um index

curl -XDELETE 'localhost:9200/index_name*?pretty' -d '
{
  "acknowledged" : true
}

Encontrar shards não atribuídos

curl -XGET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason| grep UNASSIGNED

File Sharing (Samba) - Mental map

Nginx structure - Mental map

31 de jul de 2019

O que é Brainstorming

Brainstorming significa tempestade cerebral ou tempestade de ideias. É uma expressão inglesa formada pela junção das palavras "brain", que significa cérebro, intelecto e "storm", que significa tempestade.
brainstorming é uma dinâmica de grupo que é usada em várias empresas como uma técnica para resolver problemas específicos, para desenvolver novas ideias ou projetos, para juntar informação e para estimular o pensamento criativo.
Brainstorming é um método criado nos Estados Unidos, pelo publicitário Alex Osborn, usado para testar e explorar a capacidade criativa de indivíduos ou grupos, principalmente nas áreas de relações humanas, dinâmicas de grupo e publicidade e propaganda.
A técnica de brainstorming propõe que um grupo de pessoas se reúnam e utilizem seus pensamentos e ideias para que possam chegar a um denominador comum, a fim de gerar ideias inovadoras que levem um determinado projeto adiante. Nenhuma ideia deve ser descartada ou julgada como errada ou absurda, todas devem estar na compilação ou anotação de todas as ideias ocorridas no processo, para depois evoluir até a solução final.
Para uma sessão de brainstorming devem ser seguidas algumas regras básicas: é proibido debates e críticas às ideias apresentadas, pois causam inibições, quanto mais ideias melhor; nenhuma ideia deve ser desprezada, ou seja, as pessoas têm liberdade total para falarem sobre o que quiserem; para o bom andamento, deve-se reapresentar uma ideia modificada ou combinação de ideias que já foram apresentadas; por fim, igualdade de oportunidade - todos devem ter chance de expore suas ideias.
Fonte: significados.com.br