Εγκατάσταση και ασφάλεια του Nextcloud server με το CrowdSec

Οδηγός εγκατάστασης: Ασφαλίστε τον Nextcloud Server σας με το CrowdSec

Τι είναι το CrowdSec και τι πετυχαίνει;

Το CrowdSec είναι ένα σύγχρονο, δωρεάν και ανοιχτού κώδικα Σύστημα Πρόληψης Εισβολών (Intrusion Prevention System - IPS). Η λειτουργία του βασίζεται στη συνεργατική ασφάλεια. Λειτουργεί ως μια τεράστια, συλλογική “περιπολία γειτονιάς” για το διαδίκτυο, προστατεύοντας κάθε μέλος της κοινότητας από απειλές που ανιχνεύονται οπουδήποτε στον κόσμο.

Η αρχιτεκτονική της λύσης

Όπως φαίνεται και στο διάγραμμα του οδηγού, η αρχιτεκτονική μας χρησιμοποιεί Docker για να απομονώσει τις υπηρεσίες:

Εγκατάσταση και ασφάλεια του Nextcloud server με το CrowdSec

Αναλυτικά Βήματα Εγκατάστασης

1. Προαπαιτούμενα

2. Δημιουργία χρήστη και Ασφάλεια SSH

Δημιουργία χρήστη με δικαιώματα sudo:

# Δημιουργία του χρήστη (π.χ. bob) και ορισμός κωδικού

adduser bob --disabled-password
passwd bob

# Εγκατάσταση του sudo

apt-get -y install sudo

# Άνοιγμα αρχείου sudoers

nano /etc/sudoers

Και προσθήκη της γραμμής:

bob ALL=(ALL:ALL) ALL

Αύξηση ασφάλειας του SSH:

# Άνοιγμα αρχείου ρυθμίσεων SSH

sudo nano /etc/ssh/sshd_config

Τροποποιήστε ή προσθέστε τις παρακάτω γραμμές:

Protocol 2
PermitRootLogin no
PermitEmptyPasswords no
MaxAuthTries 5
MaxSessions 2

Επανεκκίνηση υπηρεσίας SSH:

sudo systemctl restart sshd.service

3. Ενημέρωση συστήματος & Firewall

# Ενημέρωση πακέτων

sudo apt-get update
sudo apt-get -y dist-upgrade

# Εγκατάσταση firewall (ufw)

sudo apt-get install -y iptables iptables-persistent ufw
# Άνοιγμα των απαραίτητων θυρών

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

# Ενεργοποίηση του firewall

sudo ufw enable

4. Εγκατάσταση Docker και Docker Compose

# Εγκατάσταση απαραίτητων πακέτων

sudo apt-get install -y ca-certificates curl gnupg lsb-release

# Προσθήκη του GPG κλειδιού του Docker

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Προσθήκη του αποθετηρίου του Docker

echo \
 "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Εγκατάσταση Docker Engine

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# Εγκατάσταση του Docker Compose

mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose

5. Εγκατάσταση και Εκκίνηση των Nextcloud & CrowdSec

# Εγκατάσταση git

sudo apt install -y git

# Κάνουμε clone το αποθετήριο

git clone https://github.com/Sykursen/crowdsec-nextcloud.git

Μεταβείτε στον φάκελο crowdsec-nextcloud. Επεξεργαστείτε τα αρχεία ρυθμίσεων αντικαθιστώντας το example.org με το domain σας και ορίζοντας ισχυρούς κωδικούς στο αρχείο .env.

sudo docker compose up -d

6. Προσθήκη του Bouncer στο CrowdSec

# Δημιουργία ενός νέου bouncer key

sudo docker exec nextcloud-crowdsec-1 cscli bouncers add openresty-nextcloud

Αντιγράψτε το API key που θα εμφανιστεί. Τώρα, επεξεργαστείτε το αρχείο ρυθμίσεων του bouncer και προσθέστε το κλειδί.

/crowdsec/crowdsec-openresty-bouncer.conf.yaml

API*KEY: <Εδώ*το*κλειδί*που_αντιγράψατε>

# Επανεκκίνηση του bouncer για να εφαρμοστούν οι αλλαγές

sudo docker compose restart openresty

7. Ενεργοποίηση HTTPS με Let’s Encrypt

# Αντικαταστήστε το example.com με το δικό σας domain

sudo docker compose run --rm certbot certonly --webroot --webroot-path /var/www/certbot/ -d example.com

Μόλις εκδοθεί το πιστοποιητικό, επεξεργαστείτε το αρχείο ρυθμίσεων του Openresty (.conf) και προσθέστε το μπλοκ server για την θύρα 443, όπως φαίνεται στον οδηγό. Θυμηθείτε να βάλετε τη σωστή διαδρομή για τα αρχεία του πιστοποιητικού σας.

# ...

ssl_certificate /etc/nginx/ssl/live/example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/example.com/privkey.pem;

# ...

Επανεκκινήστε για τελευταία φορά:

sudo docker compose restart openresty

Συμπέρασμα: Τι πετύχαμε;

Με την παραπάνω εγκατάσταση, δεν έχουμε απλώς έναν λειτουργικό Nextcloud server. Έχουμε δημιουργήσει μια σκληροπυρηνική, αυτο-αμυνόμενη υποδομή που προστατεύεται ενεργά. Το CrowdSec λειτουργεί ως άγρυπνος φρουρός, μπλοκάροντας αυτόματα προσπάθειες εισβολής (brute-force, scans κ.λπ.) πριν καν φτάσουν στην εφαρμογή σας.

Το πιο σημαντικό είναι ότι ο server σας δεν είναι πλέον μόνος του. Συμμετέχει σε ένα παγκόσμιο δίκτυο αμυνόμενων μηχανών. Κάθε φορά που ένας άλλος server, οπουδήποτε στον κόσμο, μπλοκάρει μια κακόβουλη IP, η δική σας εγκατάσταση μαθαίνει γι’ αυτήν και την μπλοκάρει προληπτικά. Έτσι, ο Nextcloud σας είναι απείρως πιο ανθεκτικός σε απειλές.

Μην ξεχνάτε ότι τα πιστοποιητικά Let’s Encrypt λήγουν κάθε 3 μήνες. Μπορείτε να τα ανανεώσετε με την εντολή:

sudo docker compose run --rm certbot renew

Αρχική δημοσίευση:
https://eiosifidis.blogspot.com/2025/08/nextcloud-server-crowdsec.html