
Implantando o Crowdsec em uma máquina Linux
Continuamos com a Crowdsec! já vimos em documentos anteriores os conceitos básicos e como implantá-lo centralmente e até mesmo em um Windows, então hoje veremos as etapas que devemos seguir se quisermos instalar o agente Crowdsec em um computador Linux para protegê-lo de ameaças externas.
Como você pode imaginar, A instalação dependerá da distribuição utilizada pela máquina, Este documento será baseado na instalação em um Ubuntu Server, Eu acho que eu me lembro de um Nginx servindo alguma página web. Então vamos a isso, habitualmente, entende-se que faremos isso em um servidor Linux, que tem um serviço publicado e queremos proteger; e não tem necessariamente de ser publicado na Internet. Começaremos instalando o Crowdsec Security Engine para você, que é o agente que será responsável pelo processamento de seus logs, Tome as suas decisões… Em seguida, instalaremos o segurança (o Componente de remediação) para o seu firewall Linux, do seu SO (iptables, neste caso,), caso tenhamos interesse em atuar e possamos registrar regras nele, bloquear o acesso temporário a endereços IP malignos. E acabaremos por registrá-lo no Crowdsec Console.
Com isso teremos quase, como o post vai continuar, será opcional, mas se você vai querer gerenciamento centralizado, Terá de tomar algumas medidas adicionais; E é isso, Uma escolha sua. Se precisar, Deve ler-se antes O post anterior.
Este post tem a seguinte estrutura::
- Instalação do Crowdsec Agent
- Instalando o segurança iptables do Crowdsec Firewall
- Registrando Crowdsec vs. Crowdsec Console
- Coleções
- Lista branca
- Notificações
- Testá-lo
- Registrando Crowdsec em nosso servidor LAPI
- Registrando o segurança Crowdsec em nosso servidor LAPI
Instalação do Crowdsec Agent
O que eu disse, esta instalação é baseada em um Ubuntu Server, Se tiver outra distribuição, Confira o Website oficial. Começamos instalando os repositórios oficiais do Crowdsec usando:
curl -s https://install.crowdsec.net | suor sh
E instalamos o Crowdsec, isso como já sabemos, Ele detetará os serviços que podemos estar usando na máquina e também baixará suas coleções para protegê-los, Começou:
sudo apt instalar crowdsec
Instalando o segurança iptables do Crowdsec Firewall
Uma vez instalado o agente Crowdsec, também sabemos que, se não instalarmos um segurança, não seremos capazes de executar ações nesta máquina, Por isso, vamos instalar este componente de remediação, no meu caso sendo Ubuntu eu uso iptables, assim procedemos à sua instalação:
sudo apt instalar crowdsec-firewall-bouncer-iptables
Registrando Crowdsec vs. Crowdsec Console
Imagino que já teremos uma conta em https://app.crowdsec.net sabemos que podemos criá-lo para gerenciar todo o nosso Crowdsec a partir de um console GUI de forma centralizada, Não obrigatório, e temos uma versão da Comunidade com a qual você também pode fazer muitas coisas, Incluindo, Em seguida, visualize os alertas da máquina, Seu status, podemos inscrevê-los em diferentes listas de bloqueio…. Continuamos a adicionar o nosso Crowdsec, instalação neste Linux. Copiamos o comando que devemos executar.
E nós o prendemos em um console do sistema, Correr:
sudo cscli console inscrever xxxxxxxxxxxxxxxxxx
Voltamos ao console Crowdsec e aceitamos o rolo,
Sobre o mecanismo recém-adicionado, Editamos o nome e colocaremos um que se refira a quem é,
Habitualmente, Indicamos o nome da máquina, e nós damos “Atualização”,
E se quisermos, A próxima coisa pode ser adicionar algumas listas de bloqueio, por isso, Podemos pressionar o seu “Listas de bloqueio”,
Se já estamos inscritos numa lista de bloqueio, podemos selecioná-lo a partir de “Gerir”
E clique em “Adicionar mecanismo de segurança” Para adicionar esta máquina a esta lista de bloqueio,
Escolhemos um tipo de ação e confirmamos. Máquina subscrita!
Lembre-se que depois de registrar o Crowdsec no Console você tem que reiniciar o serviço Crowdsec que você tem.
sudo systemctl reiniciar crowdsec
Coleções
Como já sabemos. por padrão, o Crowdsec, quando instalado em uma máquina, verifica os serviços que instalamos e tenta protegê-los, Neste caso, no meu Linux apenas o da base me detetou, Isto é, o SO e o SSHd. Se eu tivesse um Nginx, por exemplo, eu teria instalado suas coleções, ou para Grafana… para listar as coleções:
lista de coleção sudo cscli
Poderemos procurar mais coleções em o seu Hub, coleções feitas por eles ou pela comunidade, que podem proteger outros serviços que temos, como se, por exemplo, tivéssemos instalado o Nginx a posteriori e quiséssemos a sua coleção, Executar:
Coleções CSCLI Instalar CrowdSecurity/NGINX
E devemos adicionar no seu arquivo de compras '/etc/crowdsec/acquis.yaml’ O conteúdo abaixo, não se preocupe que o Hub é detalhado em cada caso o que fazer, nós corrigimos os caminhos dos logs Nginx… e o serviço também seria protegido.
nomes de ficheiros: - /var/log/nginx/access.log - /rótulos var/log/nginx/error.log: tipo: Ciganos ---
Bem como, por exemplo, se este Nginx neste Ubuntu serve Nextcloud, Bem, também devemos colocar a sua coleção nela, e, assim, integrar e prevenir qualquer acesso indevido, ler e processar logs do Nextcloud para tomar decisões.
CSCLI Collections instalar crowdsecurity/nextcloud
E adicionamos o seguinte ao arquivo acquire.yaml (Insisto que isso está documentado no Hub):
nomes de ficheiros: - /Etiquetas var/log/nextcloud/nextcloud.log: tipo: Próxima nuvem --- Fonte: Reportedctl journalctl_filter: - "SYSLOG_IDENTIFIER=Nextcloud" rótulos: tipo: syslog ---
Lembre-se de reiniciar o serviço Crowdsec quando tiver feito uma alteração substancial:
sudo systemctl reiniciar crowdsec
Lista branca
A lista branca, como já sabemos, nos ajudará a excluir, por exemplo, um endereço IP de ser banido ou bloqueado pelo Crowdsec, geralmente eles podem ser os endereços IP de um ponto de verificação, Equipamento de salto, etc… Bem como, entre outros, também podemos excluir países, Por exemplo.
Nome: Descrição do crowdsecurity/whitelists: "Colocar eventos na lista de permissões de endereços IPv4 privados"
lista de permissões:
razão: "IP/intervalos IPv4/IPv6 privados"
IP:
- "127.0.0.1"
- "::1"
- "192.168.1.33"
Cidr:
#- "192.168.0.0/16"
#- "10.0.0.0/8"
- "172.16.0.0/12"
# expressão:
# - "'foo.com' in evt.Meta.source_ip.reverse"
O arquivo pode ser encontrado em '/etc/crowdsec/hub/parsers/s02-enrich/crowdsecurity/whitelists.yaml', e veremos que podemos simplesmente adicionar qualquer IP ou intervalo de IP à lista branca de exclusão.
Se queremos excluir países, Devemos primeiro instalar o analisador GeoIP-Enrich que alimentará os logs com dados de geolocalização, tais como países, cidades ou coordenadas GPS:
Analisadores CSCLI instalam CrowdSecurity/GeoIP-Enrich
E será suficiente adicionar a seguinte expressão no arquivo de lista branca:
expressão:
- evt.Enriched.IsoCode == 'ES'
Lembre-se de reiniciar o serviço Crowdsec para recarregar essas alterações.
sudo systemctl reiniciar crowdsec
Notificações
Notificações: - slack_default - splunk_default - http_default - email_default
Podemos ativar as notificações editando o arquivo '/etc/crowdsec/profiles.yaml', onde podemos descomentar e selecionar o tipo de notificação que nos interessa, O que podem ser para a Splunk, para o Slack, por e-mail, ou com HTTP (por exemplo, Telegram).
Se quisermos, por exemplo, notificações por e-mail, no diretório '/etc/crowdsec/notifications/’ nós editaríamos o arquivo YAML email.yaml (o slack.yaml ou splunk.yaml ou http.yaml), onde vamos configurar os parâmetros do nosso servidor de e-mail. Aqueles de nós do Telegram viram isso em um post Velho.
Testá-lo
Vamos acabar tentando, não é?? se não, como confiamos que isso funcione?? 🙂 Você pode fazer os vestibulares errados que quiser, ou valide-o com um verificador de vulnerabilidades, ou sites… Nesse documento antigo você tem um exemplo com Nikto.
Você pode ver as decisões que sua máquina tomou com:
Lista de Decisões CSCLI
Neste caso, você baniu o endereço IP 192.168.1.122 porque eu coloquei um verificador de vulnerabilidade para verificá-lo e ele imediatamente detetou que estava rastreando coisas que não deveria…
Ou do servidor LAPI, se o tivermos registado (O que vem a seguir)
docker exec -it crowdsec-crowdsec-1 cscli decisions list
Se já implantamos o Crowdsec Mirror, poderemos verificar se o endereço IP proibido aparece no URL onde publicamos a nossa lista de bloqueio http://DIRECCION_IP_CROWDSEC_MIRROR:41412/segurança/lista de bloqueio
Se quisermos proibir um endereço IP, Vamos fazê-lo com:
decisões cscli adicionar --ip DIRECCIÓN_IP --reason "Descrição"
Se quisermos cancelar a proibição de um endereço IP, Vamos fazê-lo com:
Decisões CSCLI Excluir --IP DIRECCIÓN_IP
Poderemos investigar os alertas que tivemos com:
Lista de alertas CSCLI
Com o comando anterior, listamo-los, e agora selecionando o ID de um alerta específico e poderemos saber qual arquivo de log o gerou, O que eu estava fazendo, O caminho, Estado HTTP… Neste caso da imagem há muitos 404 al path /apps/files_sharing/publicpreview/
Alerta CSCLI Inspecionar ID_ALERTA [-d]
E, se precisarmos, criar nosso próprio arquivo Whitelist para fazer exclusões em casos de falsos positivos, pej em '/etc/crowdsec/parsers/s02-enrich/whitelist-permite-pdfs.yaml, Você pode usar estas expressões de exemplo para criar filtros de exclusão:
Nome: crowdsecurity/mylistablancapdfs Descrição: "Ignorar PDFs" lista de permissões: razão: "ignorar PDFs" expressão: #- evt.Meta.http_path startsWith '/apps/files_sharing/publicpreview/' #- evt.Meta.http_status == '404' && evt.Meta.http_path startsWith '/apps/files_sharing/publicpreview/' - evt.Parsed.request contains '/apps/files_sharing/publicpreview/'
Como de costume, sem esquecer de reiniciar o serviço Crowdsec a cada alteração de configuração.
Registrando Crowdsec em nosso servidor LAPI
API: ... Servidor: habilitar: Falso ...
Precisamos desativar o LAPI local, Editando o arquivo '/etc/crowdsec/config.yaml', Adicionámos a opção ativar false.
Em seguida, registramos no servidor LAPI que implantamos na rede:
Sudo cscli lapi registrar -u HTTP://DIRECCION_IP_CROWDSEC_LAPI:8080 --Máquina NOMBRE_MAQUINA
No servidor LAPI poderemos ver o pedido de registo da máquina Linux, Nós listamos com:
Sudo Docker Exec -it CrowdSEC-CrowdSEC-1 Lista de Máquinas CSCLI
Aceitamos o pedido de registo e relistar para confirmar o estado:
Sudo Docker exec -it CrowdSEC-CrowdSEC-1 máquinas CSCLI validar NOMBRE_MAQUINA
Agora nosso Crowdsec no Linux irá se comunicar e ler do servidor LAPI qualquer decisão, portanto, usando o servidor central. Se o resto dos agentes da Crowdsec fizessem o mesmo, todos eles teriam as mesmas informações em comum, e, por conseguinte,, quando uma máquina suspeita que um IP é mau, o resto dos agentes da Crowdsec saberão instantaneamente.
Lembre-se sempre de reiniciar o Crowdsec após qualquer modificação:
sudo systemctl reiniciar crowdsec
Registrando o segurança Crowdsec em nosso servidor LAPI
E para concluir, Temos também de registar os seguranças que temos, neste caso, o segurança do firewall do Ubuntu, para iptables; se quisermos que esse segurança leia a partir do LAPI central, Temos de seguir estes passos, Foi o que foi dito, quando alguém ou algo adiciona um IP ao LAPI central, este firewall do sistema operacional fará uma regra negando o acesso ao referido IP malicioso.
Do servidor LAPI, Podemos primeiro se quisermos listar os seguranças com os quais nos registramos:
Sudo Docker exec -it crowdsec-crowdsec-1 cscli lista de seguranças
E para registrar o firewall bouncer deste Ubuntu, Executar:
sudo docker exec -it crowdsec-crowdsec-1 cscli bouncers adicionar NOMBRE_MAQUINA-FW
Escrevemos a chave API que nos deu,
... api_url: Referências HTTP://DIRECION_LAPI_SERVER:8080 api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxx ...
Editamos o arquivo /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml e colocamos o IP do servidor LAPI, sua porta e a chave de API que nos deu o comando anterior. Salve o arquivo e reinicie o serviço de segurança do firewall:
sudo systemctl reiniciar crowdsec-firewall-bouncer
E o FW da equipe registrada do Ubuntu sairá, verificamos com:
Sudo Docker exec -it crowdsec-crowdsec-1 cscli lista de seguranças
Espero que você tenha achado interessante, Eu queria fazer um guia para 3 documentos base e com isso é resolvido, já aprendemos como instalar o Crowdsec em um computador Linux, em um Windows, e gerámos uma gestão centralizada onde todos os agentes falam uns com os outros e dizem uns aos outros se há um atacante, Além disso, com listas publicadas em firewalls de perímetro ou internos para que eles também possam bloqueá-los e isolar qualquer possível invasor. Bem, o habitual, Está a ficar tarde, Veja a que horas… 😉 Tenha uma ótima semana!