RTW4ever Δημοσ. 26 Απριλίου 2020 Δημοσ. 26 Απριλίου 2020 (επεξεργασμένο) Χαιρετώ την κοινότητα! Εισαγωγή Σκοπός του παρόντος οδηγού είναι να καταδείξει, ακόμα και σε αρχάριους, την διαδικασία δημιουργίας ενός Home/Small Business File Server, βασισμένου στο λειτουργικό σύστημα Ubuntu Server 20.04 64bit. Ο οδηγός αυτός θα είναι πολύ μακρύς και αναλυτικός, καθώς θα γίνεται προσπάθεια να εξηγούνται οι ενέργειες που κάνουμε και το υπόβαθρο πίσω από αυτές, ώστε ο αναγνώστης να καταλαβαίνει όχι μόνο πώς κάνουμε κάτι, αλλά και γιατί το κάνουμε. Ο οδηγός αυτός αποτελεί την δεύτερη έκδοση, και αποτελεί την λογική συνέχεια της πρώτης έκδοσης, η οποία αφορούσε στον Ubuntu Server 16.04 και μπορείτε να την βρείτε εδώ. Όπως σας είχα υποσχεθεί, όταν θα κυκλοφορούσε η έκδοση 20.04 του λειτουργικού, θα ανανέωνα τον οδηγό. Πλέον δεν είμαι ο αρχάριος χρήστης που ήμουν τότε, οπότε υπάρχει μια θεμελιώδης αλλαγή στη δομή του Server. ΔΕΝ θα εγκαταστήσουμε σε αυτόν γραφικό περιβάλλον, αλλά ο έλεγχός του θα γίνεται αποκλειστικά απομακρυσμένα, μέσω δικτύου και terminal. Αυτό κάνει την εγκατάσταση και την ρύθμιση του Server απλούστερες, ευκολότερες και γρηγορότερες, ενώ και οι ενημερώσεις θα παίρνουν λιγότερο χρόνο, καθώς θα υπάρχουν λιγότερα πακέτα software προς ενημέρωση. Για όσους χρήστες έχουν ήδη πανικοβληθεί, έχω να πω να μην φοβούνται, ψυχραιμία, διότι η χρήση του terminal είναι απλούστατη, και όλα τα ζητήματα θα καλυφθούν πλήρως από τον παρόντα οδηγό, ενώ το κέρδος σε χρόνο και κόπο είναι σημαντικό. Σε παρά πολλά σημεία θα χρησιμοποιούνται οι αγγλικοί όροι, ενώ και ο server θα στηθεί εξ ολοκλήρου στην Αγγλική γλώσσα. Αυτό διότι οι τεχνικοί όροι εξαρχής γεννώνται στην Αγγλική γλώσσα, οπότε αυτή είναι η μητρική γλώσσα της σχετικής τεχνολογίας, ενώ επιπρόσθετα πολλές φορές οι μεταφράσεις των τεχνικών όρων στην Ελληνική, είναι απλά τραγικές και δεν βγάζουν καν νόημα, τουλάχιστον κατά την άποψη του γράφοντος. Για τις ανάγκες του οδηγού, θα χρησιμοποιηθεί virtual pc σε virtual box, ενώ όπου κρίνεται απαραίτητο, θα υπάρχει screenshot. Ο οδηγός θα ολοκληρωθεί σε τμήματα, τα οποία θα ανεβαίνουν σιγά σιγά, όποτε ο γράφων έχει το χρόνο να τα ολοκληρώνει. Απαιτήσεις από τον Server Ο server μας θα είναι μόνο File Server, με σκοπό να χρησιμοποιηθεί οικιακά ή σε μικρές επιχειρήσεις, που έχουν απαίτηση από πολλούς χρήστες ταυτόχρονα, να έχουν πρόσβαση σε αρχεία αποθηκευμένα κεντρικά. Κάθε χρήστης θα έχει πρόσβαση στο δικό του share (=διαμοιραζόμενο φάκελο), ενώ θα υπάρχουν και κοινόχρηστοι φάκελοι. Στον server θα υπάρχουν περισσότεροι από ένας φυσικοί σκληροί δίσκοι, όχι σε raid, αλλά σε απλή μορφή JBOD (just a bunch of disks). Φυσικά θα γίνεται διαχείριση του server από απόσταση (remote control), χωρίς σε αυτόν να είναι προσαρτημένα περιφερειακά ελέγχου (πληκτρολόγιο, ποντίκι, οθόνη). Οι απαιτήσεις του σε hardware είναι ελάχιστες. Ένας διπύρηνος επεξεργαστής και 2 GB μνήμης είναι υπεραρκετά για το θαυμάσιο αυτό λειτουργικό. Κεφάλαιο Α – Εγκατάσταση του Server Ξεκινάμε λοιπόν το μακρύ ταξίδι μας! Για την εγκατάσταση χρειαζόμαστε, πέραν του υπολογιστή μας, έναν οπτικό δίσκο ή USB Flash, στο οποίο θα περιέχεται η έκδοση του Ubuntu Server 20.04, την οποία μπορείτε να κατεβάσετε από εδώ: https://ubuntu.com/download/server Φροντίζουμε ρυθμίζοντας το BIOS/UEFI του υπολογιστή μας, να ξεκινήσει ο υπολογιστής (boot) από τον οπτικό δίσκο ή το USB Flash. Επίσης φροντίζουμε ο υπολογιστής να έχει ήδη πρόσβαση στο διαδίκτυο, πριν ξεκινήσουμε την εγκατάσταση. Στο σημείο αυτό να τονίσουμε ότι η έκδοση Server του Ubuntu δεν είναι κάτι διαφορετικό από την κανονική έκδοση Ubuntu, αλλά απλά μια πιο «γδυμένη» έκδοση (stripped down) του λειτουργικού, προσαρμοσμένη στις ανάγκες ενός server. Με την προσθήκη των κατάλληλων πακέτων λογισμικού, μπορεί ανά πάσα στιγμή να μετατραπεί στην «κανονική» έκδοση, ενώ και το αντίθετο, η κανονική έκδοση μπορεί να μετατραπεί σε server. Προτιμούμε όμως την έκδοση server, καθώς είναι πιο ελαφριά, επειδή περιέχει και φορτώνει λιγότερα πακέτα και εξαρτήσεις. ΠΡΟΣΟΧΗ: Για την αποφυγή λαθών από αρχάριους, προτείνεται να αφήσετε στον υπολογιστή μόνο τον σκληρό δίσκο στον οποίο θα εγκατασταθεί το λειτουργικό, και να προσθέσετε τους υπόλοιπους δίσκους σας, ΜΕΤΑ την ολοκλήρωση της εγκατάστασης. Πάμε λοιπόν. Οι επιλογές κατά την εγκατάσταση γίνονται με το πλήκτρο Enter, ενώ η μετακίνηση με τα βελάκια του πληκτρολογίου και το πλήκτρο tab. Η επιλογή μεταξύ πολλών, όπου χρειάζεται, γίνεται με το πλήκτρο Space. Επιλέγουμε αρχικά γλώσσα επικοινωνίας, φυσικά Αγγλικά: Επιλέγουμε γλώσσα και διάταξη πληκτρολογίου, φυσικά επίσης Αγγλικά: Η εγκατάσταση μας βάζει απευθείας στα βαθιά, στις ρυθμίσεις δικτύου. Βλέπουμε ότι έχει ήδη εντοπίσει την κάρτα δικτύου του υπολογιστή μας, εδώ με το όνομα “enp0s3”, ενώ έχει ήδη τοποθετήσει αυτόματες ρυθμίσεις για λήψη διεύθυνσης μέσω DHCP. Εμείς όμως θέλουμε να έχουμε σταθερή διεύθυνση IP στον Server μας, ώστε αφενός μεν ο εντοπισμός του από τους άλλους υπολογιστές του δικτύου μας να είναι πιο εύκολος, αφετέρου δε να μπορούμε εύκολα να λύσουμε τυχόν προβλήματα στο μέλλον. Έτσι διαλέγουμε να δώσουμε χειροκίνητες (manual) ρυθμίσεις, επιλέγοντας “Edit IPv4” και στη συνέχεια, στην επόμενη οθόνη, IPv4 Method à Manual: Στη συνέχεια, στην επόμενη οθόνη, δίνουμε τις εξής ρυθμίσεις: Subnet: 192.168.0.0./24 Address: 192.168.0.38 Gateway: 192.168.0.1 Name Servers: 1.1.1.1,1.0.0.1 ΠΡΟΣΟΧΗ: Οι ρυθμίσεις αυτές φυσικά διαφέρουν, ανάλογα το εκάστοτε τοπικό δίκτυο. Η ανάλυση των ιδιοτήτων του δικτύου δεν αποτελεί μέρος του παρόντος οδηγού. Πολύ περιληπτικά, το Subnet καθορίζεται από τον Router σας, πρέπει δηλαδή να είναι το ίδιο με του Router σας, η Address είναι η διεύθυνση που θέλουμε να έχει ο Server, η Gateway είναι η διεύθυνση του Router σας στο τοπικό δίκτυο, ενώ Name Servers βάζουμε όποιους θέλουμε, εγώ επιλέγω αυτούς της Cloudflare: https://1.1.1.1/dns/ Με την επιλογή Save επιστρέφουμε στην προηγούμενη οθόνη και το πρόγραμμα εγκατάστασης ενεργεί έλεγχο αν υπάρχει επικοινωνία με το διαδίκτυο. Εάν όλα έχουν καλώς, στη στήλη NOTES δεν θα υπάρχει κανένα σχόλιο: Με την επιλογή Done προχωράμε στην επόμενη οθόνη εγκατάστασης, όπου μας ζητείται η ρύθμιση Proxy address. Αφήνουμε κενό και προχωράμε: Στη συνέχεια η εγκατάσταση μας ζητάει mirror για τα updates του Ubuntu, ενώ έχει ήδη επιλέξει αυτόματα τον Ελληνικό. Αφήνουμε την επιλογή ως έχει και προχωράμε: Ακολουθεί η επιλογή και διαμόρφωση δίσκου στον οποίον θα γίνει η εγκατάσταση. Μπορείτε να επιλέξετε την αυτόματη ρύθμιση, κατά την οποία η εγκατάσταση θα χρησιμοποιήσει όλο τον δίσκο, και να προχωρήσετε κατευθείαν, όμως εγώ προτείνω χειροκίνητη ρύθμιση των Partitions του δίσκου. Ο λόγος είναι ότι θέλουμε να χωρίσουμε το partition που θα περιέχει το λειτουργικό, από το partition που θα περιέχει τα δεδομένα, δηλαδή από το /home, ώστε αυτά να παραμένουν ανεξάρτητα από την εγκατάσταση. Έτσι ακόμα και αν για κάποιο λόγο πάθει κάτι η εγκατάσταση, τα δεδομένα των χρηστών θα παραμείνουν ανέπαφα. Έτσι από τις παραπάνω επιλογές, επιλέγουμε (με το Space, όπως έχουμε πει παραπάνω) το “Custom storage layout” και προχωράμε: Στην παραπάνω οθόνη, βλέπουμε ότι το πρόγραμμα εγκατάστασης μας δείχνει τους δίσκους του συστήματός μας, εδώ φυσικά μόνο έναν. Επιλέγουμε από τις “AVAILABLE DEVICES” τον δίσκο μας και στη συνέχεια “Add GPT Partition”. ΣΗΜΕΙΩΣΗ: Όλα όσα ακολουθούν, αναφέρονται σε μη διαμορφωμένο (νέο) δίσκο. Αν ο δίσκος σας έχει partitions από προηγούμενη χρήση, τότε θα πρέπει πρώτα να τα διαγράψετε, μέσα από τις επιλογές της εγκατάστασης που φαίνονται στην παραπάνω οθόνη. Στην επόμενη οθόνη λοιπόν, δίνουμε μέγεθος του partition όπου θα γίνει η εγκατάσταση του λειτουργικού. 10 GB είναι αρκετά, ώστε να αφήσουμε τον περισσότερο χώρο για τα δεδομένα των χρηστών. Φυσικά μπορείτε ελεύθερα να καθορίσετε αυτή τη ρύθμιση, ιδίως αν στο μέλλον πρόκειται να προσθέσετε και άλλες χρήσεις στον Server ή να εγκαταστήσετε γραφικό περιβάλλον. Ως file system αφήνουμε το default ext4, ενώ ως mount point φυσικά ορίζουμε το root του λειτουργικού, το / : Με τον ίδιο ακριβώς τρόπο στη συνέχεια, προσθέτουμε δεύτερο partition, για το οποίο ορίζουμε ως mount point το /home, δίνοντας μέγεθος της ελεύθερης επιλογής μας: Τέλος, προσθέτουμε ένα τρίτο partition, μεγέθους περίπου 3 GB, το οποίο θα χρησιμοποιείται για την εικονική μνήμη (swap) του λειτουργικού, όταν αυτό την χρειάζεται. Ως σύστημα αρχείων (Format) επιλέγουμε “swap”, οπότε αμέσως απενεργοποιείται η επιλογή mount point: Μετά από όλα τα παραπάνω, η διαμόρφωση του δίσκου μας έχει κάπως έτσι: Μέχρι τώρα, δεν έχει επέλθει στην πραγματικότητα κάποια αλλαγή στον δίσκο μας. Επιλέγοντας “Done”, η εγκατάσταση μας προειδοποιεί ότι πλέον οι αλλαγές που επιλέξαμε θα εφαρμοστούν: Αμέσως μετά η εγκατάσταση αρχίζει να τρέχει στο παρασκήνιο, ενώ παράλληλα μας ζητείται να επιλέξουμε username, password και server name. Δίνουμε ελεύθερα τις επιλογές μας και προχωράμε. Εδώ για τις ανάγκες του οδηγού επιλέξαμε dimix και ubserver2004 αντίστοιχα. Στην επόμενη οθόνη, οπωσδήποτε επιλέγουμε να εγκαταστήσουμε το πακέτο “OpenSSH Server”, που θα μας επιτρέπει τον πλήρη έλεγχο από απόσταση του Server μας: Στη συνέχεια μας δίνεται η δυνατότητα να επιλέξουμε προκαθορισμένα πακέτα χρήσεων για τον Server μας. Δεν επιλέγουμε τίποτα, καθώς τίποτα δεν είναι απαραίτητο για την χρήση ως File Server, και προχωράμε: Εδώ τελείωσαν όλες οι επιλογές που είχαμε να κάνουμε. Η εγκατάσταση προχωράει πλέον: και ολοκληρώνεται σε ελάχιστα λεπτά, ζητώντας μας επανεκκίνηση: Αφαιρούμε το μέσο εγκατάστασης (USB stick ή οπτικό δίσκο DVD) που χρησιμοποιήσαμε, και μετά την επανεκκίνηση, η οθόνη υποδοχής διαπνέεται από ιδιαίτερη λιτότητα: Δίνουμε διαδοχικά το username και το password που είχαμε ορίσει κατά την εγκατάσταση (αν είστε απολύτως αρχάριος στο linux, να σας πούμε ότι δίνοντας τον κωδικό το σύστημα δεν αντιδρά, ούτε καν αστεράκια δείχνει, όμως ο κωδικός περνάει κανονικά), και έχουμε το πρώτο login μας στον Server μας: Τρέχουμε αμέσως την ακόλουθη εντολή, για να εγκαταστήσουμε τυχόν ενημερώσεις του λειτουργικού: sudo apt-get update && sudo apt-get dist-upgrade -y Με την εντολή lsblk μπορούμε να δούμε τους δίσκους μας και τα partition τους: Με την εντολή sudo apt install dfc εγκαθιστούμε το πρόγραμμα dfc, το οποίο μας δείχνει με ωραία χρώματα τον ελεύθερο χώρο των δίσκων μας. Στη συνέχεια τρέχοντας dfc -d -p /dev βλέπουμε την χωρητικότητα και τον ελεύθερο χώρο όλων των δίσκων μας (στο screenshot έχω ήδη αντιστοιχίσει την παραπάνω εντολή με alias στο d, κάτι που φυσικά δεν είναι απαραίτητο εσείς να κάνετε): Τέλος με την εντολή ip -c a βλέπουμε με χρώματα την διεύθυνση ip του Server μας, στην περίπτωση που την έχουμε ξεχάσει, εδώ η 192.168.0.38: Συνεχίζεται... Ο παλιός οδηγός, για όσους είναι ανυπόμονοι και πιστεύουν ότι μπορούν να τον χρησιμοποιήσουν, βρίσκεται εδώ: Υπερ-αναλυτικός οδηγός δημιουργίας Home/Small Business File Server με Ubuntu Server 16.04 Επεξ/σία 26 Απριλίου 2020 από RTW4ever Προσθήκη Link παλιού οδηγού 10 6
dovecotDev Δημοσ. 27 Απριλίου 2020 Δημοσ. 27 Απριλίου 2020 Θα ήθελα να μου εξηγήσεις κάποιες από της επιλογές σου. Για ένα file server, έστω και για το σπίτι ή μια μικρή εταιρεία, αρκετά χαρακτηριστικά λείπουν. Γιατί file server με ext4; άρα χωρίς copy-on-write (COW); χωρίς cloning; χωρίς snapshots; χωρίς προστασία από bitrot; Γιατί όχι raid; που είναι η προστασία των δίσκων; ούτε ένα ταπεινό RAID1 mirror; έστω ένα RAID6;
RTW4ever Δημοσ. 27 Απριλίου 2020 Μέλος Δημοσ. 27 Απριλίου 2020 (επεξεργασμένο) Στις 27/4/2020 στις 12:15 ΠΜ, dovecotDev είπε Θα ήθελα να μου εξηγήσεις κάποιες από της επιλογές σου. Για ένα file server, έστω και για το σπίτι ή μια μικρή εταιρεία, αρκετά χαρακτηριστικά λείπουν. Γιατί file server με ext4; άρα χωρίς copy-on-write (COW); χωρίς cloning; χωρίς snapshots; χωρίς προστασία από bitrot; Γιατί όχι raid; που είναι η προστασία των δίσκων; ούτε ένα ταπεινό RAID1 mirror; έστω ένα RAID6; Προφανώς γνωρίζεις περισσότερα από εμένα. Από όσο έχω δει τυχαία από άλλες αναρτήσεις σου, πρέπει να έχεις σχέση με πληροφορική, εγώ δεν έχω, η δουλειά μου δεν έχει καμία σχέση με αυτήν. Κάποια από αυτά που λες δεν τα γνωρίζω καν, οπότε λοιπόν, και χωρίς ίχνος επιθετικότητας, ιδού πεδίον δόξης λαμπρόν, μπορείς να φτιάξεις τον δικό σου οδηγό με τις λύσεις που εσύ προτείνεις. 🙂 Τώρα προσπαθώντας να απαντήσω κάπως. Καταρχήν αυτά που παρουσιάζω, τα έχω δοκιμάσει εδώ και τέσσερα χρόνια και δουλεύουν άψογα, τόσο στο σπίτι όσο και στη δουλειά μου. Μάλιστα Server στο σπίτι έχω εδώ και περίπου δέκα χρόνια, έχοντας αρχίσει τότε με Windows Home Server. Ο Server προορίζεται για backup και διαμοιρασμό αρχείων σε μικρό αριθμό χρηστών, ξέρω γω πέντε δέκα άτομα το πολύ. Δεν έχω στο νου μου ένα Rack Server, αλλά ένα απλό PC που ξέμεινε λόγω αναβάθμισης και μπορεί να ανανεώσει τη ζωή του ως File Server. Ο δικός μου στο σπίτι έχει Asrock 945GCM-S, Pentium(R) Dual-Core E5400 @ 2.70GHz και 2 GB μνήμη! Είχε ξεμείνει τότε (πότε; το 2008; δεν θυμάμαι! ), και λέω παρά να τον πετάξω, δεν τον κάνω δεύτερο PC για data backup; Φυσικά με νέο καλό τροφοδοτικό και UPS από πίσω, πάντα. Το Copy on write δεν ξέρω τι είναι, υποθέτω αντιγραφή αμέσως μόλις γραφτεί κάτι, ως backup. Στο ext4 δεν βρίσκω κάποιο πρόβλημα, είναι τόσα χρόνια δοκιμασμένο και απολύτως σταθερό. Για τα snapshots, επειδή ακριβώς δεν έχουμε raid, αν πάθει κάτι το hardware, το αλλάζουμε αμέσως και σε μισή ώρα εγκατάστασης ο server είναι ξανά στημένος, αφού το μόνο που χρειάζεται είναι το smb.conf, όπως θα εξηγήσω παρακάτω σε επόμενο βήμα του οδηγού. To bitrot δεν ξέρω τι είναι. Για το raid και την ασφάλεια των δεδομένων. Το raid το θεωρώ απολύτως άχρηστο για την χρήση που κάνω εγώ. Αντί να έχω raid 1 ή 6, προτιμώ να έχω διπλό backup σε δύο δίσκους στον Server. Αν χαλάσει ο ένας, απλά τον αλλάζω και αντιγράφω εκ νέου τα δεδομένα. Αν χαλάσει το hardware, απλά αλλάζω το hardware και τα δεδομένα μου είναι έτοιμα και ανέπαφα στους δίσκους τους. Τους κουμπώνεις στο νέο hardware, περνάς το λειτουργικό και σε μισή ώρα είσαι έτοιμος. Έτσι δεν εξαρτώμαι από περίεργους drivers, σπάσιμο του raid και πλήρη απώλεια των δεδομένων, διάφορες ιδιοτροπίες. ΑΠΛΟΤΗΤΑ (και συνεπαγόμενη συμβατότητα) είναι το σύνθημά μου. Ο συγχρονισμός με τον Server, δηλαδή το backup, γίνεται με το Free File Sync, δωρεάν που τρέχει σε Linux και Windows, και έχει λύσεις για όλα, ακόμα και copy-on-write που λες, real time sync, δηλαδή αποστολή στον server αμέσως μόλις γίνει η εγγραφή στο κύριο PC, του εκάστοτε αρχείου. Στο ένα backup του server λοιπόν γίνεται το real time sync, και στο άλλο το περιοδικό backup. Και για τα πολύτιμα δεδομένα της δουλειάς, υπάρχει backup και σε εξωτερικό δίσκο, και συγχρονισμός με σπίτι και δουλειά. Δηλαδή τα πρωτότυπα δεδομένα και πέντε φορές επιπλέον backup! Αν τώρα εννοείς τα κοινόχρηστα αρχεία στον server να γίνονται αυτά backup, μπορείς απλά να βάλεις τον server με ένα cron να συγχρονίζει τα δεδομένα του ενός δίσκου σε ένα δεύτερο. Εμένα προσωπικά δεν μου χρειάζεται κάτι τέτοιο. Στα 20 χρόνια ενασχόλησης με υπολογιστές, τα παραπάνω με έχουν δικαιώσει. Είχα δοκιμάσει raid, με πικρή εμπειρία. Αυτή τη στιγμή έχω συνολικά σε 6 σταθερά PC σε σπίτι και δουλειά, αμέτρητους δίσκους σε λειτουργία, και έχω αλλάξει πολλούς στην πορεία. Μόλις κάποιος εμφανίζει πρόβλημα σε Smart, αμέσως αντιγραφή των δεδομένων και αλλαγή. Απλότητα δεν είπαμε; 🙂 Επεξ/σία 28 Απριλίου 2020 από RTW4ever 2
dovecotDev Δημοσ. 27 Απριλίου 2020 Δημοσ. 27 Απριλίου 2020 Εεεε όχι και επιθετικός... ερώτηση έκανα. 😋 Για να τον ονομάσεις “file server” θεωρώ πως δεν είναι αρκετό το samba. Δημοσιεύεις ένα καλογραμμένο οδηγό για να τον ακολουθήσουν άλλα άτομα, άρα μην βλέπεις μόνο τις δικές σου απαιτήσεις. Σε ένα file server καλό θα ήταν να υπάρχει μια αξιοπιστία/ασφάλεια στα δεδομένα, αν οι τεχνολογίες που ανέφερα είναι άγνωστες ή δύσκολες, τότε ενα απλό RAID είναι μονόδρομος. Το RAID είναι αρκετά εξελιγμένο στο linux σε software μορφή και δεν υπάρχει λόγος για hardware (πχ raid controller). Για παράδειγμα, να έχουμε 2 δίσκους με ένα partition ο καθένας, μπορούμε να φτιάξουμε ένα mirror: # --create a new array # /dev/md0 raid device # --level=1 raid level 1 (mirror) # --raid-devices=2 number of total harddrives # /dev/sda1 drive a, partition 1 # /dev/sdb1 drive b, partition 1 mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 Αν θέλεις μπορείς να δουλέψεις και χωρίς partitions (mirror τους sda και sdb): mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb Απλά, ωραία και κατανοητά. Υπάρχουν αρκετά tutorials και guides για περισσότερες λεπτομέρειες. Μια απλή πρόταση για την ανάπτυξη της γνώσης της ανθρωπότητας χωρίς καμία επίθεση 🥰 😍 ❤️ 1
e-tic Δημοσ. 27 Απριλίου 2020 Δημοσ. 27 Απριλίου 2020 Διαφωνώ με το RAID σε home server. Τι το critical θα υπάρχει ώστε να μην μπορεί να ζήσει δευτερόλεπτο χωρίς αυτό; Ταινίες, μουσική, τσ0ντ3ς; Και να αποτύχει ο δίσκος όλα αυτά τα ξαναβρίσκεις (λογικά). Το μόνο που χρειάζεται να ενδιαφέρει το οικιακό χρήστη είναι να μην χαθούν τα αρχεία που δεν ξαναβρίσκονται, όπως προσωπικές φωτογραφίες και βίντεο, αλλά και εκεί δεν σε σώζει απόλυτα το RAID και το τοπικό backup σε δεύτερο δίσκο (περιπτώσεις φυσικών καταστροφών). Καλύτερα κατά την γνώμη μου αυτά τα αρχεία να συμπιέζονται και να κρυπτογραφούνται ώστε να αποθηκεύονται στο cloud ή σε off site μέρος. 4 1
dovecotDev Δημοσ. 27 Απριλίου 2020 Δημοσ. 27 Απριλίου 2020 Θα συμφωνούσα μαζί σου.... πριν 20 χρόνια. Τώρα αγοράζεις 1TB δίσκο για ψίχουλα, γιατί να μην αγοράσεις δύο; Απλά, ωραία και με ασφάλεια για όλα σου τα αρχεία. Ένα προτέρημα του RAID 1 mirror είναι και η ταχύτητα, στην εγγραφή θα υπάρχει μια πολύ μικρή έως και ανύπαρκτη καθυστέρηση, αλλά στο διάβασμα θα έχεις σαφέστατη διαφορά καθώς θα διαβάζουν όλοι οι δίσκοι μαζί (ε τώρα αν ψειρίζουμε την μαϊμού, υπάρχουν και κάποια όρια στους συμβατικούς υπολογιστές που έχουν SATA III κλπ αλλά ας μην μπλέξουμε τα μπούτια μας). Α! ξέχασα, ένα κορυφαίο RAID εργαλείο για να καταλαβαίνουμε τα επίπεδα RAID είναι αυτό: https://www.synology.com/en-global/support/RAID_calculator 2
e-tic Δημοσ. 27 Απριλίου 2020 Δημοσ. 27 Απριλίου 2020 Πριν 20 χρόνια ψάχναμε τα σύννεφα στον ουρανό, τώρα τα ψάχνουμε μπροστά σε μια οθόνη. Αν κάποιος home user ενδιαφέρεται τόσο πολύ για ταχύτητα τότε θα κάνει RAID/syncing με SSDs (υψηλότερο κόστος) και αν ενδιαφέρεται για zero failure points τότε θα πάει για VPS (και πάλι cloud δηλαδή), αλλά αυτά δεν είναι οι τυπικές ανάγκες ενός average home user που θέλει να στήσει ενα home server. Δεν υποτιμώ την αξία του RAID, ούτε το θεωρώ παρωχημένο, απλά αμφισβητώ την ανάγκη υλοποίησής του σε οικιακό περιβάλλον. Βεβαίως δεν αμφισβητώ τις ιδιαίτερες ανάγκες του καθενός. Κάποιος μπορεί να θέλει ό,τι τεχνολογία υπάρχει να την υλοποιήσει στο σπίτι του, να σκάσει ένα σκασμό λεφτά, να το φουλάρει και με φωτάκια που αναβοσβήνουν για να κάθεται να το χαζέυει και να το χρησιμοποιεί μόνο σαν κατεβαστήρι. Δικαιωμά του και αυτό. Ξεφεύγουμε όμως, και νομίζω οτι πρέπει απλά να πούμε ένα μπράβο και ευχαριστώ στον TS που κάθεται και ασχολείται να γράψει αυτόν τον οδηγό.
prixtis Δημοσ. 28 Απριλίου 2020 Δημοσ. 28 Απριλίου 2020 Εχω την εντυπωση πως μπερδευτετε το RAID και το backup. To Raid δεν ειναι λυση backup. Ειναι για αυξηση διαθεσιμοτητας. Ολα τα RAIDs, πλην του RAID 1, αντεχουν την απωλεια ενος η και παραπανω δισκων σε μερικες περιπτωσεις και αυξανουν την ταχυτητα εγγραφης / αναγνωσης. Σε εναν file server (η ακομα σε εναν απλο σταθμο εργασιας) με εναν δισκο, σε περιπτωση αποτυχιας του δισκου, απατειται αλλαγη του δισκου, επανεγκατασταση του λειτουργικου και επαναφορα αρχειων (αν φυσικα δεν υπαρχει προσφατο image). Σε περιπτωση που ο file server η ο σταθμος εργασιας ειχε καποιο RAID, στην περιπτωση αποτυχιας του δισκου, απλα θα ηθελε αντικατασταση ο δισκος και rebuild το RAID. Σαφεστατα πολυ λιγοτερος χρονος, κοπος και κυριως αγχος. Και οσο αφορα RAID controllers, drivers κτλ, το linux RAID κραταει το RAID configuration πανω στους δισκους. Μερικοι RAID controllers το κρατανε πανω στον controller. Ειδικα on board RAID. Σε αυτους τους controllers, αν καει ο controller κατα πασα πιθανοτητα εχεις χασει και το RAID. Αλλα οπως και να εχει, ειτε εχουμε RAID η οχι, παντα κραταμε τουλαχιστον 2 backups. 2 γιατι αν ποτε το χρειαστουμε να εχουμε περισσοτερες πιθανοτητες να εχουμε και ενα λειτουργικο backup. Και κατα προτιμηση τουλαχιστον ενα backup εκτος σπιτιου/γραφειου (κλοπη, φωτια κτλ) The Tao of Backup 1
RTW4ever Δημοσ. 28 Απριλίου 2020 Μέλος Δημοσ. 28 Απριλίου 2020 19 ώρες πριν, dovecotDev είπε Εεεε όχι και επιθετικός... ερώτηση έκανα. 😋 Για να τον ονομάσεις “file server” θεωρώ πως δεν είναι αρκετό το samba. Δημοσιεύεις ένα καλογραμμένο οδηγό για να τον ακολουθήσουν άλλα άτομα, άρα μην βλέπεις μόνο τις δικές σου απαιτήσεις. Σε ένα file server καλό θα ήταν να υπάρχει μια αξιοπιστία/ασφάλεια στα δεδομένα, αν οι τεχνολογίες που ανέφερα είναι άγνωστες ή δύσκολες, τότε ενα απλό RAID είναι μονόδρομος. Το RAID είναι αρκετά εξελιγμένο στο linux σε software μορφή και δεν υπάρχει λόγος για hardware (πχ raid controller). Για παράδειγμα, να έχουμε 2 δίσκους με ένα partition ο καθένας, μπορούμε να φτιάξουμε ένα mirror: # --create a new array # /dev/md0 raid device # --level=1 raid level 1 (mirror) # --raid-devices=2 number of total harddrives # /dev/sda1 drive a, partition 1 # /dev/sdb1 drive b, partition 1 mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 Αν θέλεις μπορείς να δουλέψεις και χωρίς partitions (mirror τους sda και sdb): mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb Απλά, ωραία και κατανοητά. Υπάρχουν αρκετά tutorials και guides για περισσότερες λεπτομέρειες. Μια απλή πρόταση για την ανάπτυξη της γνώσης της ανθρωπότητας χωρίς καμία επίθεση 🥰 😍 ❤️ Δεν είπα ότι εσύ ήσουν επιθετικός, εγώ διευκρίνισα ότι, όσα είπα, τα είπα με φιλικό τρόπο! Δεύτερον, διάβασα περί bitrot και έχω να πω... χα χα χα! Το μεγαλύτερο FUD της τεχνολογικής εποχής μας! Πήραν το πασίγνωστο Data degradation που υπάρχει από την εποχή των Floppy, και του έδωσαν ένα νέο πιασάρικο όνομα για να φοβίζει τον κόσμο! Ποιος δεν θυμάται την κουβέντα που γινόταν για τους πρώτους SSDs, ότι θα έχαναν εύκολα τα δεδομένα τους λόγω διαφυγής ηλεκτρονίων από τις πύλες (transistors). Έχω ήδη απαντήσει πιο πάνω πως το αντιμετωπίζω, με τον συνεχή έλεγχο του Smart των δίσκων, αλλά αντί να γράφω πιο αναλυτικά, αντιγράφω από εδώ, επιμένοντας σε όσα είπα παραπάνω. Στο bold που έχω βάλει είναι όλη η ουσία σε μία γραμμή: https://www.jodybruchon.com/2017/03/07/zfs-wont-save-you-fancy-filesystem-fanatics-need-to-get-a-clue-about-bit-rot-and-raid-5/ Bit rot just doesn’t work that way. I am absolutely sick and tired of people in forums hailing ZFS (and sometimes btrfs which shares similar “advanced” features) as some sort of magical way to make all your data inconveniences go away. If you were to read the ravings of ZFS fanboys, you’d come away thinking that the only thing ZFS won’t do is install kitchen cabinets for you and that RAID-Z is the Holy Grail of ways to organize files on a pile of spinning rust platters. In reality, the way that ZFS is spoken of by the common Unix-like OS user shows a gross lack of understanding of how things really work under the hood. It’s like the “knowledge” that you’re supposed to discharge a battery as completely as possible before charging it again which hasn’t gone away even though that was accurate for old Ni-Cd battery chemistry and will destroy your laptop or cell phone lithium-ion cells far faster than if you’d have just left it on the charger all the time. Bad knowledge that has spread widely tends to have a very hard time dying. This post shall serve as all of the nails AND the coffin for the ZFS and btrfs feature-worshiping nonsense we see today. Side note: in case you don’t already know, “bit rot” is the phenomenon where data on a storage medium gets damaged because of that medium “breaking down” over time naturally. Remember those old floppies you used to store your photos on and how you’d get read errors on a lot of them ten years later? That’s sort of like how bit rot works, except bit rot is a lot scarier because it supposedly goes undetected, silently destroying your data and you don’t ever find out until it’s too late and even your backups are corrupted. “ZFS has CRCs for data integrity” A certain category of people are terrified of the techno-bogeyman named “bit rot.” These people think that a movie file not playing back or a picture getting mangled is caused by data on hard drives “rotting” over time without any warning. The magical remedy they use to combat this today is the holy CRC, or “cyclic redundancy check.” It’s a certain family of hash algorithms that produce a magic number that will always be the same if the data used to generate it is the same every time. This is, by far, the number one pain in the ass statement out of the classic ZFS fanboy’s mouth and is the basis for most of the assertions that ZFS “protects your data” or “guards against bit rot” or other similar claims. While it is true that keeping a hash of a chunk of data will tell you if that data is damaged or not, the filesystem CRCs are an unnecessary and redundant waste of space and their usefulness is greatly over-exaggerated by hordes of ZFS fanatics. Hard drives already do it better Enter error-correcting codes (ECC.) You might recognize that term because it’s also the specification for a type of RAM module that has extra bits for error checking and correction. What the CRC Jesus clan don’t seem to realize is that all hard drives since the IDE interface became popular in the 1990s have ECC built into their design and every single bit of information stored on the drive is both protected by it and transparently rescued by it once in a while. Hard drives (as well as solid-state drives) use an error-correcting code to protect against small numbers of bit flips by both detecting and correcting them. If too many bits flip or the flips happen in a very specific way, the ECC in hard drives will either detect an uncorrectable error and indicate this to the computer or the ECC will be thwarted and “rotten” data will successfully be passed back to the computer as if it was legitimate. The latter scenario is the only bit rot that can happen on the physical medium and pass unnoticed, but what did it take to get there? One bit flip will easily be detected and corrected, so we’re talking about a scenario where multiple bit flips happen in close proximity and in such a manner that it is still mathematically valid. While it is a possible scenario, it is also very unlikely. A drive that has this many bit errors in close proximity is likely to be failing and the the S.M.A.R.T. status should indicate a higher reallocated sectors count or even worse when this sort of failure is going on. If you’re monitoring your drive’s S.M.A.R.T. status (as you should be) and it starts deteriorating, replace the drive!
RTW4ever Δημοσ. 28 Απριλίου 2020 Μέλος Δημοσ. 28 Απριλίου 2020 (επεξεργασμένο) Πάμε στο Β' Μέρος του οδηγού τώρα: Κεφάλαιο B – Απομακρυσμένος έλεγχος του Server με SSH & SFTP Στην ουσία με τις παραπάνω ενέργειες ολοκληρώσαμε την εγκατάσταση στον Server μας και δεν υπάρχει πια η ανάγκη για φυσική παρουσία μας σε αυτόν. Έτσι λοιπόν, επειδή έχουμε εμπιστοσύνη στον εαυτό μας, αποσυνδέουμε ποντίκι (αν το είχαμε συνδεδεμένο, δεν χρειαζόταν), πληκτρολόγιο και οθόνη, τοποθετούμε τον Server μας στον μόνιμο χώρο διαμονής του, και μεταφερόμαστε σε έναν άλλο υπολογιστή στο δίκτυό μας, ο οποίος τρέχει ένα desktop λειτουργικό. Φυσικά εμείς θα χρησιμοποιήσουμε μια διανομή Linux για την συνέχεια των εργασιών μας, όμως τα ίδια μπορούν να γίνουν και μέσα από Windows, με το πρόγραμμα PuTTY, που υποστηρίζει SSH σε Windows: https://www.putty.org/ Εμείς λοιπόν για τις ανάγκες του οδηγού θα χρησιμοποιήσουμε μια εγκατάσταση Xubuntu 20.04. Η σύνδεση στον Server μας θα γίνει μέσω του πρωτοκόλλου επικοινωνίας SSH (=Secure Shell), που παρέχει ασφαλέστατη σύνδεση μεταξύ του server μας και του client pc (π.χ. ένα laptop). Ο ίδιος τρόπος σύνδεσης μπορεί στο μέλλον να χρησιμοποιηθεί και για απομακρυσμένη πρόσβαση στον server μέσω διαδικτύου, δηλαδή από οπουδήποτε στον κόσμο. Ανοίγουμε λοιπόν ένα τερματικό και δίνουμε την εντολή: ssh [email protected] Δηλαδή την εντολή ssh που πραγματοποιεί την σύνδεση δια του ομώνυμου πρωτοκόλλου, ακολουθούμενη από το username μας στον Server (προσοχή σε αυτό) και την διεύθυνση IP του Server που είχαμε ορίσει κατά την εγκατάσταση αυτού. Μας απαντάει ότι δεν μπορεί να διαπιστωθεί η αυθεντικότητα του Server μας (λογικό, δεν ασχολούμαστε αυτή τη στιγμή με ψηφιακά πιστοποιητικά στον Server μας) και αν θέλουμε να συνεχίσουμε, φυσικά απαντάμε yes. Στη συνέχεια μας ζητάει τον κωδικό (password) του χρήστη στον Server (και πάλι προσοχή εδώ, όχι του desktop λογαριασμού), και αφού δώσουμε και αυτόν, συνδεόμαστε επιτέλους στον Server μας, όπως φαίνεται στην παρακάτω οθόνη. Πλέον είμαστε συνδεδεμένοι στον Server μας με πλήρη δικαιώματα και μπορούμε να κάνουμε κυριολεκτικά ό,τι θέλουμε, σαν να καθόμαστε μπροστά του. Όπως βλέπουμε, το prompt στο terminal έχει αλλάξει από dimix@XubuntuCore (το desktop μας) σε dimix@ubserver2004 (o Server μας). Αφού λοιπόν έχουμε επιβεβαιώσει ότι μπορούμε να συνδεθούμε στον Server μας, στη συνέχεια θα αλλάξουμε λίγο τον τρόπο σύνδεσης σε αυτόν, ώστε ο τρόπος αυτός να είναι πολύ πιο ασφαλής. Για να το κάνουμε αυτό, θα χρησιμοποιήσουμε τα κλειδιά πρόσβασης SSH. Αυτό με λίγα λόγια δουλεύει ως εξής: Δημιουργούμε ένα private key και ένα public key στο client PC. Το private key το φυλάσσουμε στο client PC, ενώ το public key το στέλνουμε ή το εγκαθιστούμε χειροκίνητα στον server. Στη συνέχεια απενεργοποιούμε την δυνατότητα εισόδου στον server με χρήση user password, και η είσοδός μας σε αυτόν γίνεται μόνο με τη χρήση του private key μας. Η διαδικασία αυτή εισόδου είναι απείρως ασφαλέστερη από την είσοδο με κωδικό χρήστη. Όμως ας τα δούμε στην πράξη, ώστε να σας λυθούν και οι όποιες απορίες. Τερματίζουμε πρώτα την σύνδεσή μας με τον server, με την εντολή exit. Από το client PC σε terminal δίνουμε την εντολή ssh-keygen -t rsa -b 4096 -o -a 100 Με την εντολή αυτή δημιουργούμε ένα κλειδί με κρυπτογράφηση RSA και εύρος 4096 bit, στη σύγχρονη μορφή του και με προσθήκη γύρων διαφοροποίησης (key derivation function rounds), από τους πιο ασφαλείς αλγορίθμους που υπάρχουν σήμερα. Στην επόμενη ερώτηση για το που θα τοποθετηθούν τα κλειδιά αφήνουμε το default, απλά πατώντας enter, ενώ εάν θέλουμε, μπορούμε να προστατεύσουμε ακόμα και το private key μας που δημιουργούμε, με κρυπτογραφημένο κωδικό πρόσβασης (passphrase), τον οποίο δίνουμε στην επόμενη ερώτηση, ενώ αν δεν θέλουμε κωδικό, απλά πατάμε enter: Τα κλειδιά μας έχουν δημιουργηθεί και είναι τοποθετημένα στον φάκελο /home/username/.ssh (όπου username αυτό που έχετε χρησιμοποιήσει εσείς). Στο σημείο αυτό να ενημερώσουμε όσους δεν γνωρίζουν, ότι στο Linux όταν σε ένα όνομα αρχείου ή φακέλου προηγείται η τελεία (.), το αρχείο ή φάκελος είναι κρυφό και για να το δούμε, θα πρέπει στον file manager μας να ενεργοποιήσουμε την προβολή κρυφών αρχείων. Στη συνέχεια στέλνουμε το public key που μόλις δημιουργήσαμε, στον server μας με την εντολή: ssh-copy-id [email protected] Δηλαδή χρησιμοποιούμε πάλι, όπως την προηγούμενη φορά που συνδεθήκαμε, το username μας στον Server, ενώ φυσικά όταν μας ζητηθεί, δίνουμε τον κωδικό του username μας στον server, όχι του χρήστη μας στο client PC: Με αυτό τον τρόπο έχουμε εγκαθιδρύσει δυνατότητα σύνδεσης στον server μας με κρυπτογραφημένα κλειδιά. Συνδεόμαστε ξανά στον server μας με την εντολή: ssh [email protected] όπου πλέον παρατηρούμε ότι δεν μας ζητείται κωδικός πρόσβασης, αλλά η είσοδός μας γίνεται αμέσως: Την ίδια διαδικασία μπορούμε να κάνουμε από οποιοδήποτε άλλο PC μας, από το οποίο θέλουμε να έχουμε απομακρυσμένη πρόσβαση στον server μας. Στη συνέχεια θα απενεργοποιήσουμε εντελώς την δυνατότητα σύνδεσης με κωδικό στον server μας και θα προβούμε και σε μερικές ακόμα ρυθμίσεις αύξησης της ασφάλειας. Όλες οι ρυθμίσεις της υπηρεσίας (Service στα Windows, Daemon στο Linux) του SSH Server βρίσκονται στο αρχείο sshd_config που βρίσκεται στον φάκελο /etc/ssh. Με την εντολή (στον Server εννοείται) cd /etc/ssh μεταφερόμαστε στον παραπάνω φάκελο, ενώ με την εντολή ll βλέπουμε αναλυτικά τα αρχεία που βρίσκονται στον φάκελο αυτόν: Προσοχή: Το αρχείο που μας ενδιαφέρει, είναι το αρχείο sshd_config, όχι το αρχείο ssh_config. Όπως βλέπουμε, είναι αρχείο συστήματος, που ανήκει στον root χρήστη, συνεπώς για να το επεξεργαστούμε χρειαζόμαστε αυξημένα δικαιώματα. Για να τα αποκτήσουμε, θα χρησιμοποιήσουμε την εντολή sudo στο terminal, και με αυτή θα ανοίξουμε στο πρόγραμμα nano το αρχείο μας. Ο nano είναι επεξεργαστής κειμένου στο τερματικό (terminal), πολύ εύκολος στη χρήση. Δίνουμε λοιπόν την εντολή sudo nano sshd_config και αφού δώσουμε τον κωδικό μας, εάν μας ζητηθεί, το εν λόγω αρχείο ανοίγει στο τερματικό ως εξής: Να εξηγήσουμε εδώ ότι σε όποια γραμμή υπάρχει στην αρχή της η δίεση ( # ), η γραμμή αυτή αποτελεί σχόλιο και δεν λαμβάνεται υπόψη από το σύστημα. Στην παραπάνω εικόνα μάλιστα όλα τα σχόλια είναι με γαλάζιο χρώμα. Από όλες αυτές τις ρυθμίσεις, μας ενδιαφέρουν τα εξής: 1. Η γραμμή #LoginGraceTime 2m Η οποία καθορίζει σε πόσο χρόνο σε δευτερόλεπτα ή λεπτά θα περιμένει ο server την επικύρωση ταυτότητας (authentication) από τον χρήστη που προσπαθεί να εισέλθει στο σύστημα. Μια πιο λογική τιμή είναι 60 ή ακόμα και 30 για τους πιο τολμηρούς, η οποία και προτείνεται: LoginGraceTime 30 2. Η γραμμή #StrictModes yes Στην οποία αφαιρούμε την δίεση ώστε να τεθεί η ρύθμιση σε ισχύ. 3. Η γραμμή #MaxStartups 10:30:60 Η οποία ορίζει ότι μεταξύ της 10ης και 60ης προσπάθειας εισόδου στον server, ο server θα αρχίσει να απορρίπτει το 30% των προσπαθειών, μέχρι να φθάσει στο 100% απόρριψης στην 60ή προσπάθεια. Οι αριθμοί αυτοί είναι πολύ ανεκτικοί, οπότε προτείνεται να αφαιρέσουμε την δίεση, ώστε να τεθεί σε ισχύ η ρύθμιση, και να την αλλάξουμε ως εξής: MaxStartups 2:30:10 Με αυτή τη ρύθμιση, μεταξύ της 2ης και 10ης προσπάθειας εισόδου στον server, ο server θα αρχίσει να απορρίπτει το 30% των προσπαθειών, μέχρι να φθάσει στο 100% απόρριψης στην 10η προσπάθεια. Με λίγα λόγια έχουμε μόνο δύο προσπάθειες εισόδου στον server, πριν αρχίσουν οι απορρίψεις. 4. Η γραμμή X11Forwarding yes την οποία αλλάζουμε σε X11Forwarding no διότι δεν χρειάζεται ο Server μας να προωθεί προς σύνδεση το X11 γραφικό περιβάλλον, αφού εμείς δεν θα επιχειρήσουμε ποτέ να συνδεθούμε με γραφικό περιβάλλον. 5. Η γραμμή, που είναι και η πιο σημαντική PasswordAuthentication yes η οποία καθορίζει το αν πρόσβαση στον server μας θα μπορεί να γίνει με χρήση του κωδικού χρήστη μας, ή μόνο με κλειδιά ssh. Όπως είπαμε, εμείς θέλουμε να γίνεται μόνο μέσω ssh, που είναι απείρως πιο ασφαλής μέθοδος, οπότε την αλλάζουμε σε PasswordAuthentication no 6. Τέλος, μπορούμε στο τέλος του αρχείου να προσθέσουμε ποιοι χρήστες και μόνο θα επιτρέπεται να εισέλθουν στον server μέσω ssh. Εμείς θέλουμε μόνο εμείς να εισερχόμαστε, οπότε γράφουμε: AllowUsers dimix Με αυτόν τον τρόπο προσθέτουμε ένα ακόμα σοβαρό μέτρο ασφαλείας στον server μας. Μόνο οι ρητά αναγραφόμενοι χρήστες θα μπορούν να εισέλθουν σε αυτόν. Αποθηκεύουμε το αρχείο μας δίνοντας Ctrl + O και enter, κλείνουμε τον nano με Ctrl + X και είμαστε έτοιμοι! Πλέον η είσοδος στον server μας είναι δυνατή μόνο με τα κρυπτογραφημένα κλειδιά ssh. Να αναφέρουμε εδώ ότι στον server τα δημόσια κλειδιά αποθηκεύονται στο αρχείο ~/.ssh/authorized_keys (το σύμβολο ~ αντιπροσωπεύει τον home folder του χρήστη), που όπως όλα σχεδόν τα αρχεία στο linux, είναι αρχείο κειμένου με κάθε κλειδί να καταλαμβάνει μια γραμμή. Απλά για να προσθέσουμε δεύτερο PC, προσθέτουμε σε επόμενη γραμμή το κείμενο του αρχείου id_rsa.pub που δημιουργείται στον φάκελο ~/.ssh του χρήστη του Client PC μας, κατά τη διαδικασία δημιουργίας κλειδιών που περιγράψαμε πιο πάνω. ΠΡΟΣΟΧΗ: Για να δουλέψει το σύστημα εισαγωγής με κλειδιά, απαιτείται όλα τα αρχεία που περιέχουν τα κλειδιά να έχουν δικαιώματα ανάγνωσης και εγγραφής μόνο από τον owner, δηλαδή rw------- ή αλλιώς 600. Αν κάνετε κάποια χειροκίνητη τροποποίηση και αλλάξουν τα δικαιώματα αυτά, η είσοδός σας θα αποτυγχάνει. Τα δικαιώματα χρηστών θα εξηγηθούν αναλυτικότατα σε επόμενο κεφάλαιο. Είσοδος στον Server μέσω SFTP Εκτός από τον παραπάνω τρόπο εισόδου μέσω SSH και τερματικού, μπορούμε να εισέλθουμε στον Server μας και μέσω γραφικού περιβάλλοντος, μέσω του πρωτοκόλλου SFTP (=Secure FTP, Secure File Transfer Protocol) και να πραγματοποιήσουμε μεταφορές αρχείων από την άνεση του Desktop μας! Σε όλες τις σοβαρές διανομές Linux ο File Manager υποστηρίζει εγγενώς το πρωτόκολλο SFTP, έτσι εμείς δεν χρειάζεται να εγκαταστήσουμε απολύτως τίποτα. Εφόσον λοιπόν έχουμε ολοκληρώσει όλα τα παραπάνω σχετικά με την ρύθμιση του SSH, ανοίγουμε τον File Manager μας, εδώ σε XFCE τον Thunar: Στη γραμμή διεύθυνσης δίνουμε το εξής και στη συνέχεια enter: sftp://[email protected] Δηλαδή, όπως και με την σύνδεση μέσω SSH, δίνουμε το username και την διεύθυνση του Server: Και αμέσως, χωρίς τίποτα άλλο, έχουμε πλήρη πρόσβαση σε ολόκληρο το File System του Server μας, μέσω γραφικού περιβάλλοντος! Φυσικά, αυτονόητο ότι στο File System αυτό έχουμε όσα δικαιώματα έχει και ο χρήστης του Server μας, τα οποία επιτρέπει παράλληλα το πρωτόκολλο SFTP. Συνεχίζεται… Επεξ/σία 28 Απριλίου 2020 από RTW4ever Μικροδιορθώσεις 2 2
Xzidique Δημοσ. 3 Μαΐου 2020 Δημοσ. 3 Μαΐου 2020 (επεξεργασμένο) Χαίρεται! Πολύ καλός οδηγός και αξίζει τον κόπο για κάποιον που θέλει να μάθει πως μπορεί να δουλέψει ένα server distro! Θα ήθελα να σου προτείνω να ρίξεις μια ματιά στο Open Media Vault που είναι ένα distribution βασισμένο στο debian και κάνει ακριβώς αυτό που κάνεις με ελάχιστη χρήση στην κονσόλα και πάρα πολύ καλό Ui μέσω browser. Υποστηρίζει Mdadm Raid, User accounts, ssh, ftp, cifs, samba, rsync έχει πολύ καλό monitoring και σε περίπτωση που θες και ταχύτητες υποστηρίζει και Link Aggregation. Μπορείς να του βάλεις και plugins LVM, iSCSI και antivirus. Το μόνο μειονέκτημά του είναι που δεν υποστηρίζει SSD cache. https://www.openmediavault.org/ Αν θες κάτι λίγο ποιο δυνατό που δουλεύει ZFS arrays μπορείς να δεις το FreeNas που είναι βασισμένο σε BSD αλλά υπολόγισε όπου ανάλογα με το μέγεθος των δίσκων που θα βάλεις απάνω χρειάζεται και ανάλογη ποσότητα RAM. Υποστηρίζει SSD/NVME cache. https://www.freenas.org/ Και εξυπακούεται πως σε ένα file Server πάντα χρησιμοποιείται τουλάχιστον ένα Raid 1 που είναι το πιο ασφαλές και δίνει την διπλάσια ταχύτητα ανάγνωσης. Oι λόγοι που κάποιος χρειάζεται έναν file Server πρωτίστως είναι ο όγκος των δεδομένων με την ασφάλειά τους, και δευτερεύων η ταυτόχρονη πρόσβαση από τρίτους στα ίδια δεδομένα με την καλύτερη δυνατή ταχύτητα. Διαφορετικά κάνουμε και την δουλειά μας και με έναν σκληρό δίσκο usb/ethernet από το Public που είναι ευκολότερο στην χρήση και μετακίνηση. Σε ένα σπίτι που υπάρχουν Η/Υ, τηλέφωνα, ταμπλέτες, τηλεοράσεις, μπορείς να τρέχεις έναν plex server (γίνεται με docker στο Open Media Vault) πάνω στο file server σου για για να διαμοιράζεις τις σειρές/ταινίες/μουσική στις συσκευές του σπιτιού. Επίσης μπορείς να σώζεις τις φωτογραφίες σου με την οικογένειά και δεν πιστεύω να ήθελες να χαθούν αυτά τα πράγματα. Αν παίζεις και παιχνίδια μπορείς να έχεις και Steam Cache (κάνει caching ότι κατεβάσεις από το Steam,GOG,EPIC,Origin κλπ ώστε σε περίπτωση που θέλεις να το περάσεις και σε κάποια άλλη συσκευή ή να το κάνεις reinstall, το client τραβάει κατευθείαν από τον file server σου και δεν κατεβάζει από το internet) ή ακόμα να κάνεις cache updates από το Windows update κ.λ.π. Πάνω σε file server μπορείς να εγκαταστήσεις μέχρι torrent client και Antivirus (για malware Windows/Mac/Linux) ώστε όταν θα κατεβάσουμε το photoshop πειρατικό από torrent και έχει υιούς, θυγατέρες, μπατζανάκιδες κ.α δεν φτάνει ποτέ στον υπολογιστή μας. Με το Rsync μπορείς να αντιγράφεις ολόκληρους φακέλους και αρχεία κάθε φορά που μεταβάλλονται από τον υπολογιστή σου με versioning μέσα στον file Server και από τον file Server σε cloud service (κάνει αυτόματα backup ότι του δηλώσεις). Τώρα όσοι πιστεύουν που ένας File Server δεν χρειάζεται Raid1 - Raid5 για resilience απλά δεν τον χρειάζονται, ή δεν την έχουν πατήσει ακόμη στο να χάσουν σκληρό δίσκο, η απλά έχουν άγνοια. Εγώ μέχρι που έφτιαξα τον δικό μου file server μια φορά τον χρόνο πάσχιζα να κάνω recover από χτυπημένο δίσκο. Πλέον απλά δίνω τον χαλασμένο δίσκο πίσω στην εγγύηση αν δεν είναι παλιός και κάνει recover αυτόματα το σύστημα με τον καινούργιο που εγκαθιστώ. Εγώ χρησιμοποιώ το Open Media Vault με Raid5 6tb (4x2tb HDD) και αποθηκεύω Kontakt Sample Libraries, ηχητικά δήγματα (samples), backup image από το bootdrive του Linux παρέα με 2 qcows από virtual machines που χρησιμοποιώ, timemachine backups από το laptop, μουσική και μερικές ταινίες, και ένα repository από windows/mac software που χρησιμοποιώ. Επεξ/σία 3 Μαΐου 2020 από Xzidique 2
RTW4ever Δημοσ. 3 Μαΐου 2020 Μέλος Δημοσ. 3 Μαΐου 2020 9 ώρες πριν, Xzidique είπε Χαίρεται! Πολύ καλός οδηγός και αξίζει τον κόπο για κάποιον που θέλει να μάθει πως μπορεί να δουλέψει ένα server distro! Θα ήθελα να σου προτείνω να ρίξεις μια ματιά στο Open Media Vault που είναι ένα distribution βασισμένο στο debian και κάνει ακριβώς αυτό που κάνεις με ελάχιστη χρήση στην κονσόλα και πάρα πολύ καλό Ui μέσω browser. Υποστηρίζει Mdadm Raid, User accounts, ssh, ftp, cifs, samba, rsync έχει πολύ καλό monitoring και σε περίπτωση που θες και ταχύτητες υποστηρίζει και Link Aggregation. Μπορείς να του βάλεις και plugins LVM, iSCSI και antivirus. Το μόνο μειονέκτημά του είναι που δεν υποστηρίζει SSD cache. https://www.openmediavault.org/ Αν θες κάτι λίγο ποιο δυνατό που δουλεύει ZFS arrays μπορείς να δεις το FreeNas που είναι βασισμένο σε BSD αλλά υπολόγισε όπου ανάλογα με το μέγεθος των δίσκων που θα βάλεις απάνω χρειάζεται και ανάλογη ποσότητα RAM. Υποστηρίζει SSD/NVME cache. https://www.freenas.org/ Και εξυπακούεται πως σε ένα file Server πάντα χρησιμοποιείται τουλάχιστον ένα Raid 1 που είναι το πιο ασφαλές και δίνει την διπλάσια ταχύτητα ανάγνωσης. Oι λόγοι που κάποιος χρειάζεται έναν file Server πρωτίστως είναι ο όγκος των δεδομένων με την ασφάλειά τους, και δευτερεύων η ταυτόχρονη πρόσβαση από τρίτους στα ίδια δεδομένα με την καλύτερη δυνατή ταχύτητα. Διαφορετικά κάνουμε και την δουλειά μας και με έναν σκληρό δίσκο usb/ethernet από το Public που είναι ευκολότερο στην χρήση και μετακίνηση. Σε ένα σπίτι που υπάρχουν Η/Υ, τηλέφωνα, ταμπλέτες, τηλεοράσεις, μπορείς να τρέχεις έναν plex server (γίνεται με docker στο Open Media Vault) πάνω στο file server σου για για να διαμοιράζεις τις σειρές/ταινίες/μουσική στις συσκευές του σπιτιού. Επίσης μπορείς να σώζεις τις φωτογραφίες σου με την οικογένειά και δεν πιστεύω να ήθελες να χαθούν αυτά τα πράγματα. Αν παίζεις και παιχνίδια μπορείς να έχεις και Steam Cache (κάνει caching ότι κατεβάσεις από το Steam,GOG,EPIC,Origin κλπ ώστε σε περίπτωση που θέλεις να το περάσεις και σε κάποια άλλη συσκευή ή να το κάνεις reinstall, το client τραβάει κατευθείαν από τον file server σου και δεν κατεβάζει από το internet) ή ακόμα να κάνεις cache updates από το Windows update κ.λ.π. Πάνω σε file server μπορείς να εγκαταστήσεις μέχρι torrent client και Antivirus (για malware Windows/Mac/Linux) ώστε όταν θα κατεβάσουμε το photoshop πειρατικό από torrent και έχει υιούς, θυγατέρες, μπατζανάκιδες κ.α δεν φτάνει ποτέ στον υπολογιστή μας. Με το Rsync μπορείς να αντιγράφεις ολόκληρους φακέλους και αρχεία κάθε φορά που μεταβάλλονται από τον υπολογιστή σου με versioning μέσα στον file Server και από τον file Server σε cloud service (κάνει αυτόματα backup ότι του δηλώσεις). Τώρα όσοι πιστεύουν που ένας File Server δεν χρειάζεται Raid1 - Raid5 για resilience απλά δεν τον χρειάζονται, ή δεν την έχουν πατήσει ακόμη στο να χάσουν σκληρό δίσκο, η απλά έχουν άγνοια. Εγώ μέχρι που έφτιαξα τον δικό μου file server μια φορά τον χρόνο πάσχιζα να κάνω recover από χτυπημένο δίσκο. Πλέον απλά δίνω τον χαλασμένο δίσκο πίσω στην εγγύηση αν δεν είναι παλιός και κάνει recover αυτόματα το σύστημα με τον καινούργιο που εγκαθιστώ. Εγώ χρησιμοποιώ το Open Media Vault με Raid5 6tb (4x2tb HDD) και αποθηκεύω Kontakt Sample Libraries, ηχητικά δήγματα (samples), backup image από το bootdrive του Linux παρέα με 2 qcows από virtual machines που χρησιμοποιώ, timemachine backups από το laptop, μουσική και μερικές ταινίες, και ένα repository από windows/mac software που χρησιμοποιώ. Σ' ευχαριστώ για την συνεισφορά σου στο θέμα. Κοίτα, κάποια από αυτά που λες δεν τα γνωρίζω, οπότε δεν μπορώ να τα βάλω στον οδηγό. Ο καθένας γράφει και προτείνει αυτά που ξέρει. Δεν είπα ποτέ ότι είμαι ο παντογνώστης. Εξάλλου οποιοσδήποτε μπορεί είτε να συμπληρώσει τον παρόντα οδηγό, είτε να φτιάξει τον δικό του με τις δικές του λύσεις. Το Open Media Vault φυσικά το γνωρίζω, τον server μου όταν αποφάσισα να φύγω από τον Windows Home Server πριν πολλά χρόνια, αρχικά τον είχα φτιάξει με το Open Media Vault. Δεν θυμάμαι τότε (κάπου στο 2015) τι δεν με κάλυψε, εν πάσει περιπτώσει εγώ ήθελα να μάθω σκληροπυρηνικό Linux Server που μπορεί ελεύθερα να έχει κάθε είδους χρήση. Για να καταλάβεις, έχω πειραματιστεί και με HTTP Server και είχα ανεβάσει πειραματικά μια σελίδα στο Web με DDNS. Παιχνίδια σύγχρονα δεν παίζω και δεν έχω Steam. Στο raid δεν έχω εμπιστοσύνη, το είπα και παραπάνω. Αντί για Raid 1, προτιμώ απλά να έχω δύο δίσκους JBOD με διπλό backup σε αυτούς. Αν δεν θέλεις να έχεις τα δεδομένα σου και εκτός server, απλά με ένα cron job του λες να παίρνει backup από τον ένα δίσκο στον άλλο. Προσωπική άποψη, ο καθένας διαλέγει και εφαρμόζει αυτό που θέλει. Τη δουλειά του rsync που λες την κάνει το Free File Sync, με γραφικό περιβάλλον, τόσο σε Windows όσο και σε Linux. Το είπα και παραπάνω. Το χρησιμοποιώ μπορεί και 10 χρόνια τώρα, σε όλους τους χώρους μου. Στα κινητά βάζω απλά μια εφαρμογή SMB client. Το Android TV Box μου έχει Kodi, στο οποίο έχω καταχωρίσει το Samba Share μου με τις ταινίες και το Kodi μια χαρά τις έχει καταλογοποιήσει με εικόνες κλπ και έχει φτιάξε την βιβλιοθήκη του. Οπότε σε όλα με καλύπτει η Samba. Antivirus στο Linux; Προφανώς εννοείς για να ελέγχει τα εκτελέσιμα των WIndows πριν τα μεταφέρεις εκεί. Η εμπειρία μου με το ClamAV στο παρελθόν, μου έδειξε ότι ήταν για γέλια. Τώρα με μια απλή έρευνα στο Google είδα με έκπληξή μου ότι οι μεγάλες εταιρείες Antivirus έχουν φτιάξει και εκδόσεις για Linux! Ελπιδοφόρο μήνυμα για την ανάπτυξη του Linux Desktop! https://www.safetydetectives.com/best-antivirus/linux/ ____________________________________________________________________________ Άσχετα με την δική σου ανάρτηση, απλώς συνέπεσε χρονικά, λόγω της συμπεριφοράς κάποιων μελών του insomnia, η συνέχεια του οδηγού δεν θα ανέβει. Όποιος θέλει μπορεί να ψάξει και να βρει τις πληροφορίες και τη γνώση στο διαδίκτυο, όπως έκανα και εγώ. Λυπάμαι πολύ. 1
Oxygene Δημοσ. 3 Μαΐου 2020 Δημοσ. 3 Μαΐου 2020 Άσχετο, αλλά στις εικόνες με τον Thunar πιο πάνω ποιο είναι το θέμα εικονιδίων;
RTW4ever Δημοσ. 3 Μαΐου 2020 Μέλος Δημοσ. 3 Μαΐου 2020 3 ώρες πριν, Oxygene είπε Άσχετο, αλλά στις εικόνες με τον Thunar πιο πάνω ποιο είναι το θέμα εικονιδίων; Elementary XFCE σε Xubuntu Core 20.04, είναι το default. 1
koufs Δημοσ. 27 Ιουνίου 2020 Δημοσ. 27 Ιουνίου 2020 (επεξεργασμένο) @ RTW4ever σε ευχαριστώ πολύ για τον κόπο σου να γράψεις όλον αυτον τον οδηγό και να το κάνεις να φαίνεται τόσο εύκολο όπως και ήταν τελικά, και το κυριότερο να εξηγείς τα βήματα ώστε να καταλαβαίνουμε τι κάνουν και να μαθαίνουμε και κάτι -------------------------------------------------- Το έστησα σε ένα παλιό NUC που είχα να κάθεται, καταπληκτικό Παρ'οτι είμαι αρχάριος, το έστησα σφαίρα, δεν πήρε ούτε 20 λεπτά, αλλά αμέσως μετά διαπιστώνω ότι ενώ συνδέομαι κανονικά με SSH, δεν μπορώ να εγκαταστήσω πακέτα γιατί δεν έχει internet, απλά λόγω υπερβολικής βιασύνης είχα ξεχάσει να ορίσω την ip του ρούτερ εκεί που είχε την επιλογή (dedault gateway), αλλά με μια γρήγορη αναζήτηση στο ίντρενετ και ένα copy paste δύο εντολών το ρπόβλημα λύθηκε σε χρόνο dt ----------------------------------------------- καπάκι έστησα το unifi controller και μετά και nextcloud πανεύκολα ακόμη και για άσχετο σαν εμένα ( copy paste 4-5 γραμμών από το ίντερνετ) κατανάλωση του "σέρβερ" 5 W μόνο με τον SSD και κάτω από 10 μαζί με έναν 2.5 σκληρό έχω ήδη synology, άλλη η δουλειά του server, άσχετα που υπάρχουν πολλά σημεία κοινά ------------------------------------------------------- Επεξ/σία 27 Ιουνίου 2020 από koufs 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα