Υπερ-αναλυτικός οδηγός δημιουργίας Home/Small Business File Server με Ubuntu Server 16.
#1
[Ο οδηγός θα παρατίθεται διασπασμένος σε συνεχόμενα μηνύματα, λόγω περιορισμών της πλατφόρμας του forum σχετικά με το μέγεθος του κάθε μηνύματος]

1 Εισαγωγή

Σκοπός του παρόντος οδηγού είναι να καταδείξει, ακόμα και σε αρχάριους, την διαδικασία δημιουργίας ενός Home/Small Business File Server, βασισμένου στο λειτουργικό σύστημα Ubuntu Server 16.04 64bit.
Ο οδηγός αυτός θα είναι πολύ μακρύς και αναλυτικός, και δεν απευθύνεται σε αυτούς που ψάχνουν στα γρήγορα απάντηση σε κάτι. Αντιθέτως θα γίνεται προσπάθεια να εξηγούνται οι ενέργειες που κάνουμε και το υπόβαθρο πίσω από αυτές, ώστε ο αναγνώστης να καταλαβαίνει όχι μόνο πώς κάνουμε κάτι, αλλά και γιατί το κάνουμε.

Αποφάσισα τη σύνταξη αυτού του οδηγού, διότι θέλησα να μοιραστώ τη γνώση που απέκτησα στην προσπάθειά μου να στήσω τον προσωπικό μου Home/Small Business Server. Δεν είμαι ούτε προγραμματιστής ούτε επαγγελματίας στους Η/Υ, και χρειάστηκε πολύ διάβασμα εκ μέρους μου, όπως και πειραματισμοί, ώστε να λύσω κάθε πτυχή των ζητημάτων που με απασχόλησαν. Στην προσπάθειά μου δε αυτή, αντιλήφθηκα ότι δεν υπήρχε ολοκληρωμένος οδηγός για το στήσιμο ενός τέτοιου server από ερασιτέχνη, όχι μόνο στην Ελληνική, αλλά ούτε καν στην Αγγλική γλώσσα. Έτσι, όταν πλέον ολοκληρώθηκε η δημιουργία του server μου, αποφάσισα πως θα έπρεπε να μοιραστώ τη γνώση αυτή, για όποιον θέλει να πραγματοποιήσει κάτι ανάλογο, ώστε να προσφέρω και εγώ το μικρό λιθαράκι μου στην open source κοινότητα.

Όλα όσα θα εκτεθούν, αποτελούν γνώση που αποκτήθηκε από αγγλόφωνες σελίδες στο Διαδίκτυο, χωρίς τίποτα από αυτά να αποτελεί δική μου δημιουργία. Ο οδηγός αυτός αποτελεί συγκέντρωση και συρραφή της γνώσης αυτής και μόνο.

Σε παρά πολλά σημεία θα χρησιμοποιούνται οι αγγλικοί όροι, ενώ και ο server θα στηθεί εξ ολοκλήρου στην Αγγλική γλώσσα. Αυτό διότι οι τεχνικοί όροι εξαρχής γεννώνται στην Αγγλική γλώσσα, οπότε αυτή είναι η μητρική γλώσσα της σχετικής τεχνολογίας, ενώ επιπρόσθετα πολλές φορές οι μεταφράσεις των τεχνικών όρων στην Ελληνική, είναι απλά τραγικές και δεν βγάζουν καν νόημα, τουλάχιστον κατά την άποψη του γράφοντος.

Για τις ανάγκες του οδηγού, θα χρησιμοποιηθεί virtual pc σε virtual box, ενώ όπου κρίνεται απαραίτητο, θα υπάρχει screenshot.

Ο οδηγός θα ολοκληρωθεί σε τμήματα, τα οποία θα ανεβαίνουν σιγά σιγά, όποτε ο γράφων έχει το χρόνο να τα ολοκληρώνει.

1.1 Απαιτήσεις από τον Server
Ο server μας θα είναι μόνο File Server, με σκοπό να χρησιμοποιηθεί οικιακά ή σε μικρές επιχειρήσεις, που έχουν απαίτηση από πολλούς χρήστες ταυτόχρονα, να έχουν πρόσβαση σε αρχεία αποθηκευμένα κεντρικά. Κάθε χρήστης θα έχει πρόσβαση στο δικό του share (=διαμοιραζόμενο φάκελο), ενώ θα υπάρχουν και κοινόχρηστοι φάκελοι. Στον server θα υπάρχουν περισσότεροι από ένας φυσικοί σκληροί δίσκοι, όχι σε raid, αλλά σε απλή μορφή JBOD (just a bunch of disks). Φυσικά θα γίνεται διαχείριση του server από απόσταση (remote control), χωρίς σε αυτόν να είναι προσαρτημένα περιφερειακά ελέγχου (πληκτρολόγιο, ποντίκι, οθόνη).
Οι απαιτήσεις του σε hardware είναι ελάχιστες. Ένας διπύρηνος επεξεργαστής και 2GB μνήμης είναι υπεραρκετά για το θαυμάσιο αυτό λειτουργικό.

2 Κεφάλαιο Α – Εγκατάσταση του Server
Ξεκινάμε λοιπόν το μακρύ ταξίδι μας!
Για την εγκατάσταση χρειαζόμαστε, πέραν του υπολογιστή μας, έναν οπτικό δίσκο ή USB Flash, στο οποίο θα περιέχεται η έκδοση του Ubuntu Server 16.04, την οποία μπορείτε να κατεβάσετε από εδώ: https://www.ubuntu.com/download/server .
Φροντίζουμε ρυθμίζοντας το BIOS/UEFI του υπολογιστή μας, να ξεκινήσει ο υπολογιστής (boot) από τον οπτικό δίσκο ή το USB Flash. Επίσης φροντίζουμε ο υπολογιστής να έχει ήδη πρόσβαση στο διαδίκτυο, πριν ξεκινήσουμε την εγκατάσταση.

Στο σημείο αυτό να τονίσουμε ότι η έκδοση Server του Ubuntu δεν είναι κάτι διαφορετικό από την κανονική έκδοση Ubuntu, αλλά απλά μια πιο «γδυμένη» έκδοση (stripped down) του λειτουργικού, προσαρμοσμένη στις ανάγκες ενός server. Με την προσθήκη των κατάλληλων πακέτων λογισμικού, μπορεί ανά πάσα στιγμή να μετατραπεί στην «κανονική» έκδοση, ενώ και το αντίθετο, η κανονική έκδοση μπορεί να μετατραπεί σε server. Προτιμούμε όμως την έκδοση server, καθώς είναι πιο ελαφριά, επειδή περιέχει και φορτώνει λιγότερα πακέτα και εξαρτήσεις.

ΠΡΟΣΟΧΗ: Για την αποφυγή λαθών από αρχάριους, προτείνεται να αφήσετε στον υπολογιστή μόνο τον σκληρό δίσκο στον οποίο θα εγκατασταθεί το λειτουργικό, και να προσθέσετε τους υπόλοιπους δίσκους σας, ΜΕΤΑ την ολοκλήρωση της εγκατάστασης.

Πάμε λοιπόν. Οι επιλογές κατά την εγκατάσταση γίνονται με το πλήκτρο Enter, ενώ η μετακίνηση με τα βελάκια του πληκτρολογίου και το πλήκτρο tab.
Επιλέγουμε αρχικά γλώσσα επικοινωνίας:
[Εικόνα: UbuntuServer_001.png]

Η πρώτη επιλογή, είναι και αυτή που μας ενδιαφέρει, για την εγκατάστασή μας:
[Εικόνα: UbuntuServer_002.png]

Επιλέγουμε τη γλώσσα που θα χρησιμοποιηθεί κατά την εγκατάσταση:
[Εικόνα: UbuntuServer_003.png]

Επιλέγουμε την τοποθεσία μας, που είναι η Ελλάδα:
[Εικόνα: UbuntuServer_004.png]

[Εικόνα: UbuntuServer_005.png]

[Εικόνα: UbuntuServer_006.png]

Ενημερωνόμαστε ότι δεν υπάρχει locale αρχείο κατάλληλο για τον συνδυασμό Αγγλική γλώσσα – περιοχή Ελλάδα, οπότε διαλέγουμε ως default locale αυτό της Αμερικής, en_US.UTF-8:
[Εικόνα: UbuntuServer_007.png]

Αφήνουμε την default επιλογή να μην γίνει αυτόματη αναγνώριση του πληκτρολογίου μας, καθώς αυτό είναι κάτι που δεν χρειαζόμαστε για το στήσιμο του server:
[Εικόνα: UbuntuServer_008.png]

Αφήνουμε την default επιλογή για αμερικάνικο πληκτρολόγιο και layout:
[Εικόνα: UbuntuServer_009.png]

[Εικόνα: UbuntuServer_010.png]

Στη συνέχεια εντοπίζεται το hardware μας και γίνεται η σύνδεση με το δίκτυο, οπότε ερωτώμαστε για το hostname, ή αλλιώς το όνομα που θα θέλουμε να έχει ο υπολογιστής, όταν θα φαίνεται στο δίκτυο. Για τις ανάγκες του οδηγού, διαλέγουμε το όνομα ubuserver, φυσικά μπορείτε να βάλετε όποιο όνομα θέλετε:
[Εικόνα: UbuntuServer_011.png]

[Εικόνα: UbuntuServer_012.png]

[Εικόνα: UbuntuServer_013.png]

Διαλέγουμε το πλήρες όνομα του πρώτου χρήστη – διαχειριστή – root user. Προσοχή, το πλήρες όνομα, όχι το username που θα χρησιμοποιήσουμε αργότερα. Μπορεί να έχει μικρά και κεφαλαία γράμματα. Εδώ διαλέξαμε το όνομα Admin Commander:
[Εικόνα: UbuntuServer_014.png]

Στη συνέχεια διαλέγουμε το username μας, αυτό που θα χρησιμοποιούμε κατά κόρον. Μπορεί να περιέχει μόνο μικρά γράμματα. Για τις ανάγκες του οδηγού και για να μην μπερδευόμαστε στο μέλλον, διαλέξαμε το username adminuser:
[Εικόνα: UbuntuServer_015.png]

Διαλέγουμε κωδικό ασφαλείας της αρεσκείας μας, που θα είναι και ο κωδικός του root χρήστη για τις εντολές sudo αργότερα. Το πεδίο “show password in clear” το επιλέγουμε αν θέλουμε, πρώτα πηγαίνοντας εκεί με το tab και στη συνέχεια με το πλήκτρο space:
[Εικόνα: UbuntuServer_016.png]

Τον κωδικό θα πρέπει να τον περάσουμε και δεύτερη φορά στην επόμενη καρτέλα, για λόγους ασφαλείας. Στη συνέχεια ερωτώμαστε αν θέλουμε να κρυπτογραφηθεί ο φάκελος home, που θα περιέχει τα home directories όλων των χρηστών που θα δημιουργήσουμε. Προσωπική επιλογή του γράφοντος αποτελεί πάντοτε το όχι σε αυτή την ερώτηση (είναι και το default), διότι έτσι ο δίσκος θα μπορεί να χρησιμοποιηθεί άμεσα σε άλλον υπολογιστή, αν ο παρών υπολογιστής εμφανίσει πρόβλημα μόνιμο ή προσωρινό και είναι αδύνατη η πρόσβαση σε αυτόν και στα αρχεία του. Η επιλογή είναι δική σας:
[Εικόνα: UbuntuServer_017.png]

Εντοπίζεται αυτόματα η ζώνη ώρας μας ως Europe/Athens, οπότε απαντάμε yes:
[Εικόνα: UbuntuServer_018.png]

Συνεχίζεται στο επόμενο μήνυμα...
Linux Mint KDE laptop, Linux Mint Mate netbook, Lubuntu old desktop, Windows 7 main desktop, Ubuntu File Server
  Απάντηση
#2
Και στη συνέχεια περνάμε στην διαμόρφωση του δίσκου/partitions!
Η κουβέντα εδώ είναι μεγάλη για το αν πρέπει να έχουμε μόνο ένα partition για τα root file system και home directories. Άλλοι προτείνουν ενιαίο partition, διότι στην πράξη δεν προσφέρει τίποτα, το ξεχωριστό home partition, άλλοι υποστηρίζουν τον διαχωρισμό, διότι αν συμβεί κάτι στο root partition, το home partition με τα δεδομένα των χρηστών παραμένει ανέπαφο. Το μόνο σίγουρο είναι ότι πάντα χρειάζεται backup των δεδομένων, ωστόσο ο γράφων προτιμά το ξεχωριστό partition, ώστε να μην μπλέκουν τα δεδομένα συστήματος του λειτουργικού, με τα δεδομένα των χρηστών, να βρίσκονται δηλαδή αυτά τα τελευταία σε πιο «καθαρή» κατάσταση.
Επιλέγουμε λοιπόν manual partitioning:
[Εικόνα: UbuntuServer_019.png]

Στη συνέχεια επιλέγουμε ξανά manual partitioning, διαλέγοντας τον δίσκο στον οποίο θα γίνουν οι κατατμήσεις, εδώ για τις ανάγκες του οδηγού είναι ο sda 27,7 GB Ata VBox Harddisk:
[Εικόνα: UbuntuServer_020.png]

Ενημερωνόμαστε ότι επιλέξαμε έναν ολόκληρο δίσκο για partitioning, και ότι θα διαγραφούν όλες οι προηγούμενες κατατμήσεις (partitions) (Ωστόσο είναι πάντα δυνατή η επιστροφή και αναίρεση των εντολών μας, μέχρι να δώσουμε την τελική εντολή για διαμόρφωση όλων των partitions του δίσκου). Επιλέγουμε yes, για να δημιουργήσουμε ένα νέο partition table:
[Εικόνα: UbuntuServer_021.png]

Και επιτέλους, ήλθε η ώρα να δημιουργήσουμε το πρώτο μας partition, επιλέγοντας το Free Space του δίσκου. Στο σημείο αυτό να αναφέρουμε, ότι αν ο δίσκος σας δεν είναι καινούριος και έχει ξαναχρησιμοποιηθεί, αυτή θα είναι η πρώτη οθόνη που θα συναντήσετε μετά την επιλογή της ζώνης ώρας, και προτείνεται να φτιάξετε εξαρχής ένα νέο partition table, όπως κάναμε προηγουμένως:
[Εικόνα: UbuntuServer_022.png]

Φυσικά επιλέγουμε χειροκίνητη δημιουργία νέου partition
[Εικόνα: UbuntuServer_023.png]

Εδώ διαλέγουμε πόση χωρητικότητα από τον όλο δίσκο θα έχει το πρώτο μας partition. Επειδή η πείρα μου μου έχει δείξει ότι ο server που θέλουμε να φτιάξουμε χρειάζεται πολύ λίγο χώρο (3-4 GB μόλις), για το root file system, τα 15 GB είναι υπεραρκετά, ώστε να αφήσουμε τον υπόλοιπο χώρο για χρήση ως αποθηκευτικού χώρου δεδομένων:
[Εικόνα: UbuntuServer_024.png]

[Εικόνα: UbuntuServer_025.png]

Φυσικά επιλέγουμε primary για τον τύπο του partition:
[Εικόνα: UbuntuServer_026.png]

Και να αρχίζει το partition από την αρχή του ελεύθερου χώρου (Beginning):
[Εικόνα: UbuntuServer_027.png]

Στην επόμενη καρτέλα διαλέγουμε τα ιδιαίτερα χαρακτηριστικά του partition. Αφήνουμε όλα στο default (είναι κατά την άποψη του γράφοντος οι καλύτερες επιλογές), εκτός από την επιλογή Bootable flag, την οποία με το πλήκτρο enter αλλάζουμε σε on, ώστε να μπορεί να ξεκινήσει το νέο μας λειτουργικό μετά την εγκατάσταση. Όταν τελειώσουμε με τυχόν άλλες αλλαγές που θέλουμε να κάνουμε, επιλέγουμε “Done setting up the partition”:
[Εικόνα: UbuntuServer_028.png]

[Εικόνα: UbuntuServer_029.png]

[Εικόνα: UbuntuServer_030.png]

Στη συνέχεια επιλέγουμε πάλι τον ελεύθερο χώρο για την δημιουργία του επόμενου partition, που το δημιουργούμε ακριβώς με τον ίδιο τρόπο. Εδώ θα επιλέξουμε να προσαρτηθεί (mount point) το home directory, ενώ θα αφήσουμε κενό μόνο ένα μικρό μέρος του δίσκου για το swap partition που θα ακολουθήσει στο επόμενο βήμα:
[Εικόνα: UbuntuServer_031.png]

[Εικόνα: UbuntuServer_032.png]

[Εικόνα: UbuntuServer_033.png]

[url=https://s522.photobucket.com/user/demogr/media/Linux%20Images/UbuntuServer_033.png][/url]

Συνεχίζεται στο επόμενο μήνυμα...
Linux Mint KDE laptop, Linux Mint Mate netbook, Lubuntu old desktop, Windows 7 main desktop, Ubuntu File Server
  Απάντηση
#3
Πάμε λοιπόν για τη δημιουργία του τρίτου και τελευταίου partition, που θα χρησιμοποιηθεί ως swap space (χώρος εικονικής μνήμης στο δίσκο). Κατά την άποψη του γράφοντος και για τις ανάγκες του συγκεκριμένου server τα 2 GB είναι υπεραρκετά. Επιλέγουμε για τρίτη φορά primary partition, και ως file system, αντί για Ext4, το swap:
[Εικόνα: UbuntuServer_034.png]

[Εικόνα: UbuntuServer_035.png]

[Εικόνα: UbuntuServer_036.png]

[Εικόνα: UbuntuServer_037.png]

[Εικόνα: UbuntuServer_038.png]

Έτοιμος επιτέλους ο δίσκος μας! Συνεχίζουμε με Finish partitioning and write changes to disks. Είναι το σημείο πλέον χωρίς επιστροφή, όπου θα γραφούν πραγματικά οι αλλαγές που μέχρι τώρα επιλέξαμε, στον δίσκο μας:
[Εικόνα: UbuntuServer_039.png]

Για τον λόγο αυτό για άλλη μια φορά ο installer μας προειδοποιεί για τις αλλαγές που θα γίνουν, ώστε να είμαστε σίγουροι για το τι κάνουμε, εμείς όμως είμαστε σίγουροι, οπότε επιλέγουμε yes:
[Εικόνα: UbuntuServer_040.png]

Και επιτέλους αρχίζει η πραγματική εγκατάσταση του λειτουργικού:
[Εικόνα: UbuntuServer_041.png]

Ερωτώμαστε αν χρησιμοποιούμε proxy. Στο πλείστο των περιπτώσεων δεν χρησιμοποιούμε (αλλιώς θα το ξέραμε), οπότε το αφήνουμε κενό και δίνουμε Continue:
[Εικόνα: UbuntuServer_044.png]

Ο installer κατεβάζει και εγκαθιστά αρχεία:
[Εικόνα: UbuntuServer_045.png]

Ερωτώμαστε αν θέλουμε αυτόματες ενημερώσεις. Αφήνουμε το default, για να επιλέγουμε εμείς πότε θα γίνονται οι ενημερώσεις:
[Εικόνα: UbuntuServer_046.png]

Ένα πολύ σημαντικό σημείο της εγκατάστασης. Εδώ επιλέγουμε ποια πακέτα θέλουμε να εγκατασταθούν, ανάλογα με τη χρήση που θέλουμε να έχει ο server μας. Εμείς, για File Server, εκτός από το default πακέτο των standard system utilities, επιλέγουμε επιπρόσθετα με το space τα Samba file server και OpenSSH server. Το Samba file server επειδή είναι αυτό ακριβώς που θέλουμε για διαμοιρασμό αρχείων με άλλους υπολογιστές (το όνομα samba προέρχεται από το SMB = Server Message Block, το πρωτόκολλο που χρησιμοποιήθηκε αρχικά από τα Microsoft Windows για επικοινωνία των υπολογιστών μέσω δικτύου), και OpenSSH server για απομακρυσμένο έλεγχο αργότερα του υπολογιστή μας, μέσω του ασφαλούς πρωτοκόλλου SSH (=Secure Shell):
[Εικόνα: UbuntuServer_047.png]

[Εικόνα: UbuntuServer_048.png]

Η εγκατάσταση του συστήματος προχωρεί:
[Εικόνα: UbuntuServer_049.png]

Ερωτώμαστε αν θέλουμε να εγκατασταθεί ο Grub Boot Loader (εκκινητής συστήματος) στο Master Boot Record του δίσκου μας (ένας από τους λόγους να μην έχουν οι αρχάριοι χρήστες περισσότερους από έναν δίσκο στο σύστημα, κατά την εγκατάσταση, είναι και το σημείο αυτό, όπου μπορούν να γίνουν σοβαρά λάθη), φυσικά απαντάμε yes:
[Εικόνα: UbuntuServer_050.png]

Επιτέλους η εγκατάσταση ολοκληρώθηκε! Αφαιρούμε το μέσο εγκατάστασης (cd ή usb flash) και πατάμε continue:
[Εικόνα: UbuntuServer_051.png]

Πρώτη επανεκκίνηση:
[Εικόνα: UbuntuServer_052.png]

[Εικόνα: UbuntuServer_053.png]

Δίνουμε διαδοχικά όνομα χρήστη και κωδικό πρόσβασης (αν είστε απολύτως αρχάριος στο linux, να σας πούμε ότι δίνοντας τον κωδικό το σύστημα δεν αντιδρά, ούτε καν αστεράκια δείχνει, όμως ο κωδικός περνάει κανονικά), και έχουμε το πρώτο μας login!
[Εικόνα: UbuntuServer_055.png]

Συνεχίζεται στο επόμενο μήνυμα...
Linux Mint KDE laptop, Linux Mint Mate netbook, Lubuntu old desktop, Windows 7 main desktop, Ubuntu File Server
  Απάντηση
#4
3 Κεφάλαιο Β – Εγκατάσταση ελαφριού γραφικού περιβάλλοντος

Ο Server μας είναι έτοιμος και θα μπορούσαμε αμέσως να τον χρησιμοποιήσουμε και να προχωρήσουμε στις επιμέρους ρυθμίσεις του, μέσω του περιβάλλοντος γραμμής εντολών. Όμως επειδή είμαστε αρχάριοι, θα προτιμούσαμε να δουλεύουμε με ένα γραφικό περιβάλλον, σωστά; Ελαφρύ μεν αφού το θέλουμε μόνο για χρήση server, αλλά πρακτικό και εύχρηστο, για να μας διευκολύνει στην διαχείριση και ρύθμιση του συστήματός μας, έτσι ώστε να παίζουμε τον server μας στα δάκτυλά μας.

Με βάση τα παραπάνω κριτήρια λοιπόν, επιλέγουμε το γραφικό περιβάλλον του Lubuntu, το οποίο έχει όλα τα απαραίτητα που μας χρειάζονται, σε ένα ελαφρύ και όμορφο περιβάλλον (το LXDE), όχι όμως στην έκδοση Full Desktop, αλλά στην έκδοση Core, που εγκαθιστά μόλις τον πυρήνα του γραφικού περιβάλλοντος, χωρίς καμία επιπρόσθετη εφαρμογή, ώστε να διαλέξουμε μόνοι μας ακριβώς τις ελάχιστες εφαρμογές και utilities που χρειαζόμαστε για την διαχείριση του server μας.
Πριν όμως οποιαδήποτε εγκατάσταση, πραγματοποιούμε ενημέρωση του λειτουργικού μας (update), με τις διαδοχικές εντολές (όταν ερωτηθούμε αν θέλουμε να συνεχίσουμε, δίνουμε y και enter):
Κώδικας:
sudo apt-get update
sudo apt-get upgrade
[Εικόνα: UbuntuServer_056.png]

[Εικόνα: UbuntuServer_057.png]

[Εικόνα: UbuntuServer_058.png]

Όπως βλέπετε υπήρχαν ενημερώσεις, τις οποίες εγκαταστήσαμε. Στη συνέχεια, δίνουμε την εντολή για εγκατάσταση του γραφικού περιβάλλοντος:
Κώδικας:
sudo apt-get install lubuntu-core
[Εικόνα: UbuntuServer_059.png]

Ενημερωνόμαστε ότι θα κατέβουν 833 πακέτα αρχείων, μεγέθους 257 mb, που όταν εγκατασταθούν θα καταλαμβάνουν 1.072 mb στον σκληρό δίσκο. Δίνουμε y και enter:
[Εικόνα: UbuntuServer_060.png]

[Εικόνα: UbuntuServer_061.png]

[Εικόνα: UbuntuServer_062.png]

Μετά από λίγα λεπτά, ανάλογα την ταχύτητα της σύνδεσής μας, και την ισχύ του υπολογιστή μας, η εγκατάσταση είναι έτοιμη! Δίνουμε για την επανεκκίνηση
Κώδικας:
sudo reboot
[Εικόνα: UbuntuServer_063.png]

και έχουμε έτοιμο το γραφικό περιβάλλον μας!
[Εικόνα: UbuntuServer_064.png]

[Εικόνα: UbuntuServer_065.png]

Για τις ανάγκες του οδηγού ρυθμίζουμε την ανάλυση της οθόνης:
[Εικόνα: UbuntuServer_066.png]

Στην έκδοση Lubuntu Core που επιλέξαμε, δεν υπάρχει καμία εφαρμογή εγκατεστημένη, ούτε καν browser για την πλοήγησή μας στο διαδίκτυο (μην σας ξεγελά το εικονίδιο στο panel, αν το πατήσετε δίνει σφάλμα), ενώ υπάρχουν και μερικές ελλείψεις σε εξαρτήσεις. Όμως τα πάντα διορθώνονται αμέσως. Browser δεν θα εγκαταστήσουμε, διότι δεν χρειάζεται στον server μας και δεν χρειάζεται να τον επιβαρύνουμε με άχρηστες εφαρμογές. Είπαμε, λιτότητα!

Πρώτα όμως κάνουμε τις απαραίτητες προσαρμογές που θέλουμε στην επιφάνεια εργασίας μας, στο panel και στον File Manager του Lubuntu, τον PCManFM. Προτείνουμε να θέσετε ως default view των φακέλων το detailed view, να προσθέσετε με δεξί κλικ στην περιοχή των στηλών να φαίνονται τα permissions και ο owner, ενέργεια που θα σας γλιτώσει από ΠΟΛΥ χρόνο και σώσει από πιθανά προβλήματα στο μέλλον, όταν θα καθορίζετε τα δικαιώματα πρόσβασης των χρηστών σε φακέλους και αρχεία, και να θέσετε ως default το view αυτό, από το μενού View > Preserve This Folder’s Settings:
[Εικόνα: UbuntuServer_067.png]

[Εικόνα: UbuntuServer_068.png]

Συνεχίζεται σε επόμενο μήνυμα...
Linux Mint KDE laptop, Linux Mint Mate netbook, Lubuntu old desktop, Windows 7 main desktop, Ubuntu File Server
  Απάντηση
#5
Πρώτη έλλειψη λοιπόν που διορθώνουμε, είναι η εγκατάσταση ενός σωστού terminal, ώστε να λειτουργεί σωστά το Byobu Terminal, με το οποίο έρχεται εγκατεστημένο ο Ubuntu Server. Δίνουμε στο υποτυπώδες τερματικό, που βρίσκουμε στον φάκελο /usr/share/applications/Terminal emulator, την εντολή
Κώδικας:
sudo apt-get install lxterminal
[Εικόνα: UbuntuServer_069.png]

και μετά την εγκατάσταση, έχουμε ένα σωστό terminal, το οποίο μετά τις προσαρμογές που θέλουμε σε χρώματα και γραμματοσειρά, έχει ως εξής:
[Εικόνα: UbuntuServer_070.png]

Δεύτερη άμεση εγκατάσταση που κάνουμε είναι το synaptic, ώστε να διευκολύνουμε περαιτέρω την εγκατάσταση πακέτων και εφαρμογών, με την εντολή:
Κώδικας:
sudo apt-get install synaptic
[Εικόνα: UbuntuServer_071.png]

Πλέον η εγκατάσταση των λοιπών πακέτων μπορεί να γίνει από το γραφικό περιβάλλον:
[Εικόνα: UbuntuServer_072.png]

Εγκαθιστούμε λοιπόν ένα εργαλείο για να μας δίνει απαραίτητες πληροφορίες συστήματος, το System Profiler & Benchmark, που το πραγματικό όνομά του είναι hardinfo:
[Εικόνα: UbuntuServer_073.png]

Και έτσι έχουμε όλες τις πληροφορίες για το σύστημά μας, με αυτό που φυσικά μας ενδιαφέρει κυρίως, το File system και οι δίσκοι μας:
[Εικόνα: UbuntuServer_074.png]

[Εικόνα: UbuntuServer_075.png]

Όπως βλέπουμε, το λειτουργικό μας καταλαμβάνει, στο root partition (dev/sda1) μόλις 3,4 GB, μέγεθος φανταστικό για server, σε σχέση με αντίστοιχο Windows (δεν μπορούσα να μην το σχολιάσω, με συγχωρείτε γι’ αυτό), ενώ και η μνήμη που καταλαμβάνει είναι ελαχιστότατη:
[Εικόνα: UbuntuServer_076.png]

Εγκαθιστούμε επίσης το εργαλείο Disks, που το πραγματικό του όνομα είναι gnome disk utility, το οποίο θα μας βοηθήσει εξαιρετικά στην προσθήκη και διαμόρφωση νέων δίσκων στον server μας:
[Εικόνα: UbuntuServer_077.png]

[Εικόνα: UbuntuServer_078.png]

Και το πρόγραμμα Leafpad, που είναι ο γραφικός text editor του Lubuntu:
[Εικόνα: UbuntuServer_079.png]

[Εικόνα: UbuntuServer_080.png]

Επίσης, προαιρετικά, μπορούμε να εγκαταστήσουμε και τον γραφικό updater manager του Lubuntu, ώστε να πραγματοποιούμε τις ενημερώσεις του συστήματος από γραφικό περιβάλλον:
[Εικόνα: UbuntuServer_081.png]

Αν τον εγκαταστήσουμε όμως, καλό είναι να απενεργοποιήσουμε τα αυτόματα updates. Αυτό διότι μπορεί να κυκλοφορήσουν updates σε βασικά πακέτα, τα οποία να προκαλέσουν προβλήματα στο μέλλον στην διαμόρφωση του server μας, γι’ αυτό προτείνεται στον server οι ενημερώσεις να γίνονται χειροκίνητα:
[Εικόνα: UbuntuServer_082.png]

Και με αυτό το βήμα ολοκληρώθηκε η εγκατάσταση του γραφικού περιβάλλοντος και των βασικών εργαλείων για τον server μας.

Συνεχίζεται…
Linux Mint KDE laptop, Linux Mint Mate netbook, Lubuntu old desktop, Windows 7 main desktop, Ubuntu File Server
  Απάντηση
#6
4 Κεφάλαιο Γ – Απομακρυσμένος έλεγχος του Server με SSH και VNC

Ήλθε η ώρα πλέον να ενεργοποιήσουμε την δυνατότητα ελέγχου του server μας από άλλον υπολογιστή, ώστε να αποσυνδέσουμε από αυτόν οθόνη, πληκτρολόγιο και ποντίκι, και να τον τοποθετήσουμε στον μόνιμο χώρο διαμονής του.

4.1 Απόδοση σταθερής διεύθυνσης ip στον Server
Πρώτα όμως θα πρέπει να του αποδώσουμε σταθερή ip εντός του δικτύου μας, ώστε να ξέρουμε πάντα την διεύθυνσή του και να συνδεόμαστε εύκολα με αυτόν.
Οι ρυθμίσεις διεύθυνσης δικτύου, πλέον στο Ubuntu βρίσκονται όλες μαζί σε ένα αρχείο, με όνομα interfaces στον φάκελο /etc/network:
[Εικόνα: Ubuntu%20Server_089.png]

Όπως βλέπουμε, είναι αρχείο συστήματος, που ανήκει στον root χρήστη, συνεπώς για να το επεξεργαστούμε χρειαζόμαστε αυξημένα δικαιώματα. Το ανοίγουμε λοιπόν με την εντολή:
Κώδικας:
sudo nano /etc/network/interfaces
[Εικόνα: Ubuntu%20Server_090.png]

Ο nano είναι επεξεργαστής κειμένου του περιβάλλοντος γραμμής εντολών. Γιατί με τον nano και όχι με τον γραφικό text editor leafpad που είδαμε παραπάνω; Ο γράφων για μικρά αρχεία, όπως το εν λόγω interfaces, προτιμά τον nano, ενώ για μεγάλα αρχεία όπου ελλοχεύει ο κίνδυνος λαθών, προτιμά τον γραφικό text editor. Η επιλογή είναι δική σας, ανάλογα με τις συνήθειές σας, το αποτέλεσμα θα είναι το ίδιο.
[Εικόνα: Ubuntu%20Server_091.png]

Όπως βλέπουμε λοιπόν, στην τελευταία γραμμή του αρχείου καθορίζεται ο τρόπος που ο server μας λαμβάνει ip διεύθυνση από τον router μας, εδώ αυτόματα με dhcp:
Κώδικας:
iface enp3s2 inet dhcp

Αλλάζουμε το dhcp με static και από κάτω, με χρήση του tab για να δημιουργηθεί κενός χώρος, προσθέτουμε την ip address που θέλουμε να έχει ο server μας, το net mask που στο 99% των περιπτώσεων θα είναι πάντα 255.255.255.0, ως gateway την ip του router μας, και τις διευθύνσεις dns του παρόχου μας Internet (π.χ της Fothnet ή της Otenet) που φροντίζουμε να τις γνωρίζουμε από πριν. Προσοχή: Στην ip που δίνουμε για τον server μας, φροντίζουμε τα τρία πρώτα πεδία να είναι ίδια με του router μας, και μόνο στο τελευταίο δίνουμε μια τιμή μεταξύ 2 και 254, εφόσον η διεύθυνση του router μας τελειώνει σε 1. Έτσι λοιπόν οι ρυθμίσεις μας θα δείχνουν κάπως έτσι:
Κώδικας:
iface enp3s2 inet static
        address 192.168.0.25
        netmask 255.255.255.0
        gateway 192.168.0.1
        dns-nameservers 194.219.227.2
        dns-nameservers 193.192.150.3
[Εικόνα: Ubuntu%20Server_092.png]

Για να αποθηκευτούν οι αλλαγές μας, πατάμε τον συνδυασμό πλήκτρων Ctrl + O και μετά enter για επιβεβαίωση, ενώ για να βγούμε από τον nano editor, πατάμε Ctrl + X.

4.2 Ρύθμιση του SSH στον Server
Σχετικά τώρα με τον απομακρυσμένο έλεγχο, υπάρχουν δύο επιλογές. Η μία είναι να γίνεται απλά μέσω ενός προγράμματος VNC (=Virtual Network Computing) server που θα εγκαταστήσουμε στον server μας, και ενός προγράμματος VNC client που θα εγκαταστήσουμε στον υπολογιστή από όπου θα ελέγχουμε τον server, π.χ. στο laptop μας. Αυτό πιθανώς αρκεί για μια λύση Home Server, όπου δεν μας ενδιαφέρει και τόσο η υψηλή ασφάλεια, στην περίπτωση ας πούμε που το οικιακό μας δίκτυο βρίσκεται πίσω από router με ενεργοποιημένο το NAT και Firewall (το 99% των οικιακών ρούτερ είναι έτσι), οπότε το οικιακό μας δίκτυο δεν είναι προσβάσιμο από το διαδίκτυο και μόνο εμείς θα διαχειριζόμαστε τον server μας, μόνο μέσα από το οικιακό δίκτυο.

Η δεύτερη περίπτωση, που είναι πολύ πιο ασφαλής, περιλαμβάνει ρύθμιση του πρωτοκόλλου επικοινωνίας SSH (=Secure Shell) στον server μας και στο client pc (π.χ. στο laptop που είπαμε παραπάνω), είσοδο στον server μας μέσα από το πρωτόκολλο αυτό, δημιουργία ασφαλούς SSH tunneling, και τέλος έλεγχο με VNC του server μέσω του tunnel που ανοίξαμε. Ο τρόπος αυτός επιβάλλεται να χρησιμοποιηθεί σε small business server, ενώ μπορεί να χρησιμοποιηθεί και για απομακρυσμένη πρόσβαση στον server μέσω διαδικτύου, δηλαδή από οπουδήποτε στον κόσμο.

Τα βήματα για τη πρώτη λύση, σχετικά με την ρύθμιση του VNC, είναι σχεδόν ίδια με της δεύτερης λύσης, γι’ αυτό θα περιγραφεί μόνο η τελευταία, και όπου χρειαστεί θα τονιστεί η διαφοροποίηση.

Όπως είδαμε ήδη κατά την εγκατάσταση του λειτουργικού στον server μας, έχουμε εγκαταστήσει και το πακέτο OpenSSH Server, οπότε το μόνο που μένει είναι η ρύθμισή του. Αυτή γίνεται στο αρχείο sshd_config που βρίσκεται στον φάκελο /etc/ssh:
[Εικόνα: Ubuntu%20Server_085.png]

Προσοχή: Το αρχείο που μας ενδιαφέρει, είναι το αρχείο sshd_config, όχι το αρχείο ssh_config.
Όπως βλέπουμε, είναι αρχείο συστήματος, που ανήκει στον root χρήστη, συνεπώς για να το επεξεργαστούμε χρειαζόμαστε αυξημένα δικαιώματα. Για να τα αποκτήσουμε, θα χρησιμοποιήσουμε την εντολή sudo ή την gksudo στο terminal, ανάλογα τί θέλουμε να κάνουμε.

Στο σημείο αυτό κάνουμε μια παρένθεση για να εξηγήσουμε τη διαφορά μεταξύ sudo και gksudo. Η sudo μας δίνει το δικαίωμα να κάνουμε ό,τι θέλουμε στο σύστημά μας ως υπερχρήστης (root), και μπορούμε με αυτήν να ανοίξουμε και προγράμματα γραφικού περιβάλλοντος. Όμως για το τελευταίο χρησιμοποιούμε μόνο την εντολή gksudo. Αυτό διότι αν ανοίξουμε γραφικό πρόγραμμα με την εντολή sudo, το πρόγραμμα που θα ανοίξει δεν θα σεβαστεί την ιδιοκτησία των αρχείων μας στον home folder μας, και οποιαδήποτε αλλαγή γίνει οπουδήποτε, θα μετατρέψει τα όποια δικαιώματα του χρήστη μας στα αρχεία μας, σε δικαιώματα root, με αποτέλεσμα να συναντήσουμε ενδεχόμενα, απίθανα και άλυτα προβλήματα πρόσβασης ή σφάλματα συστήματος, μέχρι και να μην μπορούμε να χρησιμοποιήσουμε το σύστημά μας.

Επαναλαμβάνουμε λοιπόν:
Προγράμματα γραφικού περιβάλλοντος ανοίγουμε μόνο με την εντολή gksudo, ΠΟΤΕ με την εντολή sudo.

Κλείνοντας την παρένθεση, ανοίγουμε το αρχείο sshd_config με την παρακάτω εντολή
Κώδικας:
gksudo leafpad /etc/ssh/sshd_config
[Εικόνα: Ubuntu%20Server_086.png]

Μας ζητείται ο κωδικός μας για να ανοίξουμε το πρόγραμμα με δικαιώματα υπερχρήστη:
[Εικόνα: Ubuntu%20Server_087.png]

Αυτό είναι λοιπόν το αρχείο μας:
[Εικόνα: Ubuntu%20Server_088.png]

Να εξηγήσουμε εδώ ότι σε όποια γραμμή υπάρχει στην αρχή της η δίεση ( # ), η γραμμή αυτή αποτελεί σχόλιο και δεν λαμβάνεται υπόψη από το σύστημα.
Από όλες αυτές τις ρυθμίσεις, μας ενδιαφέρουν οι εξής γραμμές:
1. Η γραμμή
Κώδικας:
#PasswordAuthentication yes
Την οποία θα αλλάξουμε αργότερα. Εδώ ρυθμίζεται αν πρόσβαση στον server θα γίνεται με χρήση του κωδικού χρήστη μας, ή μόνο με κλειδιά ssh, που είναι απείρως πιο ασφαλής μέθοδος. Την αφήνουμε προς το παρόν όπως είναι, θα την αλλάξουμε αργότερα, μετά την πρώτη πρόσβασή μας στον server.
2. Η γραμμή
Κώδικας:
LoginGraceTime 120
Η οποία καθορίζει σε πόσο χρόνο σε δευτερόλεπτα θα περιμένει ο server την επικύρωση ταυτότητας (authentication) από τον χρήστη που προσπαθεί να εισέλθει στο σύστημα. Μια πιο λογική τιμή είναι 60 ή ακόμα και 30 για τους πιο τολμηρούς.
3. Η γραμμή
Κώδικας:
StrictModes yes
Η οποία απλά σιγουρευόμαστε ότι είναι στο “yes”.
4. Η γραμμή
Κώδικας:
# MaxStartups 10:30:60
Η οποία ορίζει ότι μεταξύ της 10ης και 60ης προσπάθειας εισόδου στον server, ο server θα αρχίσει να απορρίπτει το 30% των προσπαθειών, μέχρι να φθάσει στο 100% απόρριψης στην 60ή προσπάθεια. Οι αριθμοί αυτοί είναι πολύ ανεκτικοί, οπότε ο γράφων προτείνει να αφαιρέσουμε την δίεση, ώστε να τεθεί σε ισχύ η ρύθμιση, και να την αλλάξουμε ως εξής:
Κώδικας:
MaxStartups 2:30:10
Με αυτή τη ρύθμιση, μεταξύ της 2ης και 10ης προσπάθειας εισόδου στον server, ο server θα αρχίσει να απορρίπτει το 30% των προσπαθειών, μέχρι να φθάσει στο 100% απόρριψης στην 10η προσπάθεια. Με λίγα λόγια έχουμε μόνο δύο προσπάθειες εισόδου στον server, πριν αρχίσουν οι απορρίψεις.
5. Τέλος, μπορούμε στο τέλος του αρχείου να προσθέσουμε ποιοι χρήστες και μόνο θα επιτρέπεται να εισέλθουν στον server μέσω ssh. Εμείς θέλουμε μόνο εμείς να εισερχόμαστε, οπότε γράφουμε:
Κώδικας:
AllowUsers adminuser

Αφού πραγματοποιήσουμε τις αλλαγές μας, αποθηκεύουμε και κλείνουμε το αρχείο.

Στη συνέχεια επανεκκινούμε τον server μας, ώστε να ενεργοποιηθούν όλες οι αλλαγές που πραγματοποιήσαμε μέχρι τώρα.

4.3 Ρύθμιση του VNC Server στον Server
Στη συνέχεια θα πρέπει να εγκαταστήσουμε και να ρυθμίσουμε έναν VNC Server στον Server μας, ώστε να τον ελέγχουμε εξ αποστάσεως με γραφικό περιβάλλον.
Υπάρχουν πολλές επιλογές γι’ αυτό τον σκοπό, πολλά δηλαδή προγράμματα. Ο γράφων προτιμά τον x11vnc, γιατί επιτρέπει πλήρη παραμετροποίησή του, σε άπειρο βαθμό, και διότι αυτό που κάνει είναι να μεταφέρει επακριβώς το γραφικό session που τρέχει στον server, χωρίς να δημιουργεί νέο παράλληλο session, όπως κάνουν άλλα προγράμματα.
Για να τον εγκαταστήσουμε, δίνουμε στο τερματικό την εντολή
Κώδικας:
sudo apt-get install x11vnc
[Εικόνα: Ubuntu%20Server_093.png]

Στη συνέχεια, δημιουργούμε έναν κωδικό για τον x11vnc, τον οποίο θα χρησιμοποιούμε κάθε φορά που θα θέλουμε να συνδεθούμε σε αυτόν, με την εντολή
Κώδικας:
x11vnc -storepasswd
[Εικόνα: Ubuntu%20Server_094.png]

και αφού δώσουμε τον κωδικό που θέλουμε, επιβεβαιώνουμε με y και enter στην σχετική ερώτηση.
[Εικόνα: Ubuntu%20Server_095.png]

Αφού κάναμε τα παραπάνω, θέλουμε τώρα ο x11vnc να ξεκινάει αυτόματα με κάθε εκκίνηση του server μας, και με τις ρυθμίσεις που εμείς θέλουμε. Για τον σκοπό αυτό θα δημιουργήσουμε ένα νέο αρχείο με την εντολή:
Κώδικας:
sudo nano /lib/systemd/system/x11vnc.service
[Εικόνα: Ubuntu%20Server_096.png]

ώστε ο x11vnc να ξεκινάει ως service, και σε αυτό θα αντιγράψουμε το εξής περιεχόμενο
Κώδικας:
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -localhost -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/adminuser/.vnc/passwd -rfbport 5900 -shared

[Install]
WantedBy=multi-user.target

[Εικόνα: Ubuntu%20Server_100.png]

Προσοχή τώρα στα εξής σημεία:
1. Όπου adminuser βάζουμε το όνομα χρήστη που εμείς έχουμε.
2. Η επιλογή -localhost σημαίνει ότι ο x11vnc θα συνδέεται μόνο από το τοπικό PC, δηλαδή από τον ίδιο τον server. Αυτό έχει νόημα μόνο εφόσον συνδεόμαστε στον server χρησιμοποιώντας το πρωτόκολλο SSH. Αν δεν το χρησιμοποιούμε αλλά συνδεόμαστε απευθείας με VNC μόνο, αφαιρούμε τον διακόπτη -localhost.

Αποθηκεύουμε το αρχείο μας με Ctrl + O και enter, και στη συνέχεια βγαίνουμε με Ctrl + X.
Στη συνέχεια δίνουμε τις εξής εντολές, για να ξεκινήσει η νέα υπηρεσία μας
Κώδικας:
sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service

Επανεκκινούμε τον server, για να τεθούν σε ισχύ οι ρυθμίσεις που κάναμε και να τις δοκιμάσουμε.

Συνεχίζεται στο επόμενο μήνυμα
Linux Mint KDE laptop, Linux Mint Mate netbook, Lubuntu old desktop, Windows 7 main desktop, Ubuntu File Server
  Απάντηση
#7
4.4 Σύνδεση στον Server απομακρυσμένα

Και τώρα ήλθε η ώρα να συνδεθούμε από άλλο υπολογιστή στον server μας και να ολοκληρώσουμε τις ρυθμίσεις απομακρυσμένης πρόσβασης.
Ας υποθέσουμε ότι έχουμε ένα laptop με Linux Mint Mate σε αυτό. Ανοίγουμε τερματικό και δίνουμε την εντολή:
Κώδικας:
ssh adminuser@192.168.0.25
[Εικόνα: Mint%20Client_001.png]

Όπως καταλάβατε, δίνουμε το όνομα χρήστη του server μας και την διεύθυνση ip του server μας. Δεν έχει σημασία το όνομα χρήστη που χρησιμοποιούμε στο laptop, δηλαδή στο client PC.
Στη συνέχεια απαντάμε yes στην ερώτηση που μας δίνεται, αν εμπιστευόμαστε τον server στον οποίο προσπαθούμε να συνδεθούμε, και μετά δίνουμε τον κωδικό του adminuser:
[Εικόνα: Mint%20Client_002.png]

και ορίστε, είμαστε πλέον συνδεδεμένοι με ασφαλή σύνδεση στον server μας, σε περιβάλλον γραμμής εντολών! Από εδώ όπως καταλαβαίνετε, μπορούμε να κάνουμε τα πάντα στον server μας.
[Εικόνα: Mint%20Client_003.png]

Αυτό που θα κάνουμε όμως πρώτα είναι να ολοκληρώσουμε τη διαδικασία θέσπισης μέτρων ασφάλειας κατά την απομακρυσμένη πρόσβαση στον 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
Με την εντολή αυτή δημιουργούμε ένα κλειδί με κρυπτογράφηση RSA και εύρος 4096 bit, από τους πιο ασφαλείς αλγορίθμους που υπάρχουν σήμερα:
[Εικόνα: Mint%20Client_009.png]

Στην επόμενη ερώτηση για το που θα τοποθετηθούν τα κλειδιά αφήνουμε το default, απλά πατώντας enter:
[Εικόνα: Mint%20Client_010.png]

Εάν θέλουμε, μπορούμε να προστατεύσουμε ακόμα και το private key μας που δημιουργούμε, με κρυπτογραφημένο κωδικό πρόσβασης (passphrase), τον οποίο δίνουμε στην επόμενη οθόνη, ενώ αν δεν θέλουμε κωδικό, απλά πατάμε enter:
[Εικόνα: Mint%20Client_011.png]

Τα κλειδιά μας έχουν δημιουργηθεί και είναι τοποθετημένα στον φάκελο /home/username/.ssh. Στο σημείο αυτό να ενημερώσουμε όσους δεν γνωρίζουν, ότι στο Linux όταν σε ένα όνομα αρχείου ή φακέλου προηγείται η τελεία (.), το αρχείο ή φάκελος είναι κρυφό και για να το δούμε, θα πρέπει στον file manager μας να ενεργοποιήσουμε την προβολή κρυφών αρχείων.
[Εικόνα: Mint%20Client_012.png]

Στη συνέχεια στέλνουμε το public key στον server μας με την εντολή:
Κώδικας:
ssh-copy-id adminuser@192.168.0.25
Όταν μας ζητηθεί δίνουμε τον κωδικό του adminuser του server, όχι του χρήστη μας στο client PC:
[Εικόνα: Mint%20Client_013.png]

Με αυτό τον τρόπο έχουμε εγκαθιδρύσει δυνατότητα σύνδεσης στον server μας με κρυπτογραφημένα κλειδιά. Συνδεόμαστε ξανά στον server μας με την εντολή:
Κώδικας:
ssh adminuser@192.168.0.25
όπου πλέον παρατηρούμε ότι δεν μας ζητείται κωδικός πρόσβασης, αλλά η είσοδός μας γίνεται αμέσως.
Την ίδια διαδικασία μπορούμε να κάνουμε από οποιοδήποτε άλλο PC μας, από το οποίο θέλουμε να έχουμε απομακρυσμένη πρόσβαση στον server μας.
Τέλος, απενεργοποιούμε εντελώς την δυνατότητα σύνδεσης με κωδικό στον server μας, ως εξής:
Δια της απομακρυσμένης σύνδεσης που έχουμε ήδη, ανοίγουμε το αρχείο sshd_config με την εντολή:
Κώδικας:
sudo nano /etc/ssh/sshd_config
[Εικόνα: Mint%20Client_014.png]

Βρίσκουμε τη γραμμή
Κώδικας:
#PasswordAuthentication yes

και την αλλάζουμε σε
Κώδικας:
PasswordAuthentication no

[Εικόνα: Mint%20Client_015.png]

Αποθηκεύουμε με Ctrl + O και enter, κλείνουμε τον nano με Ctrl + X και είμαστε έτοιμοι! Πλέον η είσοδος στον server μας είναι δυνατή μόνο με τα κρυπτογραφημένα κλειδιά.

Να αναφέρουμε εδώ ότι στον server τα δημόσια κλειδιά αποθηκεύονται στο αρχείο ~/.ssh/authorized_keys (το σύμβολο ~ αντιπροσωπεύει τον home folder του χρήστη), που όπως όλα σχεδόν τα αρχεία στο linux, είναι αρχείο κειμένου με κάθε κλειδί να καταλαμβάνει μια γραμμή. Απλά για να προσθέσουμε δεύτερο PC, προσθέτουμε σε επόμενη γραμμή το κείμενο του αρχείου id_rsa.pub που δημιουργείται στον φάκελο ~/.ssh του χρήστη του Client PC μας, κατά τη διαδικασία δημιουργίας κλειδιών που περιγράψαμε πιο πάνω.
[Εικόνα: Ubuntu%20Server_098.png]

ΠΡΟΣΟΧΗ: Για να δουλέψει το σύστημα εισαγωγής με κλειδιά, απαιτείται όλα τα αρχεία που περιέχουν τα κλειδιά να έχουν δικαιώματα ανάγνωσης και εγγραφής μόνο από τον owner, δηλαδή rw------- ή αλλιώς 600. Αν κάνετε κάποια χειροκίνητη τροποποίηση και αλλάξουν τα δικαιώματα αυτά, η είσοδός σας θα αποτυγχάνει. Τα δικαιώματα χρηστών θα εξηγηθούν αναλυτικότατα σε επόμενο κεφάλαιο.
[Εικόνα: Mint%20Client_016.png]

Όμως είπαμε ότι εμείς θέλουμε γραφικό περιβάλλον σύνδεσης στον server. Για τον σκοπό αυτό, αφού τερματίσουμε την σύνδεση με την εντολή exit, δίνουμε την εξής εντολή στο τερματικό:
Κώδικας:
ssh -L 15555:localhost:5900 adminuser@192.168.0.25
[Εικόνα: Mint%20Client_004.png]

Με αυτή την εντολή λέμε το εξής: Το ssh να προωθήσει το localport 5900 του server μας (ο διακόπτης -L) στο localport 15555 του client PC μας, συνδεόμενοι ταυτόχρονα ως adminuser. Το port 5900 το δώσαμε πριν ως port που θα χρησιμοποιεί ο x11vnc, όταν φτιάχναμε το αρχείο x11vnc.service:
[Εικόνα: Mint%20Client_005.png]

Συνδεθήκαμε λοιπόν στον server μας, ενώ έχουμε φτιάξει και tunneling με τα ports όπως είπαμε παραπάνω. Το μόνο που κάνουμε τώρα, αφήνοντας ανοικτό το τερματικό, είναι να συνδεθούμε με τον VNC client μας, του Client PC μας, του laptop μας δηλαδή, στο localport 15555 και να δώσουμε τον κωδικό του x11vnc που είχαμε δώσει πιο πριν, όταν τον ρυθμίζαμε. Αν έχουμε περιβάλλον gnome, mate, cinnamon, προτείνεται ο Remmina, ενώ αν έχουμε KDE ο KRDC. Στις παραμέτρους σύνδεσης δίνουμε:
Κώδικας:
localhost:15555

[Εικόνα: Mint%20Client_007.png]

Εάν δεν χρησιμοποιούμε το πρωτόκολλο SSH, θα δώσουμε απλά την διεύθυνση και το port του server μας, δηλαδή για το παράδειγμά μας:
Κώδικας:
192.168.0.25:5900

Και ιδού πλέον ο απόλυτος έλεγχος του server μας απομακρυσμένα, με γραφικό περιβάλλον!
[Εικόνα: Mint%20Client_008.png]

Συνεχίζεται…
Linux Mint KDE laptop, Linux Mint Mate netbook, Lubuntu old desktop, Windows 7 main desktop, Ubuntu File Server
  Απάντηση
#8
Έκανες όντως μία παρουσίαση εξαιρετική. Περιμένω με ανυπομονοσία και το υπόλοιπο. Μήπως μπορείς να κάνεις έναν παρόμοιο οδηγό με lamp, thin clients κλπ; Θα είσαι ο μόνος που θα έχεις κάνει τόσο αναλυτική παρουσίαση σε κάτι που είναι εξαιρετικά χρήσιμο, όχι μόνο σε σχολεία αλλά και σε βιβλιοθήκες κλπ
  Απάντηση
#9
Έκανες όντως μία παρουσίαση εξαιρετική. Περιμένω με ανυπομονοσία και το υπόλοιπο. Μήπως μπορείς να κάνεις έναν παρόμοιο οδηγό με lamp, thin clients κλπ; Θα είσαι ο μόνος που θα έχεις κάνει τόσο αναλυτική παρουσίαση σε κάτι που είναι εξαιρετικά χρήσιμο, όχι μόνο σε σχολεία αλλά και σε βιβλιοθήκες κλπ
  Απάντηση
#10
5 Κεφάλαιο Δ – Προσθήκη χρηστών και σκληρών δίσκων
5.1 Προσθήκη χρηστών και διαχείρισή τους

Αφού λοιπόν έχουμε πλέον ολοκληρώσει τη διαδικασία απομακρυσμένου ελέγχου του server μας, καιρός να προχωρήσουμε στην κυρίως διαμόρφωσή του, με την άνεση που έχουμε καθήμενοι στο κύριο PC μας. Το πρώτο που πρέπει να κάνουμε είναι να προσθέσουμε τους χρήστες που θα έχουν πρόσβαση στα δεδομένα του server μας.

Να τονίσουμε εξαρχής ότι για να έχουν πρόσβαση οι χρήστες απομακρυσμένα μέσω samba, θα πρέπει να έχουν και τοπικό λογαριασμό στον server μας, unix λογαριασμό όπως λέγεται. Το username τους θα πρέπει να είναι το ίδιο, ενώ ο κωδικός μπορεί να είναι διαφορετικός, κάτι όμως που δεν προτείνεται, για να αποφευχθούν στο μέλλον επιπλοκές και απορίες του στυλ «μα γιατί επιτέλους δεν έχω πρόσβαση στα δεδομένα μου στον server;». Με άλλα λόγια, οι χρήστες θα πρέπει να έχουν το ίδιο username, τόσο στους λογαριασμούς τους σε υπολογιστή με Windows, όσο και στον server μας.

Για την προσθήκη χρηστών στον server μας, θα χρησιμοποιήσουμε φυσικά το terminal. Η προσθήκη μπορεί να γίνει με δύο εντολές. Η πρώτη είναι το useradd, που είναι η πρωταρχική, low level εντολή, ενώ η δεύτερη είναι η adduser, που είναι και αυτή που θα χρησιμοποιήσουμε. Η adduser είναι στην ουσία ένα script, προσαρμοσμένο στις απαιτήσεις των νέων ισχυουσών πολιτικών του Debian/Ubuntu (αν δεν το γνωρίζετε, το Ubuntu βασίζεται στο Debian), που τρέχει στο υπόβαθρο την εντολή useradd, αλλά είναι πιο φιλική στο χρήστη, φροντίζοντας αυτόματα να κάνει όλα όσα πρέπει για να έχουμε προσθήκη χρηστών σύμφωνα με τα νεότερα πρότυπα του Debian. Τα παραπάνω αναφέρονται και στην επίσημη τεκμηρίωση της εντολής (man page):
Κώδικας:
adduser and addgroup add users and groups to the system according to command line options and
configuration information in /etc/adduser.conf. They are friendlier front ends to the low level tools like
useradd, groupadd and usermod programs, by default choosing Debian policy conformant UID and GID
values, creating a home directory with skeletal configuration, running a custom script, and other
features.

Μερικές από τις πιο χρήσιμες λειτουργίες της εντολής adduser, είναι ότι δημιουργεί αυτόματα home folder για τον χρήστη που προσθέτουμε, και group με το ίδιο όνομα με του χρήστη, το οποίο ορίζει ως πρωταρχικό, γεγονός σημαντικό για πολλές λειτουργίες του λειτουργικού συστήματος σχετικά με τα δικαιώματα πρόσβασης.
Η εισαγωγή λοιπόν νέων χρηστών γίνεται με την εντολή
Κώδικας:
sudo adduser username
και στη συνέχεια ερωτώμαστε για κωδικό πρόσβασης, πραγματικό ονοματεπώνυμο και άλλα στοιχεία που τυχόν θέλουμε να προσθέσουμε για τον χρήστη. Με την εντολή αυτή εμείς δημιουργήσαμε για τις ανάγκες του οδηγού τρεις χρήστες, τους user1, user2 και user3:
[Εικόνα: UbuntuServer_100.png]

Αφού προσθέσαμε τους χρήστες μας, υπάρχει περίπτωση να έχουμε κάνει κάποιο λάθος ή να άλλαξε κάτι, ή να θέλουμε να εντάξουμε κάποιους χρήστες σε νέο group κλπ.
Η βασική διαχείριση των χρηστών και των groups γίνεται ως εξής:
1. Για να δούμε όλους τους χρήστες του λειτουργικού, ώστε να εξετάσουμε μήπως ξεχάσαμε κάποιον (η παρακάτω εντολή δείχνει και «χρήστες» που δημιουργεί το σύστημα για τις ανάγκες λειτουργίας του, εμείς ασχολούμαστε μόνο με τους χρήστες μας, οι οποίοι συνήθως εμφανίζονται στο τέλος της λίστας):
Κώδικας:
compgen -u

2. Για να δούμε όλα τα groups:
Κώδικας:
compgen -g

3. Για να δούμε όλα τα μέλη ενός group:
Κώδικας:
getent group groupname

4. Για να δούμε την αναλυτική ταυτότητα ενός χρήστη, σε ποια group ανήκει κλπ. (αν δεν δώσουμε username, η εντολή μας επιστρέφει τα δικά μας στοιχεία):
Κώδικας:
id username

5. Για να δούμε σε ποια group ανήκει ένας χρήστης (αν δεν δώσουμε username, η εντολή μας επιστρέφει τα δικά μας στοιχεία):
Κώδικας:
groups username

6. Για να προσθέσουμε ένα νέο group στο σύστημα
Κώδικας:
addgroup groupname

7. Για να προσθέσουμε υπάρχοντα χρήστη σε υπάρχον group:
Κώδικας:
adduser username groupname
[Εικόνα: UbuntuServer_101.png]

Για περισσότερες πληροφορίες σχετικά με την διαχείριση χρηστών και groups, θα πρέπει να ανατρέξετε στις σελίδες τεκμηρίωσης (man pages) των εντολών adduser, deluser, usermod, καθώς οι δυνατότητες είναι πάρα πολλές και ξεφεύγουν από τα πλαίσια αυτού του οδηγού.

5.2 Προσθήκη και διαμόρφωση σκληρών δίσκων

Ένας server φυσικά δεν θα έχει μόνο ένα σκληρό δίσκο, αλλά συνήθως πολύ περισσότερους. Αφού έχουμε ολοκληρώσει την εγκατάσταση των δίσκων μας στο κουτί του υπολογιστή μας, η προσθήκη στο λειτουργικό σύστημα γίνεται απλούστατα, με την χρήση του εργαλείου Disks, που εγκαταστήσαμε στην αρχή αυτού του οδηγού. Φυσικά θα μπορούσε να γίνει και χειροκίνητα μέσω τερματικού, εμείς όμως προτιμούμε την ευκολία της γραφικής εφαρμογής.
Επιλέγουμε τον νέο δίσκο μας:
[Εικόνα: UbuntuServer_102.png]

Από το μενού πάνω δεξιά επιλέγουμε Format Disk…
[Εικόνα: UbuntuServer_103.png]

Η εντολή αυτή κατά την άποψη του γράφοντος έχει ανακριβές όνομα στην συγκεκριμένη εφαρμογή. Αυτό που κάνει δεν είναι format file system, δηλαδή διαμόρφωση συστήματος αρχείων, όπως εννοούμε όταν λέμε format, αλλά δημιουργεί ένα νέο partition table στον δίσκο (θυμάστε τον όρο όταν τον συναντήσαμε κατά την εγκατάσταση του λειτουργικού συστήματός μας;), δηλαδή διαγράφει όλα τα partitions του δίσκου (εμφανίζει βέβαια άλλη μια προειδοποίηση στη συνέχεια), και δημιουργεί νέο partition table, χωρίς να διαμορφώνει αρχείο συστήματος (file system).

Εμείς όμως ούτως ή άλλως αυτό θέλουμε, οπότε προχωράμε. Στην παράθυρο που αναδύεται, διαλέγουμε ως εξής: Αν ο νέος δίσκος μας είναι ίσος ή μεγαλύτερος από 2 TB, διαλέγουμε την default επιλογή, “Compatible with modern systems and hard disks > 2ΤΒ (GPT)”:
[Εικόνα: UbuntuServer_104.png]

ενώ αν είναι μικρότερος από 2TB, όπως εδώ για τις ανάγκες του οδηγού, διαλέγουμε τη επιλογή “Compatible with all systems and devices (MBR/DOS):
[Εικόνα: UbuntuServer_105.png]

Την άλλη επιλογή για το Erase, την αφήνουμε ως έχει. Ξαναδιαλέγουμε Format στο επόμενο παράθυρο, δίνουμε και τον κωδικό root και το νέο μας partition table είναι έτοιμο:
[Εικόνα: UbuntuServer_106.png]

Κατόπιν, πρέπει να δημιουργήσουμε partitions και file systems (να κάνουμε δηλαδή το πραγματικό format), οπότε πατάμε το [ + ] που βρίσκεται στο μέσον του παραθύρου, κάτω από τη μπλε γραμμή που δείχνει τον χώρο του δίσκου μας:
[Εικόνα: UbuntuServer_107.png]

Στο επόμενο παράθυρο διαλέγουμε χωρητικότητα και File system. Για τις ανάγκες του server μας οι default επιλογές είναι μια χαρά. Δίνουμε μόνο ένα όνομα στο partition, ώστε αν έχουμε πολλά, να μπορούμε να τα ξεχωρίσουμε, π.χ. DATA ή FILMS κλπ.:
[Εικόνα: UbuntuServer_108.png]

Αφού δώσουμε και τον κωδικό root όταν μας ζητηθεί, πλέον ο δίσκος μας είναι έτοιμος και διαμορφωμένος. Στον γράφοντα μερικές φορές εμφανίστηκε σφάλμα κατά την διαδικασία αυτή, αν εμφανιστεί και σε εσάς, απλά επαναλαμβάνετε τη διαδικασία και όλα θα είναι μια χαρά.
[Εικόνα: UbuntuServer_109.png]

Το μόνο που μένει τώρα είναι να προσαρτήσουμε (mount) τον δίσκο μας σε κάποιο σημείο του file system, ώστε να είναι ορατός και να μπορούμε να δουλέψουμε με αυτόν.
Για το σημείο προσάρτησης προτείνονται διάφορα στο διαδίκτυο, ο γράφων προτιμά να δημιουργήσει έναν φάκελο “disks” στο root file system και οι προσαρτήσεις όλων των δίσκων να γίνονται σε υποφακέλους σε αυτόν, στη διαδρομή /disks/disk1data, /disks/disk2films κλπ. Δεν υπάρχει κανόνας σε αυτό, φροντίστε μόνο να έχετε απλές λύσεις, για να αποφύγετε πιθανά μελλοντικά λάθη και περιπλοκές.
Δίνουμε λοιπόν σε τερματικό διαδοχικά τις εξής εντολές
Κώδικας:
sudo mkdir /disks
sudo mkdir /disks/disk1data
[Εικόνα: UbuntuServer_110.png]

Και οι φάκελοί μας είναι έτοιμοι, με owner τον root όπως βλέπουμε:
[Εικόνα: UbuntuServer_111.png]

Επιστρέφοντας στην εφαρμογή Disks, με κλικ στο εικονίδιο με το γρανάζι (Additional partition options) επιλέγουμε Edit Mount Options:
[Εικόνα: UbuntuServer_112.png]

[Εικόνα: UbuntuServer_113.png]

Απενεργοποιούμε το Automatic Mount Options, θέτοντάς το στο OFF, και το μόνο που αλλάζουμε στο παράθυρο είναι η διαδρομή του Mount Point, βάζοντας την διαδρομή που φτιάξαμε παραπάνω, δηλαδή
Κώδικας:
/disks/disk1data
[Εικόνα: UbuntuServer_114.png]

Δίνουμε και τον κωδικό root όταν μας ζητηθεί, και στη συνέχεια πατάμε το κουμπί με το σήμα Play – Mount selected partition:
[Εικόνα: UbuntuServer_115.png]

Και πλέον ο νέος δίσκος μας είναι έτοιμος προς χρήση, ενώ η προσάρτησή του θα γίνεται αυτόματα σε κάθε εκκίνηση του συστήματος:
[Εικόνα: UbuntuServer_116.png]

[Εικόνα: UbuntuServer_117.png]

Στο σημείο αυτό να τονίσουμε ότι καλό είναι να ολοκληρωθεί η παραπάνω διαδικασία, και μετά να πειράξετε owner, group και δικαιώματα χρήσης στον φάκελο προσάρτησης disk1data. Ο γράφων τα έκανε ανάποδα και ταλαιπωρήθηκε αφάνταστα, μέχρι να καταλάβει τι συμβαίνει, καθώς η διαδικασία πρώτης προσάρτησης κάνει reset στον ιδιοκτήτη και τα δικαιώματα του σημείου προσάρτησης…


Συνεχίζεται σε αυτό το μήνυμα...
Linux Mint KDE laptop, Linux Mint Mate netbook, Lubuntu old desktop, Windows 7 main desktop, Ubuntu File Server
  Απάντηση


Ίσως Σχετικά Νήματα...
Νήμα Άτομο Απαντήσεις Βλεφαριάσματα Τελευταία Ανάρτηση
  Οδηγός Εγκατάστασης openSUSE 12.3 apache 5 3.302 11.08.2018 14:15
Τελευταία Ανάρτηση: Efstathios Iosifidis
  Οδηγός επισκευών για linux Vanzetti 0 1.341 11.07.2017 15:52
Τελευταία Ανάρτηση: Vanzetti
  Οδηγός Εγκατάστασης MatLab σε Ubuntu Based Διανομές diman91 0 1.227 07.02.2017 00:26
Τελευταία Ανάρτηση: diman91
  MariaDB is a default database server pre-configured in Slackware 14.1 replacing the MySQL server. magicdespellll 0 1.083 19.03.2016 12:45
Τελευταία Ανάρτηση: magicdespellll
  Χρησιμοποιήσε το DDG ως xmpp server jemadux 6 2.167 28.07.2014 17:56
Τελευταία Ανάρτηση: jemadux

Πάμε στο Forum:


Πλάσματα σουλατσάρουν στο νήμα: 1 Επισκέπτης(ες)