parent
8cb46cd81f
commit
84f5a51e27
26 changed files with 489 additions and 0 deletions
@ -0,0 +1,47 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
# Version to install |
||||||
|
crowdsec_version: 1.0.7 |
||||||
|
# URL of the archive |
||||||
|
crowdsec_archive_url: https://github.com/crowdsecurity/crowdsec/releases/download/v{{ crowdsec_version }}/crowdsec-release.tgz |
||||||
|
# Expected sha1 of the archive |
||||||
|
crowdsec_archive_sha1: 7c9dc58c6648c8fd43b297427d6a53fe940cbf13 |
||||||
|
|
||||||
|
crowdsec_db_server: "{{ mysql_server | default('localhost') }}" |
||||||
|
crowdsec_db_port: 3306 |
||||||
|
crowdsec_db_name: crowdsec |
||||||
|
crowdsec_db_user: crowdsec |
||||||
|
# If not defined, a random one will be generated and store in /etc/crowdsec/meta/ansible_dbpass |
||||||
|
# crowdsec_db_pass: S3cr3t. |
||||||
|
|
||||||
|
# You can disable the Local API, if using a remote one for example |
||||||
|
crowdsec_lapi_enabled: True |
||||||
|
# Set to true if Local API is enabled, and you intend to use it through a trusted reverse proxy |
||||||
|
crowdsec_use_forwarded_headers: False |
||||||
|
# Port on which the Local API will listen |
||||||
|
crowdsec_lapi_port: 8080 |
||||||
|
# List of IP/CIDR allowed to access crowdsec_lapi_port |
||||||
|
crowdsec_lapi_src_ip: [] |
||||||
|
|
||||||
|
# Address of the Local API server |
||||||
|
# The default config will make it standalone |
||||||
|
crowdsec_lapi_url: http://localhost:{{ crowdsec_lapi_port }}/ |
||||||
|
crowdsec_lapi_user: "{{ inventory_hostname }}" |
||||||
|
# On installation, ansible will register this host on the Local API |
||||||
|
# And will then validate the registration on the following server. |
||||||
|
# So set it to your own Local API server so ansible will delegate the task |
||||||
|
crowdsec_lapi_server: "{{ inventory_hostname }}" |
||||||
|
|
||||||
|
# Use the central API, to share your banned IP, and received list of IP to ban |
||||||
|
# Requires crowdsec_lapi_enabled to be true too |
||||||
|
crowdsec_capi_enabled: False |
||||||
|
|
||||||
|
# Prometheus metrics |
||||||
|
crowdsec_prometheus_enabled: False |
||||||
|
# Port on which the prometheus metric endpoint will bind to |
||||||
|
crowdsec_prometheus_port: 6060 |
||||||
|
# List of IP/CIDR allowed to access the prometheus port |
||||||
|
crowdsec_prometheus_src_ip: [] |
||||||
|
|
||||||
|
# Default duration of a ban |
||||||
|
crowdsec_ban_duration: 15m |
@ -0,0 +1,7 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: restart crowdsec |
||||||
|
service: name=crowdsec state=restarted |
||||||
|
|
||||||
|
- name: reload crowdsec |
||||||
|
service: name=crowdsec state=reloaded |
@ -0,0 +1,5 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
dependencies: |
||||||
|
- role: mysql_server |
||||||
|
when: crowdsec_db_server in ['localhost','127.0.0.1'] |
@ -0,0 +1,8 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Remove temp and obsolete files |
||||||
|
file: path={{ item }} state=absent |
||||||
|
loop: |
||||||
|
- /tmp/crowdsec-release.tgz |
||||||
|
- /tmp/crowdsec-v{{ crowdsec_version }} |
||||||
|
tags: crowdsec |
@ -0,0 +1,44 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Deploy configuration |
||||||
|
template: src={{ item }}.j2 dest=/etc/crowdsec/{{ item }} |
||||||
|
loop: |
||||||
|
- config.yaml |
||||||
|
- acquis.yaml |
||||||
|
- simulation.yaml |
||||||
|
- profile.yaml |
||||||
|
notify: reload crowdsec |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
# Create the database |
||||||
|
- import_tasks: ../includes/webapps_create_mysql_db.yml |
||||||
|
vars: |
||||||
|
- db_name: "{{ crowdsec_db_name }}" |
||||||
|
- db_user: "{{ crowdsec_db_user }}" |
||||||
|
- db_server: "{{ crowdsec_db_server }}" |
||||||
|
- db_pass: "{{ crowdsec_db_pass }}" |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Declare on the local API |
||||||
|
command: cscli machines add {{ crowdsec_lapi_user }} --auto |
||||||
|
register: crowdsec_lapi_add |
||||||
|
when: inventory_hostname == crowdsec_lapi_server |
||||||
|
changed_when: crowdsec_lapi_add.rc == 0 |
||||||
|
failed_when: crowdsec_lapi_add.rc not in [0,1] |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- when: inventory_hostname != crowdsec_lapi_server |
||||||
|
block: |
||||||
|
- name: Register against the Local API |
||||||
|
command: cscli lapi register --machine {{ crowdsec_lapi_user }} --url {{ crowdsec_lapi_url }} |
||||||
|
register: crowdsec_lapi_registration |
||||||
|
changed_when: crowdsec_lapi_registration.rc == 0 |
||||||
|
failed_when: crowdsec_lapi_registration.rc not in [0,1] # RC 1 when machine already exists |
||||||
|
notify: reload crowdsec |
||||||
|
|
||||||
|
- name: Validate crowdsec registration on the Local API server |
||||||
|
command: cscli machines validate {{ crowdsec_lapi_user }} |
||||||
|
delegate_to: "{{ crowdsec_lapi_server }}" |
||||||
|
when: crowdsec_lapi_registration.rc == 0 |
||||||
|
|
||||||
|
tags: crowdsec |
@ -0,0 +1,10 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Create required directories |
||||||
|
file: path={{ item.dir }} state=directory owner={{ item.owner | default(omit) }} group={{ item.group | default(omit) }} mode={{ item.mode | default(omit) }} |
||||||
|
loop: |
||||||
|
- dir: /etc/crowdsec |
||||||
|
mode: 755 |
||||||
|
- dir: /etc/crowdsec/meta |
||||||
|
mode: 700 |
||||||
|
tags: crowdsec |
@ -0,0 +1,45 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Set initial facts |
||||||
|
block: |
||||||
|
- set_fact: crowdsec_install_mode='none' |
||||||
|
- set_fact: crowdsec_current_version='' |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Check if crowdsec is installed |
||||||
|
stat: path=/usr/local/bin/crowdsec |
||||||
|
register: crowdsec_bin |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Check installed version |
||||||
|
shell: | |
||||||
|
crowdsec -version 2>&1 | perl -ne 'm/version: v(\d+(\.\d+)*)/ && print $1' |
||||||
|
register: crowdsec_current_version |
||||||
|
changed_when: False |
||||||
|
when: crowdsec_bin.stat.exists |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Set install mode |
||||||
|
set_fact: crowdsec_install_mode='install' |
||||||
|
when: not crowdsec_bin.stat.exists |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Set upgrade mode |
||||||
|
set_fact: crowdsec_install_mode='upgrade' |
||||||
|
when: |
||||||
|
- crowdsec_bin.stat.exists |
||||||
|
- crowdsec_current_version.stdout != crowdsec_version |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
# Create a random db password if needed |
||||||
|
- block: |
||||||
|
- import_tasks: ../includes/get_rand_pass.yml |
||||||
|
vars: |
||||||
|
- pass_file: "/etc/crowdsec/meta/ansible_db_pass" |
||||||
|
- complex: False |
||||||
|
- set_fact: crowdsec_db_pass={{ rand_pass }} |
||||||
|
when: |
||||||
|
- crowdsec_db_pass is not defined |
||||||
|
- crowdsec_lapi_enabled |
||||||
|
tags: crowdsec |
||||||
|
|
@ -0,0 +1,27 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- when: crowdsec_install_mode != 'none' |
||||||
|
block: |
||||||
|
- name: Download crowdsec |
||||||
|
get_url: |
||||||
|
url: "{{ crowdsec_archive_url }}" |
||||||
|
dest: /tmp/ |
||||||
|
checksum: sha1:{{ crowdsec_archive_sha1 }} |
||||||
|
|
||||||
|
- name: Extract crowdsec |
||||||
|
unarchive: |
||||||
|
src: /tmp/crowdsec-release.tgz |
||||||
|
dest: /tmp/ |
||||||
|
remote_src: True |
||||||
|
|
||||||
|
- name: Install or upgrade crowdsec |
||||||
|
command: ./wizard.sh --bin{{ crowdsec_install_mode }} |
||||||
|
args: |
||||||
|
chdir: /tmp/crowdsec-v{{ crowdsec_version }}/ |
||||||
|
notify: restart crowdsec |
||||||
|
|
||||||
|
- name: Update crowdsec hub |
||||||
|
command: cscli hub update |
||||||
|
|
||||||
|
tags: crowdsec |
||||||
|
|
@ -0,0 +1,15 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Handle crowdsec port in the firewall |
||||||
|
iptables_raw: |
||||||
|
name: "{{ item.name }}" |
||||||
|
state: "{{ (item.src_ip | length > 0) | ternary('present','absent') }}" |
||||||
|
rules: "-A INPUT -m state --state NEW -p tcp --dport {{ item.port }} -s {{ item.src_ip | join(',') }} -j ACCEPT" |
||||||
|
loop: |
||||||
|
- name: crowdsec_lapi_port |
||||||
|
port: "{{ crowdsec_lapi_port }}" |
||||||
|
src_ip: "{{ crowdsec_lapi_src_ip }}" |
||||||
|
- name: crowdsec_prometheus_port |
||||||
|
port: "{{ crowdsec_prometheus_port }}" |
||||||
|
src_ip: "{{ crowdsec_prometheus_src_ip }}" |
||||||
|
tags: firewall,crowdsec |
@ -0,0 +1,10 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- include: directories.yml |
||||||
|
- include: facts.yml |
||||||
|
- include: install.yml |
||||||
|
- include: conf.yml |
||||||
|
- include: iptables.yml |
||||||
|
when: iptables_manage | default(True) |
||||||
|
- include: services.yml |
||||||
|
- include: cleanup.yml |
@ -0,0 +1,5 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Start and enable the service |
||||||
|
service: name=crowdsec state=started enabled=True |
||||||
|
tags: crowdsec |
@ -0,0 +1,5 @@ |
|||||||
|
--- |
||||||
|
journalctl_filter: |
||||||
|
- "_SYSTEMD_UNIT=sshd.service" |
||||||
|
labels: |
||||||
|
type: syslog |
@ -0,0 +1,58 @@ |
|||||||
|
common: |
||||||
|
daemonize: true |
||||||
|
pid_dir: /var/run/ |
||||||
|
log_media: stdout |
||||||
|
log_level: info |
||||||
|
working_dir: . |
||||||
|
|
||||||
|
config_paths: |
||||||
|
config_dir: /etc/crowdsec/ |
||||||
|
data_dir: /var/lib/crowdsec/data/ |
||||||
|
simulation_path: /etc/crowdsec/simulation.yaml |
||||||
|
hub_dir: /etc/crowdsec/hub/ |
||||||
|
index_path: /etc/crowdsec/hub/.index.json |
||||||
|
|
||||||
|
crowdsec_service: |
||||||
|
acquisition_path: /etc/crowdsec/acquis.yaml |
||||||
|
parser_routines: 1 |
||||||
|
|
||||||
|
cscli: |
||||||
|
output: human |
||||||
|
hub_branch: master |
||||||
|
|
||||||
|
db_config: |
||||||
|
log_level: info |
||||||
|
type: mysql |
||||||
|
user: {{ crowdsec_db_user }} |
||||||
|
password: {{ crowdsec_db_pass | quote }} |
||||||
|
db_name: {{ crowdsec_db_name }} |
||||||
|
host: {{ crowdsec_db_server }} |
||||||
|
port: {{ crowdsec_db_port }} |
||||||
|
flush: |
||||||
|
max_items: 100000 |
||||||
|
max_age: 730d |
||||||
|
|
||||||
|
api: |
||||||
|
client: |
||||||
|
insecure_skip_verify: false |
||||||
|
credentials_path: /etc/crowdsec/local_api_credentials.yaml |
||||||
|
|
||||||
|
{% if crowdsec_lapi_enabled %} |
||||||
|
server: |
||||||
|
log_level: info |
||||||
|
listen_uri: 0.0.0.0:{{ crowdsec_lapi_port }} |
||||||
|
profiles_path: /etc/crowdsec/profiles.yaml |
||||||
|
{% if crowdsec_capi_enabled %} |
||||||
|
online_client: |
||||||
|
credentials_path: /etc/crowdsec/online_api_credentials.yaml |
||||||
|
{% endif %} |
||||||
|
{% endif %} |
||||||
|
|
||||||
|
{% if crowdsec_prometheus_enabled %} |
||||||
|
prometheus: |
||||||
|
enabled: true |
||||||
|
level: full |
||||||
|
listen_addr: 0.0.0.0 |
||||||
|
listen_port: {{ crowdsec_prometheus_port }} |
||||||
|
{% endif %} |
||||||
|
|
@ -0,0 +1,7 @@ |
|||||||
|
name: default_ip_remediation |
||||||
|
filters: |
||||||
|
- Alert.Remediation == true && Alert.GetScope() == "Ip" |
||||||
|
decisions: |
||||||
|
- type: ban |
||||||
|
duration: {{ crowdsec_ban_duration }} |
||||||
|
on_success: break |
@ -0,0 +1 @@ |
|||||||
|
simulation: off |
@ -0,0 +1,14 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
# Version of the firewall bouncer to install |
||||||
|
crowdsec_fw_version: 0.0.10 |
||||||
|
# URL of the firewall bouncer archive |
||||||
|
crowdsec_fw_archive_url: https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v{{ crowdsec_fw_version }}/cs-firewall-bouncer.tgz |
||||||
|
# Expected sha1 of the archive |
||||||
|
crowdsec_fw_archive_sha1: 46863e95bdc8f48434583f55e89b7720fce5736d |
||||||
|
|
||||||
|
# API on which the bouncer should listen for alerts |
||||||
|
crowdsec_fw_lapi_url: "{{ crowdsec_lapi_url | default('http://localhost:8080/') }}" |
||||||
|
# If not defined, ansible will try to register the bouncer on the Local API server |
||||||
|
# crowdsec_fw_lapi_key: aaabbbccc |
||||||
|
|
@ -0,0 +1,4 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: restart cs-firewall-bouncer |
||||||
|
service: name=cs-firewall-bouncer state=restarted |
@ -0,0 +1,8 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Remove temp and obsolete files |
||||||
|
file: path={{ item }} state=absent |
||||||
|
loop: |
||||||
|
- /tmp/cs-firewall-bouncer.tgz |
||||||
|
- /tmp/cs-firewall-bouncer-v{{ crowdsec_fw_version }} |
||||||
|
tags: crowdsec |
@ -0,0 +1,6 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Deploy configuration |
||||||
|
template: src=cs-firewall-bouncer.yaml.j2 dest=/etc/crowdsec/cs-firewall-bouncer/cs-firewall-bouncer.yaml mode=600 |
||||||
|
notify: restart cs-firewall-bouncer |
||||||
|
tags: crowdsec |
@ -0,0 +1,4 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
# Just pull the tasks from the crowdsec role as it needs the same dir |
||||||
|
- include: ../crowdsec/tasks/directories.yml |
@ -0,0 +1,62 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Check if API key is available |
||||||
|
stat: path=/etc/crowdsec/meta/bouncer_fw_api_key |
||||||
|
register: crowdsec_fw_lapi_key_file |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- when: crowdsec_fw_lapi_key is not defined and (not crowdsec_fw_lapi_key_file.stat.exists or crowdsec_fw_lapi_key_file.stat.size == 0) |
||||||
|
block: |
||||||
|
- name: Register the bouncer |
||||||
|
command: cscli bouncers add {{ inventory_hostname }}-firewall -o raw |
||||||
|
register: crowdsec_bouncer_add |
||||||
|
failed_when: crowdsec_bouncer_add.rc not in [0,1] |
||||||
|
changed_when: crowdsec_bouncer_add.rc == 0 |
||||||
|
delegate_to: "{{ crowdsec_lapi_server | default(inventory_hostname) }}" |
||||||
|
|
||||||
|
- name: Record the API key for later use |
||||||
|
copy: content={{ crowdsec_bouncer_add.stdout }} dest=/etc/crowdsec/meta/bouncer_fw_api_key mode=600 |
||||||
|
|
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- when: crowdsec_fw_lapi_key is not defined |
||||||
|
block: |
||||||
|
- name: Read the API key |
||||||
|
slurp: src=/etc/crowdsec/meta/bouncer_fw_api_key |
||||||
|
register: crowdsec_fw_lapi_generated_key |
||||||
|
- set_fact: crowdsec_fw_lapi_key={{ crowdsec_fw_lapi_generated_key.content | b64decode | trim }} |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Set initial facts |
||||||
|
block: |
||||||
|
- set_fact: crowdsec_fw_current_version='' |
||||||
|
- set_fact: crowdsec_fw_install_mode='none' |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Check if the bouncer is installed |
||||||
|
stat: path=/usr/local/bin/cs-firewall-bouncer |
||||||
|
register: crowdsec_fw_bin |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- when: crowdsec_fw_bin.stat.exists |
||||||
|
block: |
||||||
|
- name: Detect installed version |
||||||
|
shell: | |
||||||
|
cs-firewall-bouncer -c /dev/null 2>&1 | perl -ne 'm/cs-firewall-bouncer v(\d+(\.\d+)*)/ && print $1' |
||||||
|
register: crowdsec_fw_current_version |
||||||
|
changed_when: False |
||||||
|
|
||||||
|
- set_fact: crowdsec_fw_current_version={{ crowdsec_fw_current_version.stdout }} |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Set install mode |
||||||
|
set_fact: crowdsec_fw_install_mode='install' |
||||||
|
when: not crowdsec_fw_bin.stat.exists |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Set upgrade mode |
||||||
|
set_fact: crowdsec_fw_install_mode='upgrade' |
||||||
|
when: |
||||||
|
- crowdsec_fw_bin.stat.exists |
||||||
|
- crowdsec_fw_current_version != crowdsec_fw_version |
||||||
|
tags: crowdsec |
@ -0,0 +1,53 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- when: crowdsec_fw_install_mode != 'none' |
||||||
|
block: |
||||||
|
|
||||||
|
- name: Download the bouncer |
||||||
|
get_url: |
||||||
|
url: "{{ crowdsec_fw_archive_url }}" |
||||||
|
dest: /tmp |
||||||
|
checksum: sha1:{{ crowdsec_fw_archive_sha1 }} |
||||||
|
|
||||||
|
- name: Extract the archive |
||||||
|
unarchive: |
||||||
|
src: /tmp/cs-firewall-bouncer.tgz |
||||||
|
dest: /tmp |
||||||
|
remote_src: True |
||||||
|
|
||||||
|
- name: Install or upgrade |
||||||
|
command: ./{{ crowdsec_fw_install_mode }}.sh |
||||||
|
args: |
||||||
|
chdir: /tmp/cs-firewall-bouncer-v{{ crowdsec_fw_version }} |
||||||
|
notify: restart cs-firewall-bouncer |
||||||
|
|
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Create systemd unit snippet dir |
||||||
|
file: path=/etc/systemd/system/cs-firewall-bouncer.service.d state=directory |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Link cs-firewall-bouncer with the iptables service |
||||||
|
copy: |
||||||
|
content: | |
||||||
|
[Unit] |
||||||
|
# Ensure cs-firewall-bouncer starts before iptables |
||||||
|
# so ipset are available |
||||||
|
Before=iptables.service |
||||||
|
# But it should start after crowdsec to be able to register on the API |
||||||
|
After=crowdsec.service |
||||||
|
|
||||||
|
[Service] |
||||||
|
# Restart on failure |
||||||
|
Restart=on-failure |
||||||
|
StartLimitInterval=0 |
||||||
|
RestartSec=30 |
||||||
|
dest: /etc/systemd/system/cs-firewall-bouncer.service.d/ansible.conf |
||||||
|
register: crodwsec_fw_unit |
||||||
|
notify: restart cs-firewall-bouncer |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Reload systemd |
||||||
|
systemd: daemon_reload=True |
||||||
|
when: crodwsec_fw_unit.changed |
||||||
|
tags: crowdsec |
@ -0,0 +1,17 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Ensure ipsets exist |
||||||
|
shell: | |
||||||
|
ipset list crowdsec-blacklists || ipset create crowdsec-blacklists nethash timeout 300 |
||||||
|
ipset list crowdsec6-blacklists || ipset create crowdsec6-blacklists nethash timeout 300 family inet6 |
||||||
|
changed_when: False |
||||||
|
tags: crowdsec |
||||||
|
|
||||||
|
- name: Add DROP rules |
||||||
|
iptables_raw: |
||||||
|
name: crowdsec_blacklist |
||||||
|
weight: 9 |
||||||
|
rules: | |
||||||
|
-A INPUT -m set --match-set crowdsec-blacklists src -j DROP |
||||||
|
-A FORWARD -m set --match-set crowdsec-blacklists src -j DROP |
||||||
|
tags: crowdsec |
@ -0,0 +1,10 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- include: directories.yml |
||||||
|
- include: facts.yml |
||||||
|
- include: install.yml |
||||||
|
- include: conf.yml |
||||||
|
- include: iptables.yml |
||||||
|
when: iptables_manage | default(True) |
||||||
|
- include: services.yml |
||||||
|
- include: cleanup.yml |
@ -0,0 +1,5 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
- name: Start and enable the service |
||||||
|
service: name=cs-firewall-bouncer state=started enabled=True |
||||||
|
tags: crowdsec |
@ -0,0 +1,12 @@ |
|||||||
|
--- |
||||||
|
|
||||||
|
mode: iptables |
||||||
|
piddir: /var/run/ |
||||||
|
update_frequency: 10s |
||||||
|
daemonize: true |
||||||
|
log_mode: stdout |
||||||
|
log_level: info |
||||||
|
api_url: {{ crowdsec_fw_lapi_url }} |
||||||
|
api_key: {{ crowdsec_fw_lapi_key }} |
||||||
|
disable_ipv6: false |
||||||
|
|
Loading…
Reference in new issue