Συνεχίζουμε με το δεύτερο μέρος της σειράς Self Hosted Cloud Server, στο οποίο θα κάνουμε εγκατάσταση το docker και το Cosmos Server.
Την σειρά οδηγών Self Hosted Cloud Server γράφει ο φίλος Μητσaker. Θα τα βρείτε όλα στο link : Cosmos Server.
Αν θέλετε και εσείς να συνεισφέρετε μπορείτε να δείτε τους τρόπους : Συνεισφορά στο Cerebrux
Ο Server μας μπορεί να είναι φυσικό μηχάνημα που θα «αναλάβει» την δουλειά αυτή, ή μπορεί να είναι μια εικονική μηχανή (VM) εγκατεστημένη σε κάποιο φυσικό μηχάνημα. Εάν στηθεί σε VM, είτε για δοκιμές είτε ως μόνιμη λύση, η σύνδεση δικτύου καλό θα είναι να αλλαχτεί από NAT σε bridged mode για να λαμβάνει απευθείας IP από το router μας ώστε να το βλέπουμε ως άλλο ένα μηχάνημα του τοπικού δικτύου μας.
Αλλαγή απο NAT σε Bridged mode στο VirtualBox
Εγκατάσταση Ubuntu Server
Αφού αποφασίσετε σε τι μηχάνημα θα φιλοξενηθεί ο Server, το επόμενο βήμα είναι να κάνετε λήψη και εγκατάσταση του Ubuntu Server LTS
Ο συγκεκριμένος οδηγός που γράφουμε, θα αφορά σε ένα PC με
- Ubuntu Server για την απομακρυσμένη διαχείριση μέσω SSH και SFTP (ασφαλή μεταφορά αρχείων),
- θα αποτελείται από έναν δίσκο για το λειτουργικό,
- έναν για τα δεδομένα των containers (/mnt/data),
- έναν για τα αντίγραφα ασφαλείας (/mnt/backup) του ‘/mnt/data’
- και έναν αφαιρούμενο για backup2backup (για να κρατάμε λίγο πιο ήσυχο το κεφάλι μας).
Αφού έχετε κάνει εγκατάσταση το Ubuntu Server (προτιμήστε κατά την εγκατάσταση να επιλέξετε το OpenSSH ως το μόνο επιπρόσθετο λογισμικό) θα πρέπει να δημιουργήσετε στον προσωπικό σας υπολογιστή, τα ζεύγη κλειδιών για την πρόσβαση στον Server χωρίς την ανάγκη χρήσης Username / Password
Δημιουργία ζεύγους κλειδιών στο PC μέσω τερματικού:
ssh-keygen
και αυτομάτως, το δημόσιο και ιδιωτικό κλειδί παράγεται και αποθηκεύεται στη διαδρομή home/xrhsths/.ssh/
(όπου xrhsths φυσικά είναι το username σας). Στην συνέχεια κάνουμε αντιγραφή του public κλειδιού στο server:
sudo ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Όπου 192.168.xxx.xxx η IP του Ubuntu Server μας.
Αφού αντιγράψουμε το public κλειδί μας, κάνουμε απαγόρευση εισόδου με password και τον user root. Κάνουμε είσοδο στο Server με
Θα χρησιμοποιούμε τον κειμενογράφο nano
από τώρα και για τον υπόλοιπο οδηγό. Όταν τελειώνουμε με τις αλλαγές μας, θα δίνουμε ‘Ctrl+o’ και ‘Enter’ για την αποθήκευση τους και ‘Ctrl+x’ και ‘Enter’ για την έξοδο. Εσείς χρησιμοποιείστε αυτό που σας βολεύει π.χ. Vim.
οπότε και συνεχίζουμε:
sudo nano /etc/ssh/sshd_config
και τροποποιούμε τα εξής:
PermitRootLogin no
PasswordAuthentication no
Αποθηκεύουμε και κάνουμε επανεκκίνηση τον SSH:
sudo systemctl reload sshd
Αν έχετε απορίες σχετικά με τον SSH διαβάστε τον πλήρη οδηγό του : 10 απλά βήματα για ένα ασφαλές SSH
Στατική IP στον Server
Σε οικιακές συσκευές όπως είναι οι υπολογιστές και τα κινητά μας, έτσι και ο Server που στήσαμε, λογικά θα έχει πάρει μια IP απo το Router το οποίο όμως μπορεί για διάφορους λόγους να το χάσει (ειδικά αν μείνει για καιρό κλειστός ο server μας). Γιαυτό τον λόγο θα πρέπει να μεριμνήσετε να του ρυθμίσετε είτε απο το DHCP Service του Router σας είτε από τον ίδιο τον Server να έχει στατική IP. Διαβάστε τον σχετικό οδηγό : Netplan | Στατική IP σε Ubuntu Server
Ενημερώσεις και αναβαθμίσεις του Ubuntu Server
Μιας και ήμαστε ακόμα στον Server, ας θέσουμε και την σωστή ζώνη ώρας :
sudo timedatectl set-timezone Europe/Athens
και ας κάνουμε λήψη και εγκατάσταση το uCareSystem για συντήρηση του server μας:
wget https://github.com/Utappia/uCareSystem/releases/download/v24.05.0/ucaresystem-core_24.05.0_all.deb
sudo apt install ./ucaresystem-core_24.05.0_all.deb
αφού τελειώσει η εγκατάσταση, το τρέχουμε:
sudo ucaresystem-core
Φυσικά, εμείς θα πρέπει να ήμαστε σίγουροι ότι οι ενημερώσεις συστήματος γίνονται αυτόματα και χωρίς την παρουσία μας. Στο Ubuntu Server είναι πιθανόν να είναι εγκατεστημένες και ενεργοποιημένες εξορισμού αλλά ένας έλεγχος και επιβεβαίωση από εμάς, δεν βλάπτει
sudo apt install unattended-upgrades
Ανοίγουμε τις ρυθμίσεις:
sudo nano /etc/apt/apt.conf.d/10periodic
και κάνουμε προσθήκη/τροποποίηση όπως παρακάτω:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
Αν έχετε απορίες σχετικά με τις αυτόματες ενημερώσεις ασφάλειας, αλλά και γενικότερα για τα βασικά θέματα ασφάλειας του Server διαβάστε τoυς οδηγούς: