diff options
Diffstat (limited to 'el_GR.ISO8859-7/books/handbook/jails/chapter.xml')
-rw-r--r-- | el_GR.ISO8859-7/books/handbook/jails/chapter.xml | 1018 |
1 files changed, 0 insertions, 1018 deletions
diff --git a/el_GR.ISO8859-7/books/handbook/jails/chapter.xml b/el_GR.ISO8859-7/books/handbook/jails/chapter.xml deleted file mode 100644 index 91ca1a21de..0000000000 --- a/el_GR.ISO8859-7/books/handbook/jails/chapter.xml +++ /dev/null @@ -1,1018 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-7"?> -<!-- - - Το Εγχειρίδιο του FreeBSD: Jails - - The FreeBSD Greek Documentation Project - - $FreeBSD$ - - %SOURCE% en_US.ISO8859-1/books/handbook/jails/chapter.xml - %SRCID% 38826 - ---> -<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="jails"> - <info><title>Jails</title> - <authorgroup> - <author><personname><firstname>Matteo</firstname><surname>Riondato</surname></personname><contrib>Συνεισφορά από τον </contrib></author> - </authorgroup> - </info> - - - - <indexterm><primary>jails</primary></indexterm> - - <sect1 xml:id="jails-synopsis"> - <title>Σύνοψη</title> - - <para>Το κεφάλαιο αυτό εξηγεί τι είναι τα jails (φυλακές) του &os; και - πως χρησιμοποιούνται. Τα jails, που αναφέρονται ορισμένες φορές σαν - μια ενισχυμένη εναλλακτική λύση για - <emphasis>περιβάλλοντα chroot</emphasis>, είναι ένα ισχυρό εργαλείο για - διαχειριστές συστημάτων, αλλά η βασική τους χρήση μπορεί επίσης να - είναι χρήσιμη σε προχωρημένους χρήστες.</para> - - <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para> - - <itemizedlist> - <listitem> - <para>Τι είναι ένα jail και τι σκοπό μπορεί να εξυπηρετήσει σε - εγκαταστάσεις &os;.</para> - </listitem> - - <listitem> - <para>Πως να φτιάξετε, να εκκινήσετε, και να σταματήσετε ένα - jail.</para> - </listitem> - - <listitem> - <para>Τα βασικά της διαχείρισης ενός jail, τόσο μέσα, όσο και έξω - από αυτό.</para> - </listitem> - </itemizedlist> - - <para>Άλλες πηγές χρήσιμων πληροφοριών σχετικά με τα jails είναι:</para> - - <itemizedlist> - <listitem> - <para>Η σελίδα manual του &man.jail.8;. Περιέχει πλήρη αναφορά - του βοηθητικού προγράμματος <command>jail</command> — - του διαχειριστικού εργαλείου που μπορεί να χρησιμοποιηθεί στο &os; - για την εκκίνηση, διακοπή, και έλεγχο των jails.</para> - </listitem> - - <listitem> - <para>Οι λίστες ταχυδρομείου και τα αρχεία τους. Τα αρχεία από την - &a.questions; και άλλες λίστες που εξυπηρετούνται από τον - &a.mailman.lists; περιέχουν πλήρη οδηγό για τα jails. Είναι πάντοτε - ενδιαφέρον να ψάχνετε τα αρχεία ή να δημοσιεύετε νέες ερωτήσεις - στη λίστα &a.questions.name;.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 xml:id="jails-terms"> - <title>Όροι των Jails</title> - - <para>Για να κατανοήσετε καλύτερα το πως οι εσωτερικές λειτουργίες του - &os; σχετίζονται με τα jails και πως αυτές αλληλεπιδρούν με τα υπόλοιπα - μέρη του &os;, θα χρησιμοποιήσουμε εκτενώς τους παρακάτω όρους:</para> - - <variablelist> - <varlistentry> - <term>&man.chroot.8; (εντολή)</term> - <listitem> - <para>Ένα βοηθητικό πρόγραμμα, το οποίο χρησιμοποιεί την κλήση - συστήματος &man.chroot.2; του &os; για να αλλάξει - τον γονικό κατάλογο (root directory) μιας διεργασίας και όλων των - άλλων διεργασιών που εξαρτώνται από αυτή.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&man.chroot.2; (περιβάλλον)</term> - <listitem> - <para>Το περιβάλλον μια διεργασίας που τρέχει μέσα σε ένα - <quote>chroot</quote>. Αυτό περιλαμβάνει πόρους όπως το τμήμα - του συστήματος αρχείων που είναι ορατό, τα ID του χρήστη και της - ομάδας που είναι διαθέσιμα, καθώς και τις διεπαφές δικτύου - (network interfaces), τους μηχανισμούς IPC κλπ.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&man.jail.8; (εντολή)</term> - <listitem> - <para>Το πρόγραμμα που σας επιτρέπει να διαχειρίζεστε το σύστημα - σας και να ξεκινάτε διεργασίες σε περιβάλλον jail.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>host (σύστημα (system), διεργασία (process), χρήστης (user), - κλπ.)</term> - <listitem> - <para>Το φυσικό σύστημα που φιλοξενεί και ελέγχει ένα περιβάλλον - jail. Το host system έχει πρόσβαση σε όλο το διαθέσιμο υλικό, - και μπορεί να ελέγξει διεργασίες τόσο μέσα όσο και έξω από το - περιβάλλον του jail. Μία από τις σημαντικότερες διαφορές μεταξύ - του host system και του jail είναι ότι οι περιορισμοί που - εφαρμόζονται στις διεργασίες του χρήστη root μέσα στο περιβάλλον - jail, δεν ισχύουν για τις διεργασίες στο host system.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>hosted (σύστημα (system), διεργασία (process), χρήστης (user), - κλπ.)</term> - <listitem> - <para>Μια διεργασία, ένας χρήστης ή κάποια άλλη οντότητα, του - οποίου η πρόσβαση στους πόρους του συστήματος περιορίζεται μέσα - από ένα jail.</para> - </listitem> - </varlistentry> - </variablelist> - </sect1> - - <sect1 xml:id="jails-intro"> - <title>Εισαγωγή</title> - - <para>Μια και η διαχείριση ενός συστήματος μπορεί να είναι δύσκολη και - περίπλοκη, αναπτύχθηκαν αρκετά εργαλεία τα οποία μπορούν να κάνουν τη - ζωή ενός διαχειριστή πολύ πιο εύκολη. Τα εργαλεία αυτά προσφέρουν - κάποιες πρόσθετες δυνατότητες όσο αφορά τον τρόπο εγκατάστασης, - ρύθμισης και συντήρησης ενός συστήματος. Μια από τις εργασίες που - αναμένεται να εκτελέσει κάθε διαχειριστής συστήματος, είναι να ρυθμίσει - σωστά την ασφάλεια του συστήματος, προκειμένου να προσφέρει τις - υπηρεσίες για τις οποίες έχει προγραμματιστεί, χωρίς να επιτρέπει - συμβιβασμούς στην ασφάλεια.</para> - - <para>Ένα από τα εργαλεία που μπορούν να ενισχύσουν την ασφάλεια ενός - συστήματος &os; είναι τα <emphasis>jails</emphasis>. Τα Jails - πρωτοεμφανίστηκαν στο &os; 4.X από τον &a.phk;, αλλά βελτιώθηκαν - πολύ περισσότερο στην έκδοση &os; 5.X, προκειμένου να προσφέρουν - περισσότερες δυνατότητες και να είναι περισσότερο ευέλικτα. Η ανάπτυξή - τους συνεχίζεται ακόμη, με βελτιώσεις στους τομείς της ευχρηστίας, της - απόδοσης, της αξιοπιστίας και της ασφάλειας που πρέπει να - παρέχουν.</para> - - <sect2 xml:id="jails-what"> - <title>Τι Είναι Ένα Jail</title> - - <para>Τα λειτουργικά συστήματα τύπου BSD, παρείχαν το &man.chroot.2; από - την εποχή του 4.2BSD. Η εντολή &man.chroot.8; μπορεί να - χρησιμοποιηθεί για να αλλάξει τον γονικό κατάλογο μιας ομάδας - διεργασιών, δημιουργώντας ένα ασφαλές περιβάλλον, ξεχωριστό από το - υπόλοιπο σύστημα. Όσες διεργασίες δημιουργούνται σε έναν τέτοιο - περιβάλλον, δεν έχουν πρόσβαση σε αρχεία και πόρους έξω από αυτό. - Για αυτό το λόγο, αν μια υπηρεσία τρέχει μέσα σε ένα τέτοιο - περιβάλλον, και κάποιος εισβολέας καταφέρει να διεισδύσει σε αυτή, δε - θα του επιτραπεί η πρόσβαση στο υπόλοιπο σύστημα. - Η εντολή &man.chroot.8; είναι πολύ καλή για απλές εργασίες οι οποίες - δε χρειάζονται να είναι πολύ ευέλικτες ή να διαθέτουν πολύπλοκα και - προηγμένα χαρακτηριστικά. Ωστόσο, από την αρχή της ιδέας του chroot, - βρέθηκαν αρκετοί τρόποι για να μπορέσει κάποιος να ξεφύγει από το - περιβάλλον αυτό. Παρ' όλο που έχουν διορθωθεί πολλά σφάλματα στις - πρόσφατες εκδόσεις του πυρήνα του &os;, ήταν ξεκάθαρο ότι η - &man.chroot.2; δεν ήταν η ιδανική λύση για την ασφάλιση υπηρεσιών. - Έπρεπε να υλοποιηθεί ένα νέο υποσύστημα.</para> - - <para>Αυτός είναι ένας από τους κύριους λόγους για την ανάπτυξη των - <emphasis>jails</emphasis>.</para> - - <para>Τα jails βελτίωσαν με διάφορους τρόπους την ιδέα του παραδοσιακού - περιβάλλοντος του &man.chroot.2;. Στο τυπικό περιβάλλον του - &man.chroot.2;, οι διεργασίες περιορίζονται μόνος ως προς το μέρος - του συστήματος αρχείων όπου μπορούν να έχουν πρόσβαση. Οι υπόλοιποι - πόροι του συστήματος (όπως οι χρήστες, οι τρέχοντες διεργασίες, το - υποσύστημα δικτύωσης) είναι κοινόχρηστοι μεταξύ των διεργασιών του - περιβάλλοντος chroot και των διεργασιών του host system. Τα jails - επεκτείνουν αυτό το μοντέλο, με την εικονικοποίηση όχι μόνο της - πρόσβασης στο σύστημα αρχείων, αλλά επίσης των χρηστών, του - υποσυστήματος δικτύωσης του πυρήνα του &os; και μερικών ακόμη - πραγμάτων. Περισσότερα για τις διαθέσιμες εντολές που μπορούν να - χρησιμοποιηθούν για τη ρύθμιση και τον έλεγχο ενός περιβάλλοντος jail - μπορείτε να βρείτε στο <xref linkend="jails-tuning"/>.</para> - - <para>Το Jail έχει τέσσερα κύρια στοιχεία:</para> - - <itemizedlist> - <listitem> - <para>Έναν κατάλογο με δική του δομή — το αρχικό σημείο - στο οποίο εισέρχεται ένα jail. Από τη στιγμή που μια διεργασία - βρίσκεται μέσα σε ένα jail, δεν επιτρέπεται να βγει έξω από τον - κατάλογο αυτό. Τα προβλήματα που ταλαιπωρούσαν τον σχεδιασμό του - &man.chroot.2; δεν επηρεάζουν τα jails του &os;.</para> - </listitem> - - <listitem> - <para>Ένα hostname (όνομα συστήματος) — το hostname το οποίο - θα χρησιμοποιηθεί μέσα στο jail. Τα jails χρησιμοποιούνται - κυρίως για την εξυπηρέτηση δικτυακών υπηρεσιών, - επομένως η ύπαρξη ενός χαρακτηριστικού hostname που να - περιγράφει ταυτόχρονα και τη χρήση του, μπορεί να βοηθήσει αρκετά - τον διαχειριστή συστήματος.</para> - </listitem> - - <listitem> - <para>Μια διεύθυνση <acronym>IP</acronym> — αυτή η διεύθυνση - αντιστοιχεί σε ένα jail και δεν μπορεί να αλλάξει κατά τη - διάρκεια της ζωής του. Η διεύθυνση IP ενός jail είναι συνήθως - μία διεύθυνση τύπου alias για μια ήδη υπάρχουσα διεπαφή δικτύου - (network interface), αλλά κάτι τέτοιο δεν είναι απαραίτητο.</para> - </listitem> - - <listitem> - <para>Μία εντολή — η διαδρομή προς ένα εκτελέσιμο το οποίο θα - εκτελείται μέσα στο jail. Η διαδρομή αυτή είναι σχετική ως προς - τον γονικό κατάλογο του περιβάλλοντος του jail, και μπορεί να - διαφέρει πολύ από jail σε jail ανάλογα με το συγκεκριμένο - περιβάλλον.</para> - </listitem> - </itemizedlist> - - <para>Εκτός αυτών, τα jails μπορούν να έχουν τις δικές τους ομάδες - χρηστών και τον δικό τους χρήστη <systemitem class="username">root</systemitem>. Φυσικά, ο - έλεγχος που έχει ο χρήστης <systemitem class="username">root</systemitem> του jail, - περιορίζεται μέσα στο περιβάλλον του jail, και από την - οπτική γωνία του host system, ο χρήστης αυτός δεν είναι παντοδύναμος. - Επιπλέον, ο χρήστης <systemitem class="username">root</systemitem> του jail, δεν μπορεί - να εκτελέσει κρίσιμες εργασίες στο σύστημα έξω από το περιβάλλον του - &man.jail.8;. Περισσότερες πληροφορίες σχετικά με τις δυνατότητες και - τους περιορισμούς του <systemitem class="username">root</systemitem> θα βρείτε στο - <xref linkend="jails-tuning"/>.</para> - </sect2> - </sect1> - - <sect1 xml:id="jails-build"> - <title>Δημιουργώντας και Ελέγχοντας Jails</title> - - <para>Μερικοί διαχειριστές συστημάτων κατηγοριοποιούν τα jails σε δύο - ενότητες: τα <quote>complete (πλήρη)</quote> jails, τα οποία μιμούνται - ένα πραγματικό σύστημα &os;, και τα <quote>service</quote> jails, τα - οποία χρησιμοποιούνται για μια εφαρμογή ή υπηρεσία, που πιθανόν - εκτελείται με ειδικά προνόμια. Αυτός είναι ένας νοητικός διαχωρισμός - και δεν επιδρά στη διαδικασία δημιουργίας ενός jail. Η σελίδα manual - του &man.jail.8; περιέχει κατατοπιστικές πληροφορίες για τη διαδικασία - δημιουργίας ενός jail:</para> - - <screen>&prompt.root; <userinput>setenv D /here/is/the/jail</userinput> -&prompt.root; <userinput>mkdir -p $D</userinput> <co xml:id="jailpath"/> -&prompt.root; <userinput>cd /usr/src</userinput> -&prompt.root; <userinput>make buildworld</userinput> <co xml:id="jailbuildworld"/> -&prompt.root; <userinput>make installworld DESTDIR=$D</userinput> <co xml:id="jailinstallworld"/> -&prompt.root; <userinput>make distribution DESTDIR=$D</userinput> <co xml:id="jaildistrib"/> -&prompt.root; <userinput>mount -t devfs devfs $D/dev</userinput> <co xml:id="jaildevfs"/></screen> - - <calloutlist> - <callout arearefs="jailpath"> - <para>Ο καλύτερος τρόπος για να ξεκινήσετε είναι με την επιλογή μιας - θέσης (διαδρομής) για το jail σας. Εκεί θα βρίσκονται αποθηκευμένα - τα αρχεία του jail όσο αφορά το σύστημα σας. Μια καλή ιδέα είναι - το <filename>/usr/jail/jailname</filename>, - όπου <replaceable>jailname</replaceable> το hostname με το οποίο θα - αναγνωρίζεται το jail. Το σύστημα αρχείων - <filename>/usr/</filename> έχει συνήθως αρκετό - χώρο για το σύστημα αρχείων του jail, το οποίο, για ένα - <quote>complete</quote> jail είναι ουσιαστικά - ένας κλώνος κάθε αρχείου του βασικού συστήματος μια προεπιλεγμένης - εγκατάστασης του &os;.</para> - </callout> - - <callout arearefs="jailbuildworld"> - <para>Το βήμα αυτό δεν απαιτείται αν έχετε μεταγλωττίσει στο παρελθόν - το βασικό σύστημα χρησιμοποιώντας την εντολή - <command>make world</command> ή - <command>make buildworld</command>. Μπορείτε απλώς να - εγκαταστήσετε το υπάρχον σύστημα σας στο νέο jail.</para> - </callout> - - <callout arearefs="jailinstallworld"> - <para>Η εντολή αυτή θα εμπλουτίσει τον κατάλογο που επιλέξατε για το - jail με όλα τα απαραίτητα αρχεία, βιβλιοθήκες, σελίδες βοήθειας - κλπ.</para> - </callout> - - <callout arearefs="jaildistrib"> - <para>Το <buildtarget>distribution</buildtarget> target του - <application>make</application> εγκαθιστά όλα τα αρχεία ρυθμίσεων - που απαιτούνται. Με απλά λόγια, εγκαθιστά κάθε αρχείο από το - <filename>/usr/src/etc/</filename> στον κατάλογο - <filename>/etc</filename> του περιβάλλοντος - jail: <filename>$D/etc/</filename>.</para> - </callout> - - <callout arearefs="jaildevfs"> - <para>Δε χρειάζεται να προσαρτήσετε το &man.devfs.8; στο περιβάλλον - του jail. Από την άλλη όμως, όλες, ή σχεδόν όλες οι εφαρμογές - χρειάζονται πρόσβαση σε τουλάχιστον μία συσκευή, αναλόγως με τον - σκοπό της εφαρμογής. Είναι πολύ σημαντικό να ελέγχεται η πρόσβαση - στις συσκευές μέσα σε ένα jail, καθώς λανθασμένες ρυθμίσεις - μπορεί να επιτρέψουν σε κάποιον εισβολέα να κάνει - <quote>άσχημα παιχνίδια</quote> μέσα στο jail. - Ο έλεγχος του &man.devfs.8; γίνεται μέσω ενός συνόλου κανόνων οι - οποίοι περιγράφονται στις σελίδες manual του &man.devfs.8; και του - &man.devfs.conf.5;.</para> - </callout> - </calloutlist> - - <para>Από την στιγμή που έχει εγκατασταθεί ένα jail, μπορεί να εκκινηθεί - με τη χρήση της εντολής &man.jail.8;. Η &man.jail.8; δέχεται τέσσερις - υποχρεωτικές παραμέτρους οι οποίες περιγράφονται στο - <xref linkend="jails-what"/>. Μπορείτε να δώσετε και άλλες παραμέτρους, - π.χ., για να εκτελέσετε μια διεργασία στο περιβάλλον του jail με τις - άδειες ενός συγκεκριμένου χρήστη. - Η παράμετρος <option><replaceable>command</replaceable></option> - εξαρτάται από τον τύπο του jail. Για ένα - <emphasis>εικονικό σύστημα</emphasis>, το <filename>/etc/rc</filename> - είναι μια καλή επιλογή, μια και στην ουσία θα κλωνοποιήσει - την διαδικασία εκκίνησης ενός πραγματικού συστήματος &os;. Για ένα - <emphasis>service</emphasis> jail, η παράμετρος εξαρτάται από την - υπηρεσία ή την εφαρμογή που θα τρέχει μέσα στο jail.</para> - - <para>Τα jails συνήθως ξεκινούν κατά την εκκίνηση και ο μηχανισμός - <filename>rc</filename> του &os; παρέχει έναν εύκολο τρόπο για να γίνει - κάτι τέτοιο.</para> - - <procedure> - <step> - <para>Η λίστα με τα jails που θέλετε να ξεκινάνε κατά την εκκίνηση θα - πρέπει να προστεθούν στο αρχείο &man.rc.conf.5;:</para> - - <programlisting>jail_enable="YES" # Set to NO to disable starting of any jails -jail_list="<replaceable>www</replaceable>" # Space separated list of names of jails</programlisting> - - <note> - <para>Το όνομα που έχει κάθε jail στη - λίστα <varname>jail_list</varname> επιτρέπεται να περιέχει μόνο - αλφαριθμητικούς χαρακτήρες.</para> - </note> - </step> - - <step> - <para>Για κάθε jail που υπάρχει στο <varname>jail_list</varname>, θα - πρέπει να προστεθεί μια ομάδα από ρυθμίσεις στο &man.rc.conf.5;, οι - οποίες θα το περιγράφουν:</para> - - <programlisting>jail_<replaceable>www</replaceable>_rootdir="/usr/jail/www" # jail's root directory -jail_<replaceable>www</replaceable>_hostname="<replaceable>www</replaceable>.example.org" # jail's hostname -jail_<replaceable>www</replaceable>_ip="192.168.0.10" # jail's IP address -jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in the jail -jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</replaceable>" # devfs ruleset to apply to jail</programlisting> - - <para>Η προεπιλεγμένη εκκίνηση του jail μέσω του - &man.rc.conf.5;, θα ξεκινήσει το script του jail - <filename>/etc/rc</filename>, το οποίο υποθέτει ότι το jail είναι - ένα ολοκληρωμένο εικονικό σύστημα. Για service jails, η - προεπιλεγμένη εκκίνηση πρέπει να αλλάξει, ορίζοντας κατάλληλα την - επιλογή <varname>jail_<replaceable>jailname</replaceable>_exec_start</varname>.</para> - - <note> - <para>Για πλήρη λίστα των διαθέσιμων επιλογών, δείτε το - &man.rc.conf.5;.</para> - </note> - </step> - </procedure> - - <para>Το script <filename>/etc/rc.d/jail</filename> μπορεί να - χρησιμοποιηθεί για να ξεκινήσει ή να σταματήσει κάποιο jail - χειροκίνητα. Πρέπει όμως να υπάρχει η αντίστοιχη καταχώρηση στο - <filename>rc.conf</filename>:</para> - - <screen>&prompt.root; <userinput>/etc/rc.d/jail start www</userinput> -&prompt.root; <userinput>/etc/rc.d/jail stop www</userinput></screen> - - <para>Για την ώρα δεν υπάρχει κάποιος απόλυτα σωστός τρόπος για να - τερματίσετε κάποιο &man.jail.8;. Αυτό συμβαίνει, διότι οι εντολές - που χρησιμοποιούνται συνήθως για να τερματίσουν με ασφάλεια ένα - σύστημα, δεν μπορούν να χρησιμοποιηθούν μέσα στο περιβάλλον ενός jail. - Ο καλύτερος τρόπος για να τερματίσετε ένα jail είναι με την εκτέλεση - της ακόλουθης εντολής μέσα από το ίδιο το jail ή με χρήση του - βοηθητικού προγράμματος &man.jexec.8; έξω από αυτό:</para> - - <screen>&prompt.root; <userinput>sh /etc/rc.shutdown</userinput></screen> - - <para>Περισσότερες πληροφορίες σχετικά με αυτή τη διαδικασία μπορείτε να - βρείτε στη σελίδα βοηθείας του &man.jail.8;</para> - </sect1> - - <sect1 xml:id="jails-tuning"> - <title>Λεπτομερής Ρύθμιση και Διαχείριση</title> - - <para>Υπάρχουν αρκετές επιλογές που μπορούν να εφαρμοστούν σε ένα jail, - καθώς και διάφοροι τρόποι για να συνδυαστεί ένα σύστημα &os; με jails - προκειμένου να παράγουν εφαρμογές υψηλότερου επιπέδου. Η ενότητα αυτή - παρουσιάζει:</para> - - <itemizedlist> - <listitem> - <para>Μερικές από τις διαθέσιμες επιλογές για την ρύθμιση της - συμπεριφοράς και των περιορισμών ασφαλείας που υλοποιούνται από την - εγκατάσταση ενός jail.</para> - </listitem> - - <listitem> - <para>Μερικές εφαρμογές υψηλού επιπέδου για τη διαχείριση jails, - οι οποίες είναι διαθέσιμες μέσω της συλλογής των Ports του &os; και - μπορούν να χρησιμοποιηθούν στην υλοποίηση ολοκληρωμένων λύσεων με - τη χρήση jails.</para> - </listitem> - </itemizedlist> - - <sect2 xml:id="jails-tuning-utilities"> - <title>Εργαλεία Συστήματος του &os; για τη Ρύθμιση Jails</title> - - <para>Λεπτομερής ρύθμιση ενός jail γίνεται κατά κύριο λόγο μέσω των - μεταβλητών του &man.sysctl.8;. Υπάρχει ένα ειδικό subtree του sysctl - το οποίο αποτελεί τη βάση για την οργάνωση όλων των σχετικών - επιλογών: πρόκειται για την ιεραρχία επιλογών πυρήνα - <varname>security.jail.*</varname>. Παρακάτω θα βρείτε μια λίστα με - τα κύρια sysctl που σχετίζονται με κάποιο jail καθώς και τις - προεπιλεγμένες τιμές τους. Τα ονόματα μάλλον εξηγούν από μόνα τους - την αντίστοιχη λειτουργία, αλλά για περισσότερες πληροφορίες μπορείτε - να δείτε τις σελίδες βοήθειας των &man.jail.8; - και &man.sysctl.8;.</para> - - <itemizedlist> - <listitem> - <para><varname>security.jail.set_hostname_allowed: 1</varname></para> - </listitem> - - <listitem> - <para><varname>security.jail.socket_unixiproute_only: 1</varname></para> - </listitem> - - <listitem> - <para><varname>security.jail.sysvipc_allowed: 0</varname></para> - </listitem> - - <listitem> - <para><varname>security.jail.enforce_statfs: 2</varname></para> - </listitem> - - <listitem> - <para><varname>security.jail.allow_raw_sockets: 0</varname></para> - </listitem> - - <listitem> - <para><varname>security.jail.chflags_allowed: 0</varname></para> - </listitem> - - <listitem> - <para><varname>security.jail.jailed: 0</varname></para> - </listitem> - </itemizedlist> - - <para>Οι μεταβλητές αυτές μπορούν να χρησιμοποιηθούν από τον - διαχειριστή του <emphasis>host system</emphasis> - προκειμένου να προσθέσει ή να αφαιρέσει περιορισμούς οι οποίοι - υπάρχουν αρχικά στον χρήστη <systemitem class="username">root</systemitem>. Υπάρχουν όμως - και κάποιοι περιορισμοί οι οποίοι δεν μπορούν να αφαιρεθούν. - Ο χρήστης <systemitem class="username">root</systemitem> δεν επιτρέπεται να προσαρτά ή να - απο-προσαρτά συστήματα αρχείων μέσα από ένα &man.jail.8;. Ο - <systemitem class="username">root</systemitem> μέσα σε ένα jail δεν επιτρέπεται να - φορτώσει ή να αποφορτώσει τους κανόνες (rulesets) του &man.devfs.8;, - το firewall, και διάφορες άλλες εργασίες διαχείρισης οι οποίες - χρειάζονται τροποποίηση των δεδομένων του πυρήνα, όπως για παράδειγμα - ο ορισμός του <varname>securelevel</varname> του πυρήνα.</para> - - <para>Το βασικό σύστημα του &os; περιέχει τα βασικά εργαλεία για τη - προβολή πληροφοριών σχετικά με τα ενεργά jails, και επίσης για την - ανάθεση συγκεκριμένων εντολών διαχείρισης σε κάποιο jail. Οι εντολές - &man.jls.8; και &man.jexec.8; αποτελούν μέρος του βασικού συστήματος - του &os;, και μπορούν να χρησιμοποιηθούν για να τις παρακάτω απλές - εργασίες:</para> - - <itemizedlist> - <listitem> - <para>Προβολή λίστας των ενεργών jails και τον αντίστοιχων - χαρακτηριστικών τους - jail identifier (<acronym>JID</acronym>), - διεύθυνση <acronym>IP</acronym>, hostname και path.</para> - </listitem> - - <listitem> - <para>Προσκόλληση σε κάποιο ενεργό jail, από το host system, και - εκτέλεση κάποιας εντολής μέσα στο jail ή εκτέλεση εργασιών - διαχείρισης μέσα στο jail. Κάτι τέτοιο είναι ιδιαίτερα χρήσιμο - όταν ο χρήστης <systemitem class="username">root</systemitem> επιθυμεί να τερματίσει - με ασφάλεια κάποιο jail. Μπορεί επίσης να χρησιμοποιηθεί η εντολή - &man.jexec.8; για την εκτέλεση κάποιου shell μέσα στο jail - προκειμένου να εκτελεστούν εργασίες διαχείρισης, για - παράδειγμα:</para> - - <screen>&prompt.root; <userinput>jexec 1 tcsh</userinput></screen> - </listitem> - </itemizedlist> - </sect2> - - <sect2 xml:id="jails-tuning-admintools"> - <title>Εργαλεία Διαχείρισης Υψηλού Επιπέδου στη Συλλογή Ports - του &os;</title> - - <para>Ανάμεσα στις διάφορες εφαρμογές τρίτων κατασκευαστών για τη - διαχείριση των jails, ένα από τα ποιο ολοκληρωμένα και χρήσιμα πακέτα - είναι το <package>sysutils/jailutils</package>. - Αποτελεί ένα σύνολο μικρών εφαρμογών - οι οποίες συνεισφέρουν στη διαχείριση του &man.jail.8;. Για - περισσότερες πληροφορίες, δείτε στον δικτυακό του τόπο.</para> - </sect2> - </sect1> - - <sect1 xml:id="jails-application"> - <title>Εφαρμογή των Jails</title> - - <sect2 xml:id="jails-service-jails"> - <info><title>Service Jails</title> - <authorgroup> - <author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname><contrib>Συνεισφορά του </contrib></author> - </authorgroup> - </info> - - - - <para>Η ενότητα αυτή είναι βασισμένη στην ιδέα που παρουσιάστηκε αρχικά - από τον &a.simon; στο <uri xlink:href="http://simon.nitro.dk/service-jails.html">http://simon.nitro.dk/service-jails.html</uri>, καθώς και - σε ένα ανανεωμένο άρθρο του Ken Tom <email>locals@gmail.com</email>. - Στην ενότητα αυτή θα σας δείξουμε πως να στήσετε ένα σύστημα &os; το - οποίο να διαθέτει ένα επιπλέον επίπεδο ασφάλειας, με τη χρήση του - &man.jail.8;. Υποθέτουμε ότι το σύστημα τρέχει τουλάχιστον RELENG_6_0 - και ότι έχετε κατανοήσει όλες τις προηγούμενες πληροφορίες του - κεφαλαίου.</para> - - <sect3 xml:id="jails-service-jails-design"> - <title>Σχεδιασμός</title> - - <para>Ένα από τα σημαντικότερα προβλήματα με τα jails είναι η - διαχείριση της διαδικασίας αναβαθμίσεων. Αυτό τείνει να είναι - πρόβλημα διότι το κάθε jail πρέπει να δημιουργηθεί από την αρχή σε - κάθε αναβάθμιση. Συνήθως δεν είναι πρόβλημα αν έχετε ένα μόνο jail, - μια και πρόκειται για σχετικά απλή διαδικασία, αλλά γίνεται - κουραστική και χρονοβόρα αν έχετε πολλά jails.</para> - - <warning> - <para>Οι παρακάτω ρυθμίσεις προϋποθέτουν εμπειρία με το &os; και τη - χρήση των διάφορων χαρακτηριστικών του. Εάν τα παρακάτω βήματα - σας φαίνονται πολύ περίπλοκα, είναι καλύτερα να ρίξετε μια ματιά - σε κάτι ποιο απλό όπως το - <package>sysutils/ezjail</package>, το οποίο - παρέχει έναν ευκολότερο τρόπο διαχείρισης των jails του &os; και - δεν είναι τόσο εξειδικευμένο όσο οι παρακάτω ρυθμίσεις.</para> - </warning> - - <para>Η ιδέα αυτή έχει παρουσιαστεί για να λύσει τέτοιου είδους - προβλήματα, με την βοήθεια της κοινής χρήσης όσο το δυνατόν - περισσότερων αρχείων μεταξύ των jails, με έναν ασφαλή - όμως τρόπο — χρησιμοποιώντας προσαρτήσεις τύπου - &man.mount.nullfs.8; και μόνο για ανάγνωση (read only) - έτσι ώστε η αναβάθμιση να είναι ευκολότερη, και η χρήση μεμονωμένων - jails για κάθε υπηρεσία να καθίσταται επιθυμητή. Επιπλέον, παρέχει - έναν απλό τρόπο για να προσθέσετε και να αφαιρέσετε jails όπως - επίσης και να τα αναβαθμίσετε.</para> - - <note> - <para>Παραδείγματα υπηρεσιών τέτοιου τύπου: ένας - <acronym>HTTP</acronym> server, ένας <acronym>DNS</acronym> - server, ένας <acronym>SMTP</acronym> server, κλπ.</para> - </note> - - <para>Οι στόχοι των παρακάτω ρυθμίσεων είναι:</para> - - <itemizedlist> - <listitem> - <para>Δημιουργία απλών και κατανοητών jails. - Αυτό σημαίνει ότι <emphasis>δεν</emphasis> θα τρέξουμε ένα - πλήρες installworld σε κάθε jail.</para> - </listitem> - - <listitem> - <para>Εύκολη προσθήκη και διαγραφή jails.</para> - </listitem> - - <listitem> - <para>Εύκολη αναβάθμιση υπαρχόντων jails.</para> - </listitem> - - <listitem> - <para>Δυνατότητα δημιουργίας προσαρμοσμένου τμήματος - του &os;.</para> - </listitem> - - <listitem> - <para>Όσο περισσότερη ασφάλεια είναι δυνατόν, με ελαχιστοποίηση - της πιθανότητας κακόβουλης χρήσης.</para> - </listitem> - - <listitem> - <para>Εξοικονόμηση χώρου και inodes.</para> - </listitem> - </itemizedlist> - - <para>Όπως έχουμε ήδη πει, ο σχεδιασμός αυτός εξαρτάται ιδιαίτερα από - την ύπαρξη ενός αρχικού template στο οποίο δεν επιτρέπεται η - εγγραφή δεδομένων (γνωστό ως <application>nullfs</application>) και - το οποίο πρέπει να έχει προσαρτηθεί σε κάθε jail, όπως επίσης και - στην ύπαρξη για κάθε jail μιας συσκευής που να επιτρέπει τόσο την - ανάγνωση όσο και την εγγραφή. Μια τέτοια συσκευή μπορεί να είναι - κάποιος ξεχωριστός φυσικός δίσκος, μια κατάτμηση, ή κάποια συσκευή - vnode &man.md.4;. Στο παρακάτω παράδειγμα, θα χρησιμοποιήσουμε - προσαρτήσεις τύπου <application>nullfs</application> στις οποίες - θα επιτρέπεται εγγραφή και ανάγνωση.</para> - - <para>Η δομή του συστήματος αρχείων περιγράφεται στην παρακάτω - λίστα:</para> - - <itemizedlist> - <listitem> - <para>Κάθε jail θα προσαρτάται κάτω από τον κατάλογο <filename>/home/j</filename>.</para> - </listitem> - - <listitem> - <para>Το <filename>/home/j/mroot</filename> - είναι το template για το κάθε jail και η κατάτμηση μόνο - ανάγνωσης για όλα τα jails.</para> - </listitem> - - <listitem> - <para>Θα δημιουργηθεί ένας κενός κατάλογος για κάθε jail κάτω - από τον κατάλογο - <filename>/home/j</filename>.</para> - </listitem> - - <listitem> - <para>Κάθε jail θα έχει έναν κατάλογο - <filename>/s</filename>, ο οποίος θα είναι - σύνδεσμος προς το εγγράψιμο μέρος του συστήματος.</para> - </listitem> - - <listitem> - <para>Κάθε jail θα έχει το δικό εγγράψιμο μέρος το οποίο - θα βασίζεται στο - <filename>/home/j/skel</filename>.</para> - </listitem> - - <listitem> - <para>Κάθε jailspace (το εγγράψιμο μέρος κάθε jail) θα πρέπει - να δημιουργηθεί στον κατάλογο - <filename>/home/js</filename>.</para> - </listitem> - </itemizedlist> - - <note> - <para>Όλα αυτά προϋποθέτουν ότι τα jails βρίσκονται κάτω από τον - κατάλογο <filename>/home</filename>. Αυτό - βέβαια μπορεί να αλλάξει σε οτιδήποτε εσείς θέλετε, αλλά θα - επηρεάσει όλα τα παρακάτω παραδείγματα.</para> - </note> - <!-- Insert an image or drawing here to illustrate the example. --> - </sect3> - - <sect3 xml:id="jails-service-jails-template"> - <title>Δημιουργώντας το Template</title> - - <para>Η ενότητα αυτή θα περιγράψει τα βήματα που χρειάζονται - προκειμένου να δημιουργήσετε το πρωταρχικό template το οποίο θα - περιέχει το τμήμα των jails που είναι μόνο για ανάγνωση.</para> - - <para>Είναι πάντοτε καλή ιδέα να αναβαθμίζετε το &os; στη τελευταία - έκδοση -RELEASE. Για το σκοπό αυτό, διαβάστε το αντίστοιχο - <link xlink:href="&url.books.handbook;/makeworld.html">κεφάλαιο</link> - στο Εγχειρίδιο. Στη περίπτωση που η αναβάθμιση - δεν είναι εφικτή, θα χρειαστείτε buildworld για να μπορέσετε να - συνεχίσετε. Επιπλέον θα χρειαστείτε το πακέτο - <package>sysutils/cpdup</package>. Θα - χρησιμοποιήσουμε το βοηθητικό πρόγραμμα &man.portsnap.8; για να - κατεβάσουμε τη συλλογή των Ports. Για τους νεο-εισερχόμενους, - συνίσταται η ανάγνωση του <link xlink:href="&url.books.handbook;/portsnap.html">κεφαλαίου για το - Portsnap</link> στο Εγχειρίδιο του &os;.</para> - - <procedure> - <step> - <para>Αρχικά, δημιουργήστε μια δομή καταλόγων για το σύστημα - αρχείων το οποίο θα είναι μόνο για ανάγνωση, και το οποίο θα - περιέχει τα εκτελέσιμα (binaries) του &os; για τα jails. - Στη συνέχεια πηγαίνετε στον κατάλογο όπου βρίσκονται τα αρχεία - πηγαίου κώδικα (source tree) του &os; και - εγκαταστήστε τα αντίστοιχα αρχεία στο jail template:</para> - - <screen>&prompt.root; <userinput>mkdir /home/j /home/j/mroot</userinput> -&prompt.root; <userinput>cd /usr/src</userinput> -&prompt.root; <userinput>make installworld DESTDIR=/home/j/mroot</userinput></screen> - </step> - - <step> - <para>Επόμενο βήμα είναι να προετοιμάσετε τη συλλογή των Ports - του &os; για τα jails όπως επίσης και ένα &os; source tree, το - οποίο θα χρειαστεί για το - <application>mergemaster</application>:</para> - - <screen>&prompt.root; <userinput>cd /home/j/mroot</userinput> -&prompt.root; <userinput>mkdir usr/ports</userinput> -&prompt.root; <userinput>portsnap -p /home/j/mroot/usr/ports fetch extract</userinput> -&prompt.root; <userinput>cpdup /usr/src /home/j/mroot/usr/src</userinput></screen> - </step> - - <step> - <para>Δημιουργήστε το σκελετό για το τμήμα του συστήματος όπου - προορίζεται για ανάγνωση και εγγραφή:</para> - - <screen>&prompt.root; <userinput>mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles</userinput> -&prompt.root; <userinput>mv etc /home/j/skel</userinput> -&prompt.root; <userinput>mv usr/local /home/j/skel/usr-local</userinput> -&prompt.root; <userinput>mv tmp /home/j/skel</userinput> -&prompt.root; <userinput>mv var /home/j/skel</userinput> -&prompt.root; <userinput>mv root /home/j/skel</userinput></screen> - </step> - - <step> - <para>Χρησιμοποιήστε το <application>mergemaster</application> - για να εγκαταστήσετε τα αρχεία ρυθμίσεων που λείπουν. Στη - συνέχεια διαγράψτε όλους τους έξτρα καταλόγους - που δημιουργεί το <application>mergemaster</application>:</para> - - <screen>&prompt.root; <userinput>mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i</userinput> -&prompt.root; <userinput>cd /home/j/skel</userinput> -&prompt.root; <userinput>rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev</userinput></screen> - </step> - - <step> - <para>Τώρα, δημιουργήστε συνδέσμους από το σύστημα αρχείων στο - οποίο επιτρέπεται η εγγραφή, προς το σύστημα αρχείων που είναι - μόνο για ανάγνωση. Βεβαιωθείτε ότι οι σύνδεσμοι έχουν - δημιουργηθεί στις σωστές θέσεις <filename>s/</filename>. Η ύπαρξη πραγματικών - καταλόγων ή η δημιουργία καταλόγων σε λάθος θέσεις θα οδηγήσουν - την εγκατάσταση σε αποτυχία.</para> - - <screen>&prompt.root; <userinput>cd /home/j/mroot</userinput> -&prompt.root; <userinput>mkdir s</userinput> -&prompt.root; <userinput>ln -s s/etc etc</userinput> -&prompt.root; <userinput>ln -s s/home home</userinput> -&prompt.root; <userinput>ln -s s/root root</userinput> -&prompt.root; <userinput>ln -s ../s/usr-local usr/local</userinput> -&prompt.root; <userinput>ln -s ../s/usr-X11R6 usr/X11R6</userinput> -&prompt.root; <userinput>ln -s ../../s/distfiles usr/ports/distfiles</userinput> -&prompt.root; <userinput>ln -s s/tmp tmp</userinput> -&prompt.root; <userinput>ln -s s/var var</userinput></screen> - </step> - - <step> - <para>Σαν τελευταίο βήμα, δημιουργήστε ένα γενικό αρχείο - <filename>/home/j/skel/etc/make.conf</filename> με τα παρακάτω - δεδομένα:</para> - - <programlisting>WRKDIRPREFIX?= /s/portbuild</programlisting> - - <para>Έχοντας ορίσει το <literal>WRKDIRPREFIX</literal> με - αυτόν τον τρόπο, θα μπορείτε να μεταγλωττίσετε ports του &os; - μέσα σε κάθε jail. Θυμηθείτε ότι ο κατάλογος των ports είναι - μέρος του συστήματος αρχείων που έχει προσαρτηθεί μόνο για - ανάγνωση. Η προσαρμοσμένη διαδρομή για το - <literal>WRKDIRPREFIX</literal> επιτρέπει την μεταγλώττιση - των ports στο εγγράψιμο μέρος του κάθε jail.</para> - </step> - </procedure> - </sect3> - - <sect3 xml:id="jails-service-jails-creating"> - <title>Δημιουργώντας Jails</title> - - <para>Τώρα που έχουμε ένα ολοκληρωμένο &os; jail template, μπορούμε να - εγκαταστήσουμε και να ρυθμίσουμε τα jails στο - <filename>/etc/rc.conf</filename>. Το παράδειγμα αυτό δείχνει - τη δημιουργία τριών jails: <quote>NS</quote>, - <quote>MAIL</quote> και <quote>WWW</quote>.</para> - - <procedure> - <step> - <para>Εισάγετε τις παρακάτω γραμμές στο αρχείο - <filename>/etc/fstab</filename>, ώστε το μόνο για ανάγνωση - template για τα jails και ο εγγράψιμος χώρος - να είναι διαθέσιμα στα αντίστοιχα jails:</para> - - <programlisting>/home/j/mroot /home/j/ns nullfs ro 0 0 -/home/j/mroot /home/j/mail nullfs ro 0 0 -/home/j/mroot /home/j/www nullfs ro 0 0 -/home/js/ns /home/j/ns/s nullfs rw 0 0 -/home/js/mail /home/j/mail/s nullfs rw 0 0 -/home/js/www /home/j/www/s nullfs rw 0 0</programlisting> - - <note> - <para>Οι κατατμήσεις που είναι σημειωμένες με 0 pass number δεν - ελέγχονται κατά την εκκίνηση από το &man.fsck.8;, ενώ για τις - κατατμήσεις με 0 dump number, η &man.dump.8; δεν θα - δημιουργεί αντίγραφα ασφαλείας. Προφανώς, δεν θέλουμε το - <application>fsck</application> να ελέγχει τις προσαρτήσεις - τύπου <application>nullfs</application>, ούτε και το - <application>dump</application> να κρατά αντίγραφα από τα - μόνο για ανάγνωση nullfs συστήματα αρχείων των jails. Αυτός - είναι και ο λόγος που βάλαμε <quote>0 0</quote> στις δύο - τελευταίες στήλες κάθε εγγραφής του - <filename>fstab</filename>.</para> - </note> - </step> - - <step> - <para>Ρυθμίστε τα jails στο - <filename>/etc/rc.conf</filename>:</para> - - <programlisting>jail_enable="YES" -jail_set_hostname_allow="NO" -jail_list="ns mail www" -jail_ns_hostname="ns.example.org" -jail_ns_ip="192.168.3.17" -jail_ns_rootdir="/home/j/ns" -jail_ns_devfs_enable="YES" -jail_mail_hostname="mail.example.org" -jail_mail_ip="192.168.3.18" -jail_mail_rootdir="/home/j/mail" -jail_mail_devfs_enable="YES" -jail_www_hostname="www.example.org" -jail_www_ip="62.123.43.14" -jail_www_rootdir="/home/j/www" -jail_www_devfs_enable="YES"</programlisting> - <warning> - <para>Ο λόγος για τον οποίο θέτουμε τη μεταβλητή - <varname>jail_<replaceable>name</replaceable>_rootdir</varname> - να δείχνει στο - <filename>/usr/home</filename> - αντί για το <filename>/home</filename> - είναι ότι η φυσική διαδρομή για τον κατάλογο - <filename>/home </filename> σε μια τυπική - εγκατάσταση του &os; είναι το - <filename>/usr/home</filename>. Η μεταβλητή - <varname>jail_<replaceable>name</replaceable>_rootdir</varname> - <emphasis>δεν</emphasis> δεν πρέπει να δείχνει προς διαδρομή - που περιλαμβάνει συμβολικό δεσμό, διαφορετικά τα jails θα - αρνηθούν να ξεκινήσουν. Χρησιμοποιήστε το βοηθητικό πρόγραμμα - &man.realpath.1; για να προσδιορίσετε την τιμή που θα πρέπει - να λάβει αυτή η μεταβλητή. Δείτε το &os;-SA-07:01.jail - Security Advisory για περισσότερες πληροφορίες.</para> - </warning> - </step> - - <step> - <para>Δημιουργήστε τα απαραίτητα σημεία προσαρτήσεων για το - σύστημα αρχείων μόνο ανάγνωσης του κάθε jail:</para> - - <screen>&prompt.root; <userinput>mkdir /home/j/ns /home/j/mail /home/j/www</userinput></screen> - </step> - - <step> - <para>Εγκαταστήστε το εγγράψιμο template μέσα στο κάθε jail. - Προσέξτε εδώ τη χρήση του - <package>sysutils/cpdup</package>, το οποίο - επιβεβαιώνει ότι δημιουργείται το σωστό αντίγραφο του κάθε - καταλόγου:</para> - <!-- keramida: Why is cpdup required here? Doesn't cpio(1) - already include adequate functionality for performing this - job *and* have the advantage of being part of the base - system of FreeBSD? --> - - <screen>&prompt.root; <userinput>mkdir /home/js</userinput> -&prompt.root; <userinput>cpdup /home/j/skel /home/js/ns</userinput> -&prompt.root; <userinput>cpdup /home/j/skel /home/js/mail</userinput> -&prompt.root; <userinput>cpdup /home/j/skel /home/js/www</userinput></screen> - </step> - - <step> - <para>Σε αυτή τη φάση, τα jails έχουν δημιουργηθεί και είναι - έτοιμα να ξεκινήσουν. Προσαρτήστε το σωστό σύστημα αρχείων - για το κάθε jail, και στη συνέχεια εκκινήστε τα, - χρησιμοποιώντας το script - <filename>/etc/rc.d/jail</filename>:</para> - - <screen>&prompt.root; <userinput>mount -a</userinput> -&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen> - </step> - </procedure> - - <para>Τα jails θα πρέπει τώρα να εκτελούνται κανονικά. Γα να ελέγξετε - αν έχουν ξεκινήσει σωστά, χρησιμοποιείστε την εντολή &man.jls.8;. - Θα πρέπει να δείτε κάτι αντίστοιχο με το παρακάτω:</para> - - <screen>&prompt.root; <userinput>jls</userinput> - JID IP Address Hostname Path - 3 192.168.3.17 ns.example.org /home/j/ns - 2 192.168.3.18 mail.example.org /home/j/mail - 1 62.123.43.14 www.example.org /home/j/www</screen> - - <para>Σε αυτό το σημείο, θα πρέπει να μπορείτε να συνδεθείτε σε κάθε - jail, να προσθέσετε νέους χρήστες ή να ρυθμίσετε υπηρεσίες. Η στήλη - <literal>JID</literal> δηλώνει το χαρακτηριστικό αναγνωριστικό - αριθμό κάθε ενεργού jail. Χρησιμοποιήστε την παρακάτω εντολή - προκειμένου να εκτελέσετε εργασίες διαχείρισης του jail, με - <literal>JID</literal> 3:</para> - - <screen>&prompt.root; <userinput>jexec 3 tcsh</userinput></screen> - </sect3> - - <sect3 xml:id="jails-service-jails-upgrading"> - <title>Αναβάθμιση</title> - - <para>Κάποια στιγμή, θα χρειαστεί να αναβαθμίσετε το σύστημά σας σε - μια νέα έκδοση του &os;, είτε για λόγους ασφάλειας, είτε γιατί - υπάρχουν νέες δυνατότητες στην νεώτερη έκδοση οι οποίες είναι - χρήσιμες για τα jails που ήδη έχετε. Ο τρόπος που χρησιμοποιήσαμε - για την δημιουργία των jails, επιτρέπει την εύκολη αναβάθμιση τους. - Επιπλέον, ελαχιστοποιεί το χρόνο διακοπής της λειτουργίας τους, μια - και θα χρειαστεί να τα σταματήσετε μόνο κατά τα λίγα τελευταία - λεπτά. Επίσης, παρέχει έναν τρόπο να επιστρέψετε σε παλαιότερες - εκδόσεις εάν προκύψουν οποιαδήποτε σφάλματα.</para> - - <procedure> - <step> - <para>Το πρώτο βήμα είναι να αναβαθμίσετε το σύστημα στο οποίο - φιλοξενούνται τα jails, με το συνήθη τρόπο. Στη συνέχεια - δημιουργήστε ένα νέο προσωρινό template κατάλογο, μόνο για - ανάγνωση, στο - <filename>/home/j/mroot2</filename>.</para> - - <screen>&prompt.root; <userinput>mkdir /home/j/mroot2</userinput> -&prompt.root; <userinput>cd /usr/src</userinput> -&prompt.root; <userinput>make installworld DESTDIR=/home/j/mroot2</userinput> -&prompt.root; <userinput>cd /home/j/mroot2</userinput> -&prompt.root; <userinput>cpdup /usr/src usr/src</userinput> -&prompt.root; <userinput>mkdir s</userinput></screen> - - <para>Το <buildtarget>installworld</buildtarget> δημιουργεί - μερικούς καταλόγους που δε χρειάζονται, και θα πρέπει - να διαγραφούν:</para> - - <screen>&prompt.root; <userinput>chflags -R 0 var</userinput> -&prompt.root; <userinput>rm -R etc var root usr/local tmp</userinput></screen> - </step> - - <step> - <para>Δημιουργήστε ξανά τους συνδέσμους για το σύστημα αρχείων - ανάγνωσης - εγγραφής:</para> - - <screen>&prompt.root; <userinput>ln -s s/etc etc</userinput> -&prompt.root; <userinput>ln -s s/root root</userinput> -&prompt.root; <userinput>ln -s s/home home</userinput> -&prompt.root; <userinput>ln -s ../s/usr-local usr/local</userinput> -&prompt.root; <userinput>ln -s ../s/usr-X11R6 usr/X11R6</userinput> -&prompt.root; <userinput>ln -s s/tmp tmp</userinput> -&prompt.root; <userinput>ln -s s/var var</userinput></screen> - </step> - - <step> - <para>Τώρα είναι η σωστή στιγμή για να σταματήσετε τα - jails:</para> - - <screen>&prompt.root; <userinput>/etc/rc.d/jail stop</userinput></screen> - </step> - - <step> - <para>Αποπροσαρτήστε τα αρχικά συστήματα αρχείων:</para> - <!-- keramida: Shouldn't we suggest a short script-based - loop here, instead of tediously copying the same commands - multiple times? --> - - <screen>&prompt.root; <userinput>umount /home/j/ns/s</userinput> -&prompt.root; <userinput>umount /home/j/ns</userinput> -&prompt.root; <userinput>umount /home/j/mail/s</userinput> -&prompt.root; <userinput>umount /home/j/mail</userinput> -&prompt.root; <userinput>umount /home/j/www/s</userinput> -&prompt.root; <userinput>umount /home/j/www</userinput></screen> - - <note> - <para>Τα συστήματα αρχείων ανάγνωσης - εγγραφής είναι - προσαρτημένα στο σύστημα αρχείων μόνο ανάγνωσης - (<filename>/s</filename>) και πρέπει να - είναι τα πρώτα που θα αποπροσαρτηθούν.</para> - </note> - </step> - - <step> - <para>Μετακινήστε τον παλιό μόνο για ανάγνωση κατάλογο, και - αντικαταστήστε τον με τον καινούργιο. Ο παλιός θα παραμείνει ως - αντίγραφο ασφαλείας του παλιού συστήματος σε περίπτωση - προβλήματος. Ο τρόπος ονομασίας που ακολουθήσαμε εδώ - αντιστοιχεί στη χρονική στιγμή δημιουργίας του νέου συστήματος - αρχείων μόνο ανάγνωσης. Μετακινήστε την αρχική συλλογή των - Ports του &os; στο νέο σύστημα, αρχείων προκειμένου να - εξοικονομήσετε χώρο και inodes:</para> - - <screen>&prompt.root; <userinput>cd /home/j</userinput> -&prompt.root; <userinput>mv mroot mroot.20060601</userinput> -&prompt.root; <userinput>mv mroot2 mroot</userinput> -&prompt.root; <userinput>mv mroot.20060601/usr/ports mroot/usr</userinput></screen> - </step> - - <step> - <para>Σε αυτό το σημείο το μόνο για ανάγνωση template είναι - έτοιμο, οπότε το μόνο που απομένει είναι να προσαρτήσετε ξανά - τα συστήματα αρχείων και να ξεκινήσετε τα jails:</para> - - <screen>&prompt.root; <userinput>mount -a</userinput> -&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen> - </step> - </procedure> - - <para>Χρησιμοποιείτε την εντολή &man.jls.8; για να ελέγξετε εάν τα - jails ξεκίνησαν σωστά. Μην ξεχάσετε να εκτελέσετε το mergemaster - για το κάθε jail. Θα χρειαστεί να αναβαθμίσετε τόσο τα αρχεία - ρυθμίσεων, όσο και τα rc.d scripts.</para> - </sect3> - </sect2> - </sect1> -</chapter> |