4.5 Αρχιτεκτονική Διαμόρφωσης
4.5 Αρχιτεκτονική Διαμόρφωσης
4.5.1 Εισαγωγή
Το κεφάλαιο αυτό αποτελεί τον πλήρη οδηγό τεκμηρίωσης των βημάτων που ακολουθήθηκαν για τη μετατροπή της αρχικής εγκατάστασης του Ubuntu 24.04LTS Server Edition στην τελική, θωρακισμένη υποδομή του MyThesis.
Απευθύνεται αποκλειστικά στον διαχειριστή του συστήματος (Sysadmin), παρέχοντας την πλήρη διαρθρωτική απεικόνιση και αξιολόγηση των κρίσιμων παραμέτρων λειτουργίας της εικονικής μηχανής DL-THESIS-SRV. Όλες οι πληροφορίες διαχείρισης, από την αναγνώριση του συστήματος (ID) έως τους κανόνες του Τείχους Προστασίας (Firewall), είναι οργανωμένες σε διαδραστικές καρτέλες (tabs) για άμεση πρόσβαση και χαρτογράφηση του τελικού setup. Αμέσως μετά, ακολουθεί ο Οδηγός Αρχικών Ρυθμίσεων και Θωράκισης, ο οποίος παρουσιάζει αναλυτικά, σε αριθμημένους πίνακες, όλες τις εντολές (commands) και τις ενέργειες που χρησιμοποιήθηκαν.
4.5.2 Τεχνικές πληροφορίες
Αναγνώριση Συστήματος
Τα θεμελιώδη τεχνικά χαρακτηριστικά της εικονικής μηχανής DL-THESIS-SRV.
| Στοιχείο | Τιμή |
|---|---|
| Λειτουργικό Σύστημα (OS) | Ubuntu 24.04.3 LTS x86_64 |
| Όνομα Κόμβου (Hostname) | dl-thesis-srv |
| Πυρήνας (Kernel) | Linux 6.8.0-85-generic |
| CPU | 4 cores |
| Μνήμη (Memory) | 4.00 GiB |
| Εικονική Μνήμη (Swap) | 2.00 GiB |
| Δίσκος (/) | 7.45 GiB / 51.86 GiB (14%) - ext4 |
| Τοπική IP (enp0s3) | 192.168.1.146/24 |
| Τοπικές Ρυθμίσεις (Locale) | en_US.UTF-8 |
| Ζώνη Ώρας (Timezone) | Europe/Athens |
Καταγραφή Χρηστών
Απεικόνιση των λογαριασμών χρηστών και της πολιτικής πρόσβασης (PoLP) της υποδομής.
| Χρήστης | Ρόλος/Περιγραφή | Κωδικός |
|---|---|---|
| root | Ο βασικός χρήστης της εγκατάστασης και ελεύθερης πρόσβασης στο terminal / console. | N/A (Απενεργοποιημένος/Περιορισμένος) |
| digilady | Ο Sysadmin του συστήματος, με δικό του φάκελο στο home. | 3edc+^YHN |
Θωράκιση Απομακρυσμένης Πρόσβασης
Εφαρμογή πολιτικών PoLPο και Obfuscation για ενίσχυση της ασφάλειας του SSH.
| Πολιτική | Τεχνική Ενέργεια / Αποτέλεσμα |
|---|---|
| Ελάχιστου Προνομίου (PoLP) | Περιορίστηκε η πρόσβαση μέσω SSH στον χρήστη digilady και απενεργοποιήθηκε η απευθείας σύνδεση του διαχειριστή (Root Login Restriction). |
| Απόκρυψη Θύρας (Port Obfuscation) | Τροποποιήθηκε η προεπιλεγμένη θύρα SSH από την 22 στην 31213 για αποφυγή αυτοματοποιημένων σαρώσεων. |
Κανόνες Εισερχόμενης Κίνησης (UFW)
Πλήρης καταγραφή των κανόνων του Τείχους Προστασίας (ufw) που επιτρέπουν την πρόσβαση σε βασικές υπηρεσίες.
| Θύρα (Port) | Υπηρεσία (Service) | Ενέργεια (Action) | Προέλευση (From) |
|---|---|---|---|
| Κανόνες IPv4 | |||
| 61208 | Glances | ALLOW IN | Anywhere |
| 31213 | SSH | ALLOW IN | Anywhere |
| 80/tcp | Apache | ALLOW IN | Anywhere |
| 10000 | Webmin | ALLOW IN | Anywhere |
| 10101 | Webmin CT-101 | ALLOW IN | Anywhere |
| 10102 | Webmin CT-102 | ALLOW IN | Anywhere |
| 10103 | Webmin CT-102 | ALLOW IN | Anywhere |
| 1010 | VuePress Dev CT-101 | ALLOW IN | Anywhere |
| 8443 | LXDUI | ALLOW IN | Anywhere |
| Κανόνες IPv6 | |||
| 61208 (v6) | Glances | ALLOW IN | Anywhere (v6) |
| 31213 (v6) | SSH | ALLOW IN | Anywhere (v6) |
| 80/tcp (v6) | Apache | ALLOW IN | Anywhere (v6) |
| 10000 (v6) | Webmin | ALLOW IN | Anywhere (v6) |
| 8443 (v6) | LXDUI | ALLOW IN | Anywhere (v6) |
| 10101 (v6) | Webmin | ALLOW IN | Anywhere (v6) |
| 10102 (v6) | Webmin | ALLOW IN | Anywhere (v6) |
| 10103 (v6) | Webmin | ALLOW IN | Anywhere (v6) |
| 1010 (v6) | VuePress Dev CT-101 | ALLOW IN | Anywhere (v6) |
Μετάφραση Διευθύνσεων Δικτύου (DNAT)
Αντιστοίχιση των θυρών του Host Server στις υπηρεσίες που φιλοξενούνται εντός των Containers.
| Host IP | Host Port | Container IP | Container Port | Reason |
|---|---|---|---|---|
| 192.168.1.146 | 10101 | 10.11.100.101 | 10000 | DEVSRV - Webmin Panel |
| 192.168.1.146 | 10102 | 10.11.100.102 | 10000 | FILESRV - Webmin Panel |
| 192.168.1.146 | 10103 | 10.11.100.103 | 10000 | WEBSRV - Webmin Panel |
| 192.168.1.146 | 1010 | 10.11.100.101 | 8080 | Vuepress Dev Mode Web |
| 192.168.1.146 | 80 | 10.11.100.103 | 80 | MyThesis Web Documentation Site |
Καταγραφή Εργαλείων Υποδομής
Εφαρμογές και βοηθήματα που εγκαταστάθηκαν επιπρόσθετα για την ανάπτυξη, παρακολούθηση και διαχείριση της πτυχιακής.
| ΑΑ | Εφαρμογή | Χρήση | Πρόσβαση | Παρατηρήσεις |
|---|---|---|---|---|
| 1. | Fastfetch | Πληροφορίες Συστήματος Terminal | fastfetch | bash command |
| 2. | Glances | Παρακολούθηση Διακομιστή σε Πραγματικό Χρόνο | glances / http://192.168.1.146:61208 | bash command / Web access |
| 3. | Wget | Λογισμικό μη διαδραστικής ανάκτησης αρχείων δικτύου | wget | bash command |
| 4. | Curl | Εργαλείο μεταφοράς δεδομένων μέσω URLs | curl | bash command |
| 5. | Rsync | Βοήθημα απομακρυσμένης μεταφοράς αρχείων | rsync | bash command |
| 6. | Webmin | Διαχείριση Διακομιστή μέσω Web | https://192.168.1.146:10000 | Web access |
| 7. | LXD | Υποδομή Εικονικοποίησης Containers | lxc / lxd commands | Command Line |
| 8. | LXDUI | Γραφική Διαχείριση Containers | https://192.168.1.146:8443 | Web access (Επόμενο Κεφάλαιο) |
Σημεία Ανάκτησης Συστήματος (Recovery Points)
Καταγραφή των βασικών Snapshots του DL-THESIS-SRV για γρήγορη επαναφορά (Rollback) σε προκαθορισμένα ασφαλή σημεία.
| Όνομα | Περιγραφή | Ημερομηνία Δημιουργίας |
|---|---|---|
| Αρχικο DL-THESIS_SRV | Αρχικο DL-THESIS_SRV σε περιπτωση λαθους επιστροφη εδω. | 10 Sep 2025 07:31 μ.μ. |
| First-Level-Ready | Περιέχει τους βασικούς χρήστες με ρυθμισμένους κωδικούς/δικαιώματα-ομάδες και όλα τα ενημερωμένα πακέτα (updates). | 20 Sep 2025 11:44 π.μ. |
4.5.3 Οδηγός Αρχικών Ρυθμίσεων και Θωράκισης
Μετά την ολοκλήρωση της αρχικής εγκατάστασης του Ubuntu 24.04 LTS Server, η προτεραιότητα δίνεται στην ενίσχυση της ασφάλειας και τη βελτιστοποίηση του περιβάλλοντος DL-THESIS-SRV. Οι πρώτες ενέργειες περιλαμβάνουν την πλήρη ενημέρωση των πακέτων του συστήματος και την εφαρμογή των βασικών μέτρων θωράκισης, όπως ο σωστός ορισμός των κανόνων του τείχους προστασίας (ufw) και η εφαρμογή πολιτικών SSH Hardening (PoLP, Root Login Restriction). Ακολουθεί η εγκατάσταση κρίσιμων εργαλείων διαχείρισης και παρακολούθησης, τα οποία, μαζί με την εγκατάσταση της υποδομής εικονικοποίησης LXD, διασφαλίζουν τη σταθερή και ασφαλή λειτουργία του διακομιστή, σύμφωνα με τις προδιαγραφές του project MyThesis.
4.5.3.1 Ενημέρωση Πακέτων Συστήματος
Η ενημέρωση του καταλόγου πακέτων (update) και η αναβάθμιση όλων των εγκατεστημένων πακέτων (upgrade) είναι η πρώτη ενέργεια. Αυτό διασφαλίζει ότι όλες οι λειτουργικές μονάδες και οι βιβλιοθήκες του Ubuntu είναι στην πιο πρόσφατη και ασφαλή έκδοσή τους πριν από οποιαδήποτε διαμόρφωση.
| Ενέργεια | Εντολή Εγκατάστασης | Λειτουργία |
|---|---|---|
| Ενημέρωση καταλόγου πακέτων: | sudo apt update | Φρεσκάρει τον κατάλογο πακέτων από τα αποθετήρια. |
| Αναβάθμιση όλων των πακέτων: | sudo apt upgrade -y | Αναβαθμίζει τα εγκατεστημένα πακέτα. Το -y επιτρέπει την αυτόματη επιβεβαίωση. |
| Εκκαθάριση αχρησιμοποίητων πακέτων: | sudo apt autoremove -y | Αφαιρεί πακέτα που εγκαταστάθηκαν ως εξαρτήσεις, αλλά δεν χρειάζονται πλέον. |
4.5.3.2 Ρύθμιση Τείχους Προστασίας (UFW)
Η ρύθμιση του Uncomplicated Firewall UFW αποτελεί θεμελιώδη αρχή θωράκισης. Η πολιτική που ακολουθείται είναι "Deny by Default" (απόρριψη όλων εξ ορισμού), επιτρέποντας ρητά μόνο την κυκλοφορία στις θύρες που είναι απολύτως απαραίτητες για τη λειτουργία του MyThesis (όπως SSH, Webmin, LXDUI, Apache και Glances).
| Ενέργεια | Εντολή Εγκατάστασης | Λειτουργία |
|---|---|---|
| Ενεργοποίηση UFW | sudo ufw enable | Ενεργοποιεί το τείχος προστασίας. |
| Πολιτική Προεπιλογής | sudo ufw default deny incoming | Ορίζει την προεπιλεγμένη πολιτική να απορρίπτει την εισερχόμενη κίνηση. |
| Εξαίρεση SSH | sudo ufw allow 31213/tcp comment 'Custom SSH Port' | Επιτρέπει τη σύνδεση SSH στην τροποποιημένη θύρα 31213. |
| Εξαίρεση Webmin | sudo ufw allow 10000/tcp comment 'Webmin Panel' | Επιτρέπει την πρόσβαση στο Webmin για διαχείριση. |
| Εξαίρεση Glances | sudo ufw allow 61208/tcp comment 'Glances Monitoring' | Επιτρέπει την πρόσβαση στο Glances για παρακολούθηση συστήματος. |
| Εξαίρεση LXDUI | sudo ufw allow 8443/tcp comment 'LXDUI Web Interface' | Επιτρέπει την πρόσβαση στη γραφική διαχείριση των Containers. |
| Εξαίρεση HTTP | sudo ufw allow 80/tcp comment 'VuePress Web Site' | Επιτρέπει την κυκλοφορία στην τυπική θύρα 80 για τον web server (Apache/Nginx). |
| Εξαίρεση HTTPS | sudo ufw allow 443/tcp comment 'VuePress SSL' | Επιτρέπει την κρυπτογραφημένη κυκλοφορία (SSL/TLS). |
| Εμφάνιση Κανόνων | sudo ufw status verbose | Εμφανίζει την τελική λίστα των ενεργών κανόνων UFW. |
4.5.3.3 Θωράκιση Ασφαλούς Κελύφους (SSH Hardening)
4.5.3.3.1 Εγκατάσταση SSH (Εάν δεν υπάρχει)
Αν και το OpenSSH συνήθως ρυθμίζεται κατά την εγκατάσταση του Ubuntu Server, η επιβεβαίωση της παρουσίας του είναι σημαντική. Στη συνέχεια, εγκαθιστούμε τον κειμενογράφο nano, ο οποίος είναι απαραίτητος για την επεξεργασία του αρχείου ρυθμίσεων.
| Ενέργεια | Εντολή Εγκατάστασης | Λειτουργία |
|---|---|---|
| Εγκατάσταση OpenSSH | sudo apt install openssh-server -y | Διασφαλίζει ότι ο διακομιστής SSH είναι εγκατεστημένος. |
| Εγκατάσταση nano | sudo apt install nano -y | Απαραίτητο εργαλείο για επεξεργασία αρχείων ρυθμίσεων. |
4.5.3.3.2 Εφαρμογή Πολιτικών Θωράκισης
Οι παρακάτω ρυθμίσεις εφαρμόζονται στο κύριο αρχείο ρυθμίσεων του SSH διακομιστή, το /etc/ssh/sshd_config.
| Ενέργεια | Εντολή Εγκατάστασης | Λειτουργία |
|---|---|---|
| Επεξεργασία αρχείου ρυθμίσεων | sudo nano /etc/ssh/sshd_config | Ανοίγει το αρχείο για αλλαγή των πολιτικών ασφαλείας. |
| Αλλαγή θύρας: | Port 31213 | Αλλάζει τη θύρα από 22 σε 31213 (Port \ Obfuscation). |
| Περιορισμός Root Login | PermitRootLogin no | Απαγορεύει την απευθείας σύνδεση ως root (PoLP). |
| Περιορισμός Χρηστών | AllowUsers digilady | Επιτρέπει μόνο στo χρήστη digilady να συνδέεται (PoLP). |
| Επανεκκίνηση υπηρεσίας | sudo systemctl restart ssh | Εφαρμόζει τις νέες ρυθμίσεις ασφαλείας. |
4.5.3.4 Κρίσιμα Εργαλεία
Εγκαθιστούμε τα απαραίτητα βοηθητικά εργαλεία, τα οποία είναι κρίσιμα για τη διαχείριση, την παρακολούθηση και τη μεταφορά δεδομένων στο MyThesis (rsync, wget, curl).
| Ενέργεια | Εντολή Εγκατάστασης | Λειτουργία |
|---|---|---|
| Εγκατάσταση rsync, wget, curl | sudo apt install rsync wget curl -y | Απαραίτητα εργαλεία για συγχρονισμό αρχείων και κατέβασμα δεδομένων από το δίκτυο. |
| Εγκατάσταση Fastfetch | sudo apt install fastfetch -y | Εργαλείο για γρήγορη και εύχρηστη προβολή των τεχνικών πληροφοριών του συστήματος (βλ. Tab \ ID}. |
| Εγκατάσταση Glances | sudo apt install glances -y | Εργαλείο για παρακολούθηση του συστήματος σε πραγματικό χρόνο (CPU, RAM, Δίσκος) μέσω terminal και Web. |
4.5.3.5 LXD
4.5.3.5.1 Εγκατάσταση
Το LXD (Linux Daemon) είναι η πλατφόρμα διαχείρισης για τα LXC containers, η οποία παρέχει μια σύγχρονη και ασφαλή εμπειρία διαχείρισης εικονικών περιβαλλόντων. Η επιλογή του LXD αντί για άλλες λύσεις (π.χ. Docker) βασίζεται στην ανάγκη για system-container εικονικοποίηση, όπου κάθε container λειτουργεί ως πλήρες OS (Operating System).
| Ενέργεια | Εντολή Εγκατάστασης | Λειτουργία |
|---|---|---|
| Εγκατάσταση LXD | sudo snap install lxd | Εγκαθιστά το LXD μέσω του Snap package manager. |
| Προσθήκη χρήστη | sudo usermod -aG lxd digilady | Προσθέτει τον χρήστη digilady στην ομάδα lxd για να μπορεί να εκτελεί εντολές διαχείρισης χωρίς sudo. |
| Ενεργοποίηση αλλαγής | newgrp lxd | Απαιτείται αποσύνδεση και επανασύνδεση (re-login) του χρήστη για να εφαρμοστούν οι αλλαγές ομάδας. |
4.5.3.5.2 Αρχική Ρύθμιση
Μετά την εγκατάσταση του LXD, η εντολή lxd init ξεκινά έναν διαδραστικό οδηγό για την αρχική ρύθμιση της υποδομής εικονικοποίησης. Κατά τη διάρκεια της ρύθμισης, πρέπει να απαντήσουμε σε συγκεκριμένες ερωτήσεις για την επιλογή τεχνολογίας αποθήκευσης και τη ρύθμιση του δικτύου. Η επιλογή του ZFS είναι κρίσιμη για την αποδοτικότητα και τη διαχείριση snapshot των containers.
| Ενέργεια | Εντολή/Ερώτηση | Λειτουργία |
|---|---|---|
| Εκκίνηση Διαμόρφωσης | lxd init | Ξεκινά τον διαδραστικό οδηγό ρύθμισης. |
| Τεχνολογία Αποθήκευσης | Name of the storage backend to use [default=zfs]: | Επιλέγουμε zfs για βέλτιστη διαχείριση snapshot και απόδοση. |
| Μέγεθος ZFS Pool | Size in GB or percentage of the remaining free space [default=50%]: | Επιλέγουμε το μέγιστο μέγεθος, 90%, για να κρατήσουμε χώρο για το host OS. |
| Ρύθμιση Δικτύου | Would you like to create a new local network bridge? [default=yes]: | Επιλέγουμε «yes» για να δημιουργήσουμε το εσωτερικό δίκτυο των containers. |
| Όνομα Bridge | What should the new bridge be called? [default=lxdbr0]: | Αφήνουμε το προεπιλεγμένο όνομα lxdbr0. |
| Πρόσβαση στο Δίκτυο | Would you like LXD to be available over the network? [default=no]: | Επιλέγουμε no για λόγους ασφαλείας. |
4.5.3.5.3 LXDUI - Απομακρυσμένη Πρόσβαση
Η διαχείριση των containers μέσω της ενσωματωμένης διεπαφής χρήστη (Web UI) είναι απαραίτητη για την παρακολούθηση του περιβάλλοντος. Εφόσον το LXD είναι εγκατεστημένο μέσω Snap, το UI είναι ενσωματωμένο αλλά απενεργοποιημένο by default. Χρειάζονται επιπλέον ρυθμίσεις για να επιτρέψουμε την ασφαλή (HTTPS) πρόσβαση από το δίκτυο.
| Ενέργεια | Εντολή στον Server | Λειτουργία |
|---|---|---|
| Ενεργοποίηση UI | sudo snap set lxd ui.enable=true | Ενεργοποιεί τη λειτουργία Web UI του LXD Snap. |
| Επανεκκίνηση Υπηρεσίας | sudo snap restart --reload lxd | Επανεκκινεί τον LXD daemon για την εφαρμογή της ρύθμισης. |
| Ρύθμιση HTTPS Διεύθυνσης | sudo lxc config set core.https_address :8443 | Δίνει εντολή στο LXD να ακούει για συνδέσεις στη θύρα 8443. Αυτό επιτρέπει την απομακρυσμένη και ασφαλή διαχείριση. |
| Άνοιγμα Firewall | sudo ufw allow 8443/tcp ΚΑΙ sudo ufw reload | Κρίσιμο! Επιτρέπει την εισερχόμενη κίνηση στη θύρα 8443 μέσω του UFW. |
Note
Μπορείς να αποκτήσεις πρόσβαση στο Web UI του LXD, χρησιμοποιώντας οποιοδήποτε πρόγραμμα περιήγησης, στη διεύθυνση https://[IP_του_Server_σου>]:8443.