ufw doit être installé et configuré, par défaut, autorisez les ports 80,443 + votre port SSH et bloquez tous les autres (sauf ceux que vous souhaitez exposer sur internet)
Exemple charts values
spec:
valuesContent: |-
deployment:
additionalVolumes:
- name: traefik-logs-pvc
persistentVolumeClaim:
claimName: traefik-logs-pvc
additionalVolumeMounts:
- name: traefik-logs-pvc
mountPath: /var/log/traefik Pour le reste de l'installation, considérons que les logs de traefik sont accessibles maintenant sur le host dans /srv/vol/traefik-logs
Assurez-vous que traefik a bien les droits pour écrire au besoin ajustez au besoin avec cette commande
sudo chown -R 65532:65532 /srv/vol/traefik-logsBonus : Logrotate 😊
contenu à copier dans /etc/logrotate.d/traefik
/srv/vol/traefik-logs/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 traefikuser traefik
sharedscripts
postrotate
POD=$(kubectl -n kube-system get pods -l app.kubernetes.io/name=traefik -o jsonpath='{.items[0].metadata.name}')
kubectl -n kube-system exec "$POD" -- pkill -HUP traefik || echo "Impossible d'envoyer HUP à Traefik"
endscript
}
Ref : https://docs.crowdsec.net/u/getting_started/installation/linux Ajouter la clé
curl -fsSL https://packagecloud.io/crowdsec/crowdsec/gpgkey | gpg --dearmor > /etc/apt/keyrings/crowdsec_crowdsec-archive-keyring.gpgAjouter le repo
nano /etc/apt/sources.list.d/crowdsec_crowdsec.listdeb [signed-by=/etc/apt/keyrings/crowdsec_crowdsec-archive-keyring.gpg] https://packagecloud.io/crowdsec/crowdsec/any any main
deb-src [signed-by=/etc/apt/keyrings/crowdsec_crowdsec-archive-keyring.gpg] https://packagecloud.io/crowdsec/crowdsec/any any mainOn mets à jour et on vérifie la dispo de la dernière version
apt update
apt list crowdsecInstallation + bouncer (iptables en lien avec ufw)
apt install crowdsec crowdsec-firewall-bouncer-iptablesAuto completion
sudo cscli completion bash > /etc/bash_completion.d/cscli
source /etc/bash_completion
systemctl status crowdsecLes commandes usuelles
cscli collections list
cscli parsers list
cscli scenarios list
cscli bouncers listAutres ressources
Modifier le range IP d'écoute prometheus dans /etc/crowdsec/config.yaml 127.0.0.1 -> 0.0.0.0 (Sera protégé par firewall éventuellement autorisez votre cluster à accéder au prometheus de crowdsec
ufw allow from 10.43.0.0/16 to any port 6060 comment "crowdsec")
Ajouter dans /etc/crowdsec/acquis.d/setup.traefik.yaml
filenames:
- /srv/vol/traefik-logs/access.log
labels:
type: traefik
source: file
TODO: Voir repo Victoria Metrics
Compatible avec les Jobs et api prometheus (entre autres) . Dispose aussi d'une API permettant de consommer des metriques. Indispensable dans notre cas d'usage pour consommer les push HTTP de crowdsec
TODO
Source https://freefd.github.io/articles/8_cyber_threat_insights_with_crowdsec_victoriametrics_and_grafana/
editez le fichier /etc/crowdsec/notifications/http.yaml en remplaçant sub.domain.tld par le dns de votre server Victoria Metrics (Nota : sur un cluster, pas de DNS local accessible depuis le host, un dns public est nécessaire)
type: http
name: http_default
log_level: info
format: >
{{- range $Alert := . -}}
{{- range .Decisions -}}
{"metric":{"__name__":"cs_lapi_decision","instance":"[YOUR INSTANCE NAME]","country":"{{$Alert.Source.Cn}}","asname":"{{$Alert.Source.AsName}}","asnumber":"{{$Alert.Source.AsNumber}}","latitude":"{{$Alert.Source.Latitude}}","longitude":"{{$Alert.Source.Longitude}}","iprange":"{{$Alert.Source.Range}}","scenario":"{{.Scenario}}","type":"{{.Type}}","duration":"{{.Duration}}","scope":"{{.Scope}}","ip":"{{.Value}}"},"values": [1],"timestamps":[{{now|unixEpoch}}000]}
{{- end }}
{{- end -}}
url: http://sub.domain.tld:8428/api/v1/import
method: POST
headers:
Content-Type: application/jsonFacultatif Aller sur https://app.crowdsec.net/ Et faire l'enrôlement suivre la méthodo et redémarrer crowdsec
Ressources :
https://blog.stephane-robert.info/docs/securiser/reseaux/crowdsec/
Voir les modif dans config.yaml pour prometheus, dans profiles.yaml et dans notifications/http.yaml pour les notifications