diff --git a/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml b/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml index 54d5f01311..bf2d75ee82 100644 --- a/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml +++ b/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml @@ -1,951 +1,1018 @@ Matteo Riondato Συνεισφορά από τον Jails jails Σύνοψη - Το κεφάλαιο αυτό εξηγεί τι είναι τα jails (φυλακές) στο &os; και - πως χρησιμοποιούνται. Τα jails, που ορισμένες φορές αναφέρονται σαν - μια ενισχυμένη εναλλακτική λύση για περιβάλλοντα chroot - , είναι ένα ισχυρό εργαλείο για διαχειριστές συστημάτων, αλλά - η βασική τους χρήση μπορεί να επίσης να είναι χρήσιμη σε προχωρημένους + Το κεφάλαιο αυτό εξηγεί τι είναι τα jails (φυλακές) του &os; και + πως χρησιμοποιούνται. Τα jails, που αναφέρονται ορισμένες φορές σαν + μια ενισχυμένη εναλλακτική λύση για περιβάλλοντα chroot, + είναι ένα ισχυρό εργαλείο για διαχειριστές συστημάτων, αλλά + η βασική τους χρήση μπορεί επίσης να είναι χρήσιμη σε προχωρημένους χρήστες. Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε: - Τι είναι το jail και τι σκοπό μπορεί να εξυπηρετήσει σε + Τι είναι ένα jail και τι σκοπό μπορεί να εξυπηρετήσει σε εγκαταστάσεις &os;. Πως να φτιάξετε, να εκκινήσετε, και να σταματήσετε ένα jail. - Τα βασικά της διαχείρισης του jail, τόσο μέσα, όσο και έξω + Τα βασικά της διαχείρισης ενός jail, τόσο μέσα, όσο και έξω από αυτό. Άλλες πηγές χρήσιμων πληροφοριών σχετικά με τα jails είναι: Η σελίδα manual του &man.jail.8;. Περιέχει πλήρη αναφορά - του βοηθητικού προγράμματος jail — + του βοηθητικού προγράμματος jail — του διαχειριστικού εργαλείου που μπορεί να χρησιμοποιηθεί στο &os; - για την εκκίνηση, διακοπή και έλεγχο των jails. + για την εκκίνηση, διακοπή, και έλεγχο των jails. Οι λίστες ταχυδρομείου και τα αρχεία τους. Τα αρχεία από την - &a.questions.name; και άλλες λίστες που εξυπηρετούνται από τον + &a.questions; και άλλες λίστες που εξυπηρετούνται από τον &a.mailman.lists; περιέχουν πλήρη οδηγό για τα jails. Είναι πάντοτε ενδιαφέρον να ψάχνετε τα αρχεία ή να δημοσιεύετε νέες ερωτήσεις στη λίστα &a.questions.name;. - - Terms Related to Jails + Όροι των Jails - To facilitate better understanding of parts of the &os; system - related to jails, their internals and the way they interact with - the rest of &os;, the following terms are used further in this - chapter: + Για να κατανοήσετε καλύτερα το πως οι εσωτερικές λειτουργίες του + &os; σχετίζονται με τα jails και πως αυτές αλληλεπιδρούν με τα υπόλοιπα + μέρη του &os;, θα χρησιμοποιήσουμε εκτενώς τους παρακάτω όρους: - &man.chroot.2; (command) + &man.chroot.2; (εντολή) - A system call of &os;, which changes the root directory of a - process and all its descendants. + Μια κλήση συστήματος (system call) του &os;, η οποία αλλάζει + τον γονικό κατάλογο (root directory) μιας διεργασίας και όλων των + άλλων διεργασιών που εξαρτώνται από αυτή. - &man.chroot.2; (environment) + &man.chroot.2; (περιβάλλον) - The environment of processes running in - a chroot. This includes resources such as the part - of the file system which is visible, user and group IDs which are - available, network interfaces and other IPC mechanisms, - etc. + Το περιβάλλον μια διεργασίας που τρέχει μέσα σε ένα + chroot. Αυτό περιλαμβάνει πόρους όπως το τμήμα + του συστήματος αρχείων που είναι ορατό, τα ID του χρήστη και της + ομάδας που είναι διαθέσιμα, καθώς και τις διεπαφές δικτύου + (network interfaces), τους μηχανισμούς IPC κλπ. + - &man.jail.8; (command) + &man.jail.8; (εντολή) - The system administration utility which allows launching of - processes within a jail environment. + Το πρόγραμμα που σας επιτρέπει να διαχειρίζεστε το σύστημα + σας και να ξεκινάτε διεργασίες σε περιβάλλον jail. + - host (system, process, user, etc.) + host (σύστημα (system), διεργασία (process), χρήστης (user), + κλπ.) - The controlling system of a jail environment. The host system - has access to all the hardware resources available, and can - control processes both outside of and inside a jail environment. - One of the important differences of the host system from a jail is - that the limitations which apply to superuser processes inside a - jail are not enforced for processes of the host system. + Το φυσικό σύστημα που φιλοξενεί και ελέγχει ένα περιβάλλον + jail. Το host system έχει πρόσβαση σε όλο το διαθέσιμο υλικό, + και μπορεί να ελέγξει διεργασίες τόσο μέσα όσο και έξω από το + περιβάλλον του jail. Μία από τις σημαντικότερες διαφορές μεταξύ + του host system και του jail είναι ότι οι περιορισμοί που + εφαρμόζονται στις διεργασίες του χρήστη root μέσα στο περιβάλλον + jail, δεν ισχύουν για τις διεργασίες στο host system. - hosted (system, process, user, etc.) + hosted (σύστημα (system), διεργασία (process), χρήστης (user), + κλπ.) - A process, user or other entity, whose access to resources is - restricted by an &os; jail. + Μια διεργασία, ένας χρήστης ή κάποια άλλη οντότητα, του + οποίου η πρόσβαση στους πόρους του συστήματος περιορίζεται μέσα + από ένα jail. - Introduction - - Since system administration is a difficult and perplexing - task, many powerful tools were developed to make life easier for - the administrator. These tools mostly provide enhancements of some sort - to the way systems are installed, configured and maintained. - Part of the tasks which an administrator is - expected to do is to properly configure the security of a system, - so that it can continue serving its real purpose, without allowing - security violations. - - One of the tools which can be used to enhance the security of - a &os; system are jails. Jails were - introduced in &os; 4.X by &a.phk;, but were greatly improved in - &os; 5.X to make them a powerful and flexible subsystem. Their - development still goes on, enhancing their usefulness, performance, reliability, - and security. + Εισαγωγή + + Μια και η διαχείριση ενός συστήματος μπορεί να είναι δύσκολη και + περίπλοκη, αναπτύχθηκαν αρκετά εργαλεία τα οποία μπορούν να κάνουν τη + ζωή ενός διαχειριστή πολύ πιο εύκολη. Τα εργαλεία αυτά προσφέρουν + κάποιες πρόσθετες δυνατότητες όσο αφορά τον τρόπο εγκατάστασης, + ρύθμισης και συντήρησης ενός συστήματος. Μια από τις εργασίες που + αναμένεται να εκτελέσει κάθε διαχειριστής συστήματος, είναι να ρυθμίσει + σωστά την ασφάλεια του συστήματος, προκειμένου να προσφέρει τις + υπηρεσίες για τις οποίες έχει προγραμματιστεί, χωρίς να επιτρέπει + συμβιβασμούς στην ασφάλεια. + + + Ένα από τα εργαλεία που μπορούν να ενισχύσουν την ασφάλεια ενός + συστήματος &os; είναι τα jails. Τα Jails + πρωτοεμφανίστηκαν στο &os; 4.X από τον &a.phk;, αλλά βελτιώθηκαν + πολύ περισσότερο στην έκδοση &os; 5.X, προκειμένου να προσφέρουν + περισσότερες δυνατότητες και να είναι περισσότερο ευέλικτα. Η ανάπτυξή + τους συνεχίζεται ακόμη, με βελτιώσεις στους τομείς της ευχρηστίας, της + απόδοσης, της αξιοπιστίας και της ασφάλειας που πρέπει να παρέχουν. + - What is a Jail - - BSD-like operating systems have had &man.chroot.2; since the - time of 4.2BSD. The &man.chroot.8; utility can be used to - change the root directory - of a set of processes, creating a safe environment, separate - from the rest of the system. Processes created in the chrooted - environment can not access files or resources outside of it. - For that reason, compromising a service running in a chrooted - environment should not allow the attacker to compromise the - entire system. The &man.chroot.8; utility is good for easy - tasks, which do not require a lot of flexibility or complex and - advanced features. Since the inception of the - chroot concept, however, many ways have been found to escape from a - chrooted environment and, although they have been fixed in - modern versions of the &os; kernel, it was clear that - &man.chroot.2; was not the ideal solution for securing services. - A new subsystem had to be implemented. - - This is one of the main reasons why - jails were developed. - - Jails improve on the concept of the traditional - &man.chroot.2; environment, in several ways. In a traditional - &man.chroot.2; environment, processes are only limited in the - part of the file system they can access. The rest of the system - resources (like the set of system users, the running processes, - or the networking subsystem) are shared by the chrooted - processes and the processes of the host system. Jails expand - this model by virtualizing not only access to the file system, - but also the set of users, the networking subsystem of the &os; - kernel and a few other things. A more complete set of - fine-grained controls available for tuning the access of a - jailed environment is described in . - - A jail is characterized by four elements: + Τι Είναι Ένα Jail + + Τα λειτουργικά συστήματα τύπου BSD, παρείχαν το &man.chroot.2; από + την εποχή του 4.2BSD. Η εντολή &man.chroot.8; μπορεί να + χρησιμοποιηθεί για να αλλάξει τον γονικό κατάλογο μιας ομάδας + διεργασιών, δημιουργώντας ένα ασφαλές περιβάλλον, ξεχωριστό από το + υπόλοιπο σύστημα. Όσες διεργασίες δημιουργούνται σε έναν τέτοιο + περιβάλλον, δεν έχουν πρόσβαση σε αρχεία και πόρους έξω από αυτό. + Για αυτό το λόγο, αν μια υπηρεσία τρέχει μέσα σε ένα τέτοιο + περιβάλλον, και κάποιος εισβολέας καταφέρει να διεισδύσει σε αυτή, δε + θα του επιτραπεί η πρόσβαση στο υπόλοιπο σύστημα. + Η εντολή &man.chroot.8; είναι πολύ καλή για απλές εργασίες οι οποίες + δε χρειάζονται να είναι πολύ ευέλικτες ή να διαθέτουν πολύπλοκα και + προηγμένα χαρακτηριστικά. Ωστόσο, από την αρχή της ιδέας του chroot, + βρέθηκαν αρκετοί τρόποι για να μπορέσει κάποιος να ξεφύγει από το + περιβάλλον αυτό. Παρ' όλο που έχουν διορθωθεί πολλά σφάλματα στις + πρόσφατες εκδόσεις του πυρήνα του &os;, ήταν ξεκάθαρο ότι η + &man.chroot.2; δεν ήταν η ιδανική λύση για την ασφάλιση υπηρεσιών. + Έπρεπε να υλοποιηθεί ένα νέο υποσύστημα. + + Αυτός είναι ένας από τους κύριους λόγους για την ανάπτυξη των + jails. + + Τα jails βελτίωσαν με διάφορους τρόπους την ιδέα του παραδοσιακού + περιβάλλοντος του &man.chroot.2;. Στο τυπικό περιβάλλον του + &man.chroot.2;, οι διεργασίες περιορίζονται μόνος ως προς το μέρος + του συστήματος αρχείων όπου μπορούν να έχουν πρόσβαση. Οι υπόλοιποι + πόροι του συστήματος (όπως οι χρήστες, οι τρέχοντες διεργασίες, το + υποσύστημα δικτύωσης) είναι κοινόχρηστοι μεταξύ των διεργασιών του + περιβάλλοντος chroot και των διεργασιών του host system. Τα jails + επεκτείνουν αυτό το μοντέλο, με την εικονικοποίηση όχι μόνο της + πρόσβασης στο σύστημα αρχείων, αλλά επίσης των χρηστών, του + υποσυστήματος δικτύωσης του πυρήνα του &os; και μερικών ακόμη + πραγμάτων. Περισσότερα για τις διαθέσιμες εντολές που μπορούν να + χρησιμοποιηθούν για τη ρύθμιση και τον έλεγχο ενός περιβάλλοντος jail + μπορείτε να βρείτε στο . + + Το Jail έχει τέσσερα κύρια στοιχεία: - A directory subtree — the starting point from - which a jail is entered. Once inside the jail, a process - is not permitted to escape outside of this subtree. - Traditional security issues which plagued the original - &man.chroot.2; design will not affect &os; jails. + Έναν κατάλογο με δική του δομή — το αρχικό σημείο + στο οποίο εισέρχεται ένα jail. Από τη στιγμή που μια διεργασία + βρίσκεται μέσα σε ένα jail, δεν επιτρέπεται να βγει έξω από τον + κατάλογο αυτό. Τα προβλήματα που ταλαιπωρούσαν τον σχεδιασμό του + &man.chroot.2; δεν επηρεάζουν τα jails του &os;. - A hostname — the hostname which will be used - within the jail. Jails are mainly used for hosting network - services, therefore having a descriptive hostname for each - jail can really help the system administrator. + Ένα hostname (όνομα συστήματος) — το hostname το οποίο + θα χρησιμοποιηθεί μέσα στο jail. Τα jails χρησιμοποιούνται + κυρίως για την εξυπηρέτηση δικτυακών υπηρεσιών, + επομένως η ύπαρξη ενός χαρακτηριστικού hostname που να + περιγράφει ταυτόχρονα και τη χρήση του, μπορεί να βοηθήσει αρκετά + τον διαχειριστή συστήματος. - An IP address — this will be - assigned to the jail and cannot be changed in any way during - the jail's life span. The IP address of a jail is usually an alias address - for an existing network interface, but this is not strictly necessary. + Μια διεύθυνση IP — αυτή η διεύθυνση + αντιστοιχεί σε ένα jail και δεν μπορεί να αλλάξει κατά τη + διάρκεια της ζωής του. Η διεύθυνση IP ενός jail είναι συνήθως + μία διεύθυνση τύπου alias για μια ήδη υπάρχουσα διεπαφή δικτύου + (network interface), αλλά κάτι τέτοιο δεν είναι απαραίτητο. - A command — the path name of an executable to run - inside the jail. This is relative to the root directory of - the jail environment, and may vary a lot, depending on the - type of the specific jail environment. + Μία εντολή — η διαδρομή προς ένα εκτελέσιμο το οποίο θα + εκτελείται μέσα στο jail. Η διαδρομή αυτή είναι σχετική ως προς + τον γονικό κατάλογο του περιβάλλοντος του jail, και μπορεί να + διαφέρει πολύ από jail σε jail ανάλογα με το συγκεκριμένο + περιβάλλον. - Apart from these, jails can have their own set of users and - their own root user. Naturally, the powers - of the root user are limited within the - jail environment and, from the point of view of the host system, - the jail root user is not an omnipotent user. - In addition, the root user of a jail is not - allowed to perform critical operations to the system outside of - the associated &man.jail.8; environment. More information - about capabilities and restrictions of the - root user will be discussed in below. + Εκτός αυτών, τα jails μπορούν να έχουν τις δικές τους ομάδες + χρηστών και τον δικό τους χρήστη root. Φυσικά, ο + έλεγχος που έχει ο χρήστης root του jail, + περιορίζεται μέσα στο περιβάλλον του jail, και από την + οπτική γωνία του host system, ο χρήστης αυτός δεν είναι παντοδύναμος. + Επιπλέον, ο χρήστης root του jail, δεν μπορεί + να εκτελέσει κρίσιμες εργασίες στο σύστημα έξω από το περιβάλλον του + &man.jail.8;. Περισσότερες πληροφορίες σχετικά με τις δυνατότητες και + τους περιορισμούς του root θα βρείτε στο + . - Creating and Controlling Jails + Δημιουργώντας και Ελέγχοντας Jails - Some administrators divide jails into the following two types: - complete jails, which resemble a real &os; system, - and service jails, dedicated to one application or - service, possibly running with privileges. This is only a - conceptual division and the process of building a jail is not - affected by it. The &man.jail.8; manual page is quite clear about - the procedure for building a jail: + Μερικοί διαχειριστές συστημάτων κατηγοριοποιούν τα jails σε δύο + ενότητες: τα complete (πλήρη) jails, τα οποία μιμούνται + ένα πραγματικό σύστημα &os;, και τα service jails, τα + οποία χρησιμοποιούνται για μια εφαρμογή ή υπηρεσία, που πιθανόν + εκτελείται με ειδικά προνόμια. Αυτός είναι ένας νοητικός διαχωρισμός + και δεν επιδρά στη διαδικασία δημιουργίας ενός jail. Η σελίδα manual + του &man.jail.8; περιέχει κατατοπιστικές πληροφορίες για τη διαδικασία + δημιουργίας ενός jail: &prompt.root; setenv D /here/is/the/jail &prompt.root; mkdir -p $D &prompt.root; cd /usr/src &prompt.root; make world DESTDIR=$D -&prompt.root; cd etc/ This step -is not required on &os; 6.0 and later. +&prompt.root; cd etc/ Το βήμα αυτό δεν +απαιτείται από το &os; 6.0 και μετά. &prompt.root; make distribution DESTDIR=$D &prompt.root; mount_devfs devfs $D/dev - Selecting a location for a jail is the best starting point. - This is where the jail will physically reside within the file system of the jail's host. - A good choice can be /usr/jail/jailname, - where jailname is the hostname - identifying the jail. The /usr/ file system usually has - enough space for the jail file system, which for complete jails is, essentially, - a replication of every file present in a default installation - of the &os; base system. + Ο καλύτερος τρόπος για να ξεκινήσετε είναι με την επιλογή μιας + θέσης (διαδρομής) για το jail σας. Εκεί θα βρίσκονται αποθηκευμένα + τα αρχεία του jail όσο αφορά το σύστημα σας. Μια καλή ιδέα είναι + το /usr/jail/jailname, + όπου jailname το hostname με το οποίο θα + αναγνωρίζεται το jail. Το σύστημα αρχείων + /usr/ έχει συνήθως αρκετό χώρο + για το σύστημα αρχείων του jail, το οποίο, για ένα + complete jail είναι ουσιαστικά + ένας κλώνος κάθε αρχείου του βασικού συστήματος μια προεπιλεγμένης + εγκατάστασης του &os;. - This command will populate the directory subtree chosen - as jail's physical location on the file system with the - necessary binaries, libraries, manual pages and so on. - Everything is done in the typical &os; style — first - everything is built/compiled, then installed to the - destination path. + Η εντολή αυτή θα εμπλουτίσει τον κατάλογο που επιλέξατε για το + jail με όλα τα απαραίτητα αρχεία, βιβλιοθήκες, σελίδες βοήθειας κλπ. + Όλα γίνονται με τον τυπικό τρόπο του &os; — αρχικά + τα πάντα μεταγλωττίζονται και στη συνέχεια εγκαθίστανται στη + διαδρομή που έχετε επιλέξει. - The distribution target for - make installs every needed - configuration file. In simple words, it installs every installable file of - /usr/src/etc/ to the - /etc directory of the jail - environment: - $D/etc/. + Το distribution target του + make εγκαθιστά όλα τα αρχεία ρυθμίσεων + που απαιτούνται. Με απλά λόγια, εγκαθιστά κάθε αρχείο από το + /usr/src/etc/ στον κατάλογο + /etc του περιβάλλοντος + jail: $D/etc/. - Mounting the &man.devfs.8; file system inside a jail is - not required. On the other hand, any, or almost any - application requires access to at least one device, depending - on the purpose of the given application. It is very important - to control access to devices from inside a jail, as improper - settings could permit an attacker to do nasty things in the - jail. Control over &man.devfs.8; is managed through rulesets - which are described in the &man.devfs.8; and - &man.devfs.conf.5; manual pages. + Δε χρειάζεται να προσαρτήσετε το &man.devfs.8; στο περιβάλλον + του jail. Από την άλλη όμως, όλες, ή σχεδόν όλες οι εφαρμογές + χρειάζονται πρόσβαση σε τουλάχιστον μία συσκευή, αναλόγως με τον + σκοπό της εφαρμογής. Είναι πολύ σημαντικό να ελέγχεται η πρόσβαση + στις συσκευές μέσα σε ένα jail, καθώς λανθασμένες ρυθμίσεις + μπορεί να επιτρέψουν σε κάποιον εισβολέα να κάνει + άσχημα παιχνίδια μέσα στο jail. + Ο έλεγχος του &man.devfs.8; γίνεται μέσω ενός συνόλου κανόνων οι + οποίοι περιγράφονται στις σελίδες manual του &man.devfs.8; και του + &man.devfs.conf.5;. - Once a jail is installed, it can be started by using the - &man.jail.8; utility. The &man.jail.8; utility takes four - mandatory arguments which are described in the . Other arguments may be - specified too, e.g., to run the jailed process with the credentials of a specific - user. The argument depends on - the type of the jail; for a virtual system, - /etc/rc is a good choice, since it will - replicate the startup sequence of a real &os; system. For a - service jail, it depends on the service or - application that will run within the jail. - - Jails are often started at boot time and the &os; - rc mechanism provides an easy way to do - this. + Από την στιγμή που έχει εγκατασταθεί ένα jail, μπορεί να εκκινηθεί + με τη χρήση της εντολής &man.jail.8;. Η &man.jail.8; δέχεται τέσσερις + υποχρεωτικές παραμέτρους οι οποίες περιγράφονται στο + . Μπορείτε να δώσετε και άλλες παραμέτρους, + π.χ., για να εκτελέσετε μια διεργασία στο περιβάλλον του jail με τις + άδειες ενός συγκεκριμένου χρήστη. + Η παράμετρος + εξαρτάται από τον τύπο του jail. Για ένα + εικονικό σύστημα, το /etc/rc + είναι μια καλή επιλογή, μια και στην ουσία θα κλωνοποιήσει + την διαδικασία εκκίνησης ενός πραγματικού συστήματος &os;. Για ένα + service jail, η παράμετρος εξαρτάται από την + υπηρεσία ή την εφαρμογή που θα τρέχει μέσα στο jail. + + Τα jails συνήθως ξεκινούν κατά την εκκίνηση και ο μηχανισμός + rc του &os; παρέχει έναν εύκολο τρόπο για να γίνει + κάτι τέτοιο. - A list of the jails which are enabled to start at boot - time should be added to the &man.rc.conf.5; file: + Η λίστα με τα jails που θέλετε να ξεκινάνε κατά την εκκίνηση θα + πρέπει να προστεθούν στο αρχείο &man.rc.conf.5;: jail_enable="YES" # Set to NO to disable starting of any jails jail_list="www" # Space separated list of names of jails - For each jail listed in jail_list, a - group of &man.rc.conf.5; settings, which describe the - particular jail, should be added: + Για κάθε jail που υπάρχει στο jail_list, θα + πρέπει να προστεθεί μια ομάδα από ρυθμίσεις στο &man.rc.conf.5;, οι + οποίες θα το περιγράφουν: jail_www_rootdir="/usr/jail/www" # jail's root directory jail_www_hostname="www.example.org" # jail's hostname jail_www_ip="192.168.0.10" # jail's IP address jail_www_devfs_enable="YES" # mount devfs in the jail jail_www_devfs_ruleset="www_ruleset" # devfs ruleset to apply to jail - The default startup of jails configured in - &man.rc.conf.5;, will run the /etc/rc - script of the jail, which assumes the jail is a complete - virtual system. For service jails, the default startup - command of the jail should be changed, by setting the - jail_jailname_exec_start - option appropriately. + Η προεπιλεγμένη εκκίνηση του jail μέσω του + &man.rc.conf.5;, θα ξεκινήσει το script του jail + /etc/rc, το οποίο υποθέτει ότι το jail είναι + ένα ολοκληρωμένο εικονικό σύστημα. Για service jails, η + προεπιλεγμένη εκκίνηση πρέπει να αλλάξει, ορίζοντας κατάλληλα την + επιλογή jail_jailname_exec_start. - For a full list of available options, please see the - &man.rc.conf.5; manual page. + Για πλήρη λίστα των διαθέσιμων επιλογών, δείτε το + &man.rc.conf.5;. - The /etc/rc.d/jail script can be used to - start or stop a jail by hand, if an entry for it exists in + Το script /etc/rc.d/jail μπορεί να + χρησιμοποιηθεί για να ξεκινήσει ή να σταματήσει κάποιο jail + χειροκίνητα. Πρέπει όμως να υπάρχει η αντίστοιχη καταχώρηση στο rc.conf: &prompt.root; /etc/rc.d/jail start www &prompt.root; /etc/rc.d/jail stop www - A clean way to shut down a &man.jail.8; is not available at - the moment. This is because commands normally used to accomplish - a clean system shutdown cannot be used inside a jail. The best - way to shut down a jail is to run the following command from - within the jail itself or using the &man.jexec.8; utility from - outside the jail: + Για την ώρα δεν υπάρχει κάποιος απόλυτα σωστός τρόπος για να + τερματίσετε κάποιο &man.jail.8;. Αυτό συμβαίνει, διότι οι εντολές + που χρησιμοποιούνται συνήθως για να τερματίσουν με ασφάλεια ένα + σύστημα, δεν μπορούν να χρησιμοποιηθούν μέσα στο περιβάλλον ενός jail. + Ο καλύτερος τρόπος για να τερματίσετε ένα jail είναι με την εκτέλεση + της ακόλουθης εντολής μέσα από το ίδιο το jail ή με χρήση του + βοηθητικού προγράμματος &man.jexec.8; έξω από αυτό: + &prompt.root; sh /etc/rc.shutdown - More information about this can be found in the &man.jail.8; - manual page. + Περισσότερες πληροφορίες σχετικά με αυτή τη διαδικασία μπορείτε να + βρείτε στη σελίδα βοηθείας του &man.jail.8; - Fine Tuning and Administration + Λεπτομερής Ρύθμιση και Διαχείριση - There are several options which can be set for any jail, and - various ways of combining a host &os; system with jails, to produce - higher level applications. This section presents: + Υπάρχουν αρκετές επιλογές που μπορούν να εφαρμοστούν σε ένα jail, + καθώς και διάφοροι τρόποι για να συνδυαστεί ένα σύστημα &os; με jails + προκειμένου να παράγουν εφαρμογές υψηλότερου επιπέδου. Η ενότητα αυτή + παρουσιάζει: + - Some of the options available for tuning the behavior and - security restrictions implemented by a jail - installation. + Μερικές από τις διαθέσιμες επιλογές για την ρύθμιση της + συμπεριφοράς και των περιορισμών ασφαλείας που υλοποιούνται από την + εγκατάσταση ενός jail. + - Some of the high-level applications for jail management, - which are available through the &os; Ports Collection, and can - be used to implement overall jail-based solutions. + Μερικές εφαρμογές υψηλού επιπέδου για τη διαχείριση jails, + οι οποίες είναι διαθέσιμες μέσω της συλλογής των Ports του &os; και + μπορούν να χρησιμοποιηθούν στην υλοποίηση ολοκληρωμένων λύσεων με + τη χρήση jails. - System tools for jail tuning in &os; - - Fine tuning of a jail's configuration is mostly done by - setting &man.sysctl.8; variables. A special subtree of sysctl - exists as a basis for organizing all the relevant options: the - security.jail.* hierarchy of &os; kernel - options. Here is a list of the main jail-related sysctls, - complete with their default value. Names should be - self-explanatory, but for more information about them, please - refer to the &man.jail.8; and &man.sysctl.8; manual - pages. + Εργαλεία συστήματος του &os; για τη ρύθμιση jails + + Λεπτομερής ρύθμιση ενός jail γίνεται κατά κύριο λόγο μέσω των + μεταβλητών του &man.sysctl.8;. Υπάρχει ένα ειδικό subtree του sysctl + το οποίο αποτελεί τη βάση για την οργάνωση όλων των σχετικών + επιλογών: πρόκειται για την ιεραρχία επιλογών πυρήνα + security.jail.*. Παρακάτω θα βρείτε μια λίστα με + τα κύρια sysctl που σχετίζονται με κάποιο jail καθώς και τις + προεπιλεγμένες τιμές τους. Τα ονόματα μάλλον εξηγούν από μόνα τους + την αντίστοιχη λειτουργία, αλλά για περισσότερες πληροφορίες μπορείτε + να δείτε τις σελίδες βοήθειας των &man.jail.8; και &man.sysctl.8;. + security.jail.set_hostname_allowed: 1 security.jail.socket_unixiproute_only: 1 security.jail.sysvipc_allowed: 0 security.jail.enforce_statfs: 2 security.jail.allow_raw_sockets: 0 security.jail.chflags_allowed: 0 security.jail.jailed: 0 - These variables can be used by the system administrator of - the host system to add or remove some of - the limitations imposed by default on the - root user. Note that there are some - limitations which cannot be removed. The - root user is not allowed to mount or - unmount file systems from within a &man.jail.8;. The - root inside a jail may not load or unload - &man.devfs.8; rulesets, set firewall rules, or do many other - administrative tasks which require modifications of in-kernel - data, such as setting the securelevel of the - kernel. - - The base system of &os; contains a basic set of tools for - viewing information about the active jails, and attaching to a - jail to run administrative commands. The &man.jls.8; and - &man.jexec.8; commands are part of the base &os; system, and can be used - to perform the following simple tasks: + Οι μεταβλητές αυτές μπορούν να χρησιμοποιηθούν από τον + διαχειριστή του host system + προκειμένου να προσθέσει ή να αφαιρέσει περιορισμούς οι οποίοι + υπάρχουν αρχικά στον χρήστη root. Υπάρχουν όμως + και κάποιοι περιορισμοί οι οποίοι δεν μπορούν να αφαιρεθούν. + Ο χρήστης root δεν επιτρέπεται να προσαρτά ή να + απο-προσαρτά συστήματα αρχείων μέσα από ένα &man.jail.8;. Ο + root μέσα σε ένα jail δεν επιτρέπεται να + φορτώσει ή να αποφορτώσει τους κανόνες (rulesets) του &man.devfs.8;, + το firewall, και διάφορες άλλες εργασίες διαχείρισης οι οποίες + χρειάζονται τροποποίηση των δεδομένων του πυρήνα, όπως για παράδειγμα + ο ορισμός του securelevel του πυρήνα. + + Το βασικό σύστημα του &os; περιέχει τα βασικά εργαλεία για τη + προβολή πληροφοριών σχετικά με τα ενεργά jails, και επίσης για την + ανάθεση συγκεκριμένων εντολών διαχείρισης σε κάποιο jail. Οι εντολές + &man.jls.8; και &man.jexec.8; αποτελούν μέρος του βασικού συστήματος + του &os;, και μπορούν να χρησιμοποιηθούν για να τις παρακάτω απλές + εργασίες: - Print a list of active jails and their corresponding - jail identifier (JID), - IP address, hostname and path. + Προβολή λίστας των ενεργών jails και τον αντίστοιχων + χαρακτηριστικών τους - jail identifier (JID), + διεύθυνση IP, hostname και path. - Attach to a running jail, from its host system, and run - a command inside the jail or perform administrative tasks inside the - jail itself. This is especially useful when the - root user wants to cleanly shut down a - jail. The &man.jexec.8; utility can also be used to start a - shell in a jail to do administration in it; for - example: + Προσκόλληση σε κάποιο ενεργό jail, από το host system, και + εκτέλεση κάποιας εντολής μέσα στο jail ή εκτέλεση εργασιών + διαχείρισης μέσα στο jail. Κάτι τέτοιο είναι ιδιαίτερα χρήσιμο + όταν ο χρήστης root επιθυμεί να τερματίσει + με ασφάλεια κάποιο jail. Μπορεί επίσης να χρησιμοποιηθεί η εντολή + &man.jexec.8; για την εκτέλεση κάποιου shell μέσα στο jail + προκειμένου να εκτελεστούν εργασίες διαχείρισης, για παράδειγμα: + &prompt.root; jexec 1 tcsh - High-level administrative tools in &os; Ports - Collection - - Among the many third-party utilities for jail administration, - one of the most complete and useful is sysutils/jailutils. It is a set of - small applications that contribute to &man.jail.8; management. - Please refer to its web page for more information. + Εργαλεία διαχείρισης υψηλού επιπέδου στη συλλογή Ports του &os; + + + Ανάμεσα στις διάφορες εφαρμογές τρίτων κατασκευαστών για τη + διαχείριση των jails, ένα από τα ποιο ολοκληρωμένα και χρήσιμα πακέτα + είναι το sysutils/jailutils. + Αποτελεί ένα σύνολο μικρών εφαρμογών + οι οποίες συνεισφέρουν στη διαχείριση του &man.jail.8;. Για + περισσότερες πληροφορίες, δείτε στον δικτυακό του τόπο. - Application of Jails + Εφαρμογή των Jails Daniel Gerzo - Contributed by + Συνεισφορά του Service Jails - This section is based upon an idea originally presented by - &a.simon; at , and an - updated article written by Ken Tom - locals@gmail.com. This section illustrates how - to set up a &os; system that adds an additional layer of - security, using the &man.jail.8; feature. It is also assumed - that the given system is at least running RELENG_6_0 and the - information provided earlier in this chapter has been well - understood. + Η ενότητα αυτή είναι βασισμένη στην ιδέα που παρουσιάστηκε αρχικά + από τον &a.simon; στο , καθώς και σε + ένα ανανεωμένο άρθρο του Ken Tom locals@gmail.com. + Στην ενότητα αυτή θα σας δείξουμε πως να στήσετε ένα σύστημα &os; το + οποίο να διαθέτει ένα επιπλέον επίπεδο ασφάλειας, με τη χρήση του + &man.jail.8;. Υποθέτουμε ότι το σύστημα τρέχει τουλάχιστον RELENG_6_0 + και ότι έχετε κατανοήσει όλες τις προηγούμενες πληροφορίες του + κεφαλαίου. - Design + Σχεδιασμός - One of the major problems with jails is the management of - their upgrade process. This tends to be a problem because - every jail has to be rebuilt from scratch whenever it is - updated. This is usually not a problem for a single jail, - since the update process is fairly simple, but can be quite - time consuming and tedious if a lot of jails are - created. + Ένα από τα σημαντικότερα προβλήματα με τα jails είναι η + διαχείριση της διαδικασίας αναβαθμίσεων. Αυτό τείνει να είναι + πρόβλημα διότι το κάθε jail πρέπει να δημιουργηθεί από την αρχή σε + κάθε αναβάθμιση. Συνήθως δεν είναι πρόβλημα αν έχετε ένα μόνο jail, + μια και πρόκειται για σχετικά απλή διαδικασία, αλλά γίνεται + κουραστική και χρονοβόρα αν έχετε πολλά jails. - This setup requires advanced experience with &os; and - usage of its features. If the presented steps below look - too complicated, it is advised to take a look at a simpler - system such as sysutils/ezjail, which provides - an easier method of administering &os; jails and is not as - sophisticated as this setup. + Οι παρακάτω ρυθμίσεις προϋποθέτουν εμπειρία με το &os; και τη + χρήση των διάφορων χαρακτηριστικών του. Εάν τα παρακάτω βήματα + σας φαίνονται πολύ περίπλοκα, είναι καλύτερα να ρίξετε μια ματιά + σε κάτι ποιο απλό όπως το + sysutils/ezjail, το οποίο + παρέχει έναν ευκολότερο τρόπο διαχείρισης των jails του &os; και + δεν είναι τόσο εξειδικευμένο όσο οι παρακάτω ρυθμίσεις. + - This idea has been presented to resolve such issues by - sharing as much as is possible between jails, in a safe way - — using read-only &man.mount.nullfs.8; mounts, so that - updating will be be simpler, and putting single services into - individual jails will become more attractive. Additionally, - it provides a simple way to add or remove jails as well as a - way to upgrade them. + Η ιδέα αυτή έχει παρουσιαστεί για να λύσει τέτοιου είδους + προβλήματα, με την βοήθεια της κοινής χρήσης όσο το δυνατόν + περισσότερων αρχείων μεταξύ των jails, με έναν ασφαλή + όμως τρόπο — χρησιμοποιώντας προσαρτήσεις τύπου + &man.mount.nullfs.8; και μόνο για ανάγνωση (read only) + έτσι ώστε η αναβάθμιση να είναι ευκολότερη, και η χρήση μεμονωμένων + jails για κάθε υπηρεσία να καθίσταται επιθυμητή. Επιπλέον, παρέχει + έναν απλό τρόπο για να προσθέσετε και να αφαιρέσετε jails όπως + επίσης και να τα αναβαθμίσετε. + - Examples of services in this context are: an - HTTP server, a DNS - server, a SMTP server, and so forth. + Παραδείγματα υπηρεσιών τέτοιου τύπου: ένας + HTTP server, ένας DNS + server, ένας SMTP server, κλπ. - The goals of the setup described in this section - are: + Οι στόχοι των παρακάτω ρυθμίσεων είναι: - Create a simple and easy to understand jail structure. - This implies not having to run a full - installworld on each and every jail. + Δημιουργία απλών και κατανοητών jails. + Αυτό σημαίνει ότι δεν θα τρέξουμε ένα + πλήρες installworld σε κάθε jail. - Make it easy to add new jails or remove existing - ones. + Εύκολη προσθήκη και διαγραφή jails. - Make it easy to update or upgrade existing - jails. + Εύκολη αναβάθμιση υπαρχόντων jails. - Make it possible to run a customized &os; - branch. + Δυνατότητα δημιουργίας προσαρμοσμένου τμήματος του &os;. + - Be paranoid about security, reducing as much as - possible the possibility of compromise. + Όσο περισσότερη ασφάλεια είναι δυνατόν, με ελαχιστοποίηση + της πιθανότητας κακόβουλης χρήσης. - Save space and inodes, as much as possible. + Εξοικονόμηση χώρου και inodes. - As it has been already mentioned, this design relies - heavily on having a single master template which is read-only - (known as nullfs) mounted into each - jail and one read-write device per jail. A device can be a - separate physical disc, a partition, or a vnode backed - &man.md.4; device. In this example, we will use read-write - nullfs mounts. + Όπως έχουμε ήδη πει, ο σχεδιασμός αυτός εξαρτάται ιδιαίτερα από + την ύπαρξη ενός αρχικού template στο οποίο δεν επιτρέπεται η + εγγραφή δεδομένων (γνωστό ως nullfs) και + το οποίο πρέπει να έχει προσαρτηθεί σε κάθε jail, όπως επίσης και + στην ύπαρξη για κάθε jail μιας συσκευής που να επιτρέπει τόσο την + ανάγνωση όσο και την εγγραφή. Μια τέτοια συσκευή μπορεί να είναι + κάποιος ξεχωριστός φυσικός δίσκος, μια κατάτμηση, ή κάποια συσκευή + vnode &man.md.4;. Στο παρακάτω παράδειγμα, θα χρησιμοποιήσουμε + προσαρτήσεις τύπου nullfs στις οποίες + θα επιτρέπεται εγγραφή και ανάγνωση. - The file system layout is described in the following - list: + Η δομή του συστήματος αρχείων περιγράφεται στην παρακάτω + λίστα: - Each jail will be mounted under the /home/j directory. + Κάθε jail θα προσαρτάται κάτω από τον κατάλογο /home/j. - /home/j/mroot is - the template for each jail and the read-only partition for - all of the jails. + Το /home/j/mroot + είναι το template για το κάθε jail και η κατάτμηση μόνο + ανάγνωσης για όλα τα jails. - A blank directory will be created for each jail under - the /home/j - directory. + Θα δημιουργηθεί ένας κενός κατάλογος για κάθε jail κάτω + από τον κατάλογο /home/j. + - Each jail will have a /s directory, that will be - linked to the read-write portion of the system. + Κάθε jail θα έχει έναν κατάλογο + /s, ο οποίος θα είναι + σύνδεσμος προς το εγγράψιμο μέρος του συστήματος. - Each jail shall have its own read-write system that is - based upon /home/j/skel. + Κάθε jail θα έχει το δικό εγγράψιμο μέρος το οποίο + θα βασίζεται στο + /home/j/skel. - Each jailspace (read-write portion of each jail) shall - be created in /home/js. + Κάθε jailspace (το εγγράψιμο μέρος κάθε jail) θα πρέπει + να δημιουργηθεί στον κατάλογο + /home/js. - This assumes that the jails are based under the - /home partition. This - can, of course, be changed to anything else, but this change - will have to be reflected in each of the examples - below. + Όλα αυτά προϋποθέτουν ότι τα jails βρίσκονται κάτω από τον + κατάλογο /home. Αυτό βέβαια + μπορεί να αλλάξει σε οτιδήποτε εσείς θέλετε, αλλά θα επηρεάσει + όλα τα παρακάτω παραδείγματα. - Creating the Template - - This section will describe the steps needed to create the - master template that will be the read-only portion for the - jails to use. - - It is always a good idea to update the &os; system to the - latest -RELEASE branch. Check the corresponding Handbook - Chapter - to accomplish this task. In the case the update is not - feasible, the buildworld will be required in order to be able - to proceed. Additionally, the sysutils/cpdup package will be - required. We will use the &man.portsnap.8; utility to - download the &os; Ports Collection. The Handbook Portsnap Chapter - is always good reading for newcomers. + Δημιουργώντας το Template + + Η ενότητα αυτή θα περιγράψει τα βήματα που χρειάζονται + προκειμένου να δημιουργήσετε το πρωταρχικό template το οποίο θα + περιέχει το τμήμα των jails που είναι μόνο για ανάγνωση. + + Είναι πάντοτε καλή ιδέα να αναβαθμίζετε το &os; στη τελευταία + έκδοση -RELEASE. Για το σκοπό αυτό, διαβάστε το αντίστοιχο + κεφάλαιο + στο Εγχειρίδιο. Στη περίπτωση που η αναβάθμιση + δεν είναι εφικτή, θα χρειαστείτε buildworld για να μπορέσετε να + συνεχίσετε. Επιπλέον θα χρειαστείτε το πακέτο + sysutils/cpdup. Θα + χρησιμοποιήσουμε το βοηθητικό πρόγραμμα &man.portsnap.8; για να + κατεβάσουμε τη συλλογή των Ports. Για τους νεο-εισερχόμενους, + συνίσταται η ανάγνωση του κεφαλαίου για το Portsnap + στο Εγχειρίδιο του &os;. - First, create a directory structure for the read-only - file system which will contain the &os; binaries for our - jails, then change directory to the &os; source tree and - install the read-only file system to the jail - template: + Αρχικά, δημιουργήστε μια δομή καταλόγων για το σύστημα + αρχείων το οποίο θα είναι μόνο για ανάγνωση, και το οποίο θα + περιέχει τα εκτελέσιμα (binaries) του &os; για τα jails. + Στη συνέχεια πηγαίνετε στον κατάλογο όπου βρίσκονται τα αρχεία + πηγαίου κώδικα (source tree) του &os; και + εγκαταστήστε τα αντίστοιχα αρχεία στο jail template: &prompt.root; mkdir /home/j /home/j/mroot &prompt.root; cd /usr/src &prompt.root; make installworld DESTDIR=/home/j/mroot - Next, prepare a &os; Ports Collection for the jails as - well as a &os; source tree, which is required for - mergemaster: + Επόμενο βήμα είναι να προετοιμάσετε τη συλλογή των Ports + του &os; για τα jails όπως επίσης και ένα &os; source tree, το + οποίο θα χρειαστεί για το + mergemaster: &prompt.root; cd /home/j/mroot &prompt.root; mkdir usr/ports &prompt.root; portsnap -p /home/j/mroot/usr/ports fetch extract &prompt.root; cpdup /usr/src /home/j/mroot/usr/src - Create a skeleton for the read-write portion of the - system: + Δημιουργήστε το σκελετό για το τμήμα του συστήματος όπου + προορίζεται για ανάγνωση και εγγραφή: &prompt.root; mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles &prompt.root; mv etc /home/j/skel &prompt.root; mv usr/local /home/j/skel/usr-local &prompt.root; mv tmp /home/j/skel &prompt.root; mv var /home/j/skel &prompt.root; mv root /home/j/skel - Use mergemaster to install - missing configuration files. Then get rid of the extra - directories that mergemaster - creates: + Χρησιμοποιήστε το mergemaster + για να εγκαταστήσετε τα αρχεία ρυθμίσεων που λείπουν. Στη + συνέχεια διαγράψτε όλους τους έξτρα καταλόγους + που δημιουργεί το mergemaster: &prompt.root; mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i &prompt.root; cd /home/j/skel &prompt.root; rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev - Now, symlink the read-write file system to the - read-only file system. Please make sure that the symlinks - are created in the correct s/ locations. Real - directories or the creation of directories in the wrong - locations will cause the installation to fail. + Τώρα, δημιουργήστε συνδέσμους από το σύστημα αρχείων στο + οποίο επιτρέπεται η εγγραφή, προς το σύστημα αρχείων που είναι + μόνο για ανάγνωση. Βεβαιωθείτε ότι οι σύνδεσμοι έχουν + δημιουργηθεί στις σωστές θέσεις s/. Η ύπαρξη πραγματικών καταλόγων + ή η δημιουργία καταλόγων σε λάθος θέσεις θα οδηγήσουν την + εγκατάσταση σε αποτυχία. &prompt.root; cd /home/j/mroot &prompt.root; mkdir s &prompt.root; ln -s s/etc etc &prompt.root; ln -s s/home home &prompt.root; ln -s s/root root &prompt.root; ln -s ../s/usr-local usr/local &prompt.root; ln -s ../s/usr-X11R6 usr/X11R6 &prompt.root; ln -s ../../s/distfiles usr/ports/distfiles &prompt.root; ln -s s/tmp tmp &prompt.root; ln -s s/var var - As a last step, create a generic - /home/j/skel/etc/make.conf with its - contents as shown below: + Σαν τελευταίο βήμα, δημιουργήστε ένα γενικό αρχείο + /home/j/skel/etc/make.conf με τα παρακάτω + δεδομένα: WRKDIRPREFIX?= /s/portbuild - Having WRKDIRPREFIX set up this - way will make it possible to compile &os; ports inside - each jail. Remember that the ports directory is part of - the read-only system. The custom path for - WRKDIRPREFIX allows builds to be done - in the read-write portion of every jail. + Έχοντας ορίσει το WRKDIRPREFIX με + αυτόν τον τρόπο, θα μπορείτε να μεταγλωττίσετε ports του &os; + μέσα σε κάθε jail. Θυμηθείτε ότι ο κατάλογος των ports είναι + μέρος του συστήματος αρχείων που έχει προσαρτηθεί μόνο για + ανάγνωση. Η προσαρμοσμένη διαδρομή για το + WRKDIRPREFIX επιτρέπει την μεταγλώττιση + των ports στο εγγράψιμο μέρος του κάθε jail. - Creating Jails + Δημιουργώντας Jails - Now that we have a complete &os; jail template, we can - setup and configure the jails in - /etc/rc.conf. This example demonstrates - the creation of 3 jails: NS, - MAIL and WWW. + Τώρα που έχουμε ένα ολοκληρωμένο &os; jail template, μπορούμε να + εγκαταστήσουμε και να ρυθμίσουμε τα jails στο + /etc/rc.conf. Το παράδειγμα αυτό δείχνει + τη δημιουργία τριών jails: NS, + MAIL και WWW. - Put the following lines into the - /etc/fstab file, so that the - read-only template for the jails and the read-write space - will be available in the respective jails: + Εισάγετε τις παρακάτω γραμμές στο αρχείο + /etc/fstab, ώστε το μόνο για ανάγνωση + template για τα jails και ο εγγράψιμος χώρος + να είναι διαθέσιμα στα αντίστοιχα jails: /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 - Partitions marked with a 0 pass number are not - checked by &man.fsck.8; during boot, and partitions - marked with a 0 dump number are not backed up by - &man.dump.8;. We do not want - fsck to check - nullfs mounts or - dump to back up the read-only - nullfs mounts of the jails. This is why they are marked - with 0 0 in the last two columns of - each fstab entry above. + Οι κατατμήσεις που είναι σημειωμένες με 0 pass number δεν + ελέγχονται κατά την εκκίνηση από το &man.fsck.8;, ενώ για τις + κατατμήσεις με 0 dump number, η &man.dump.8; δεν θα + δημιουργεί αντίγραφα ασφαλείας. Προφανώς, δεν θέλουμε το + fsck να ελέγχει τις προσαρτήσεις + τύπου nullfs, ούτε και το + dump να κρατά αντίγραφα από τα + μόνο για ανάγνωση nullfs συστήματα αρχείων των jails. Αυτός + είναι και ο λόγος που βάλαμε 0 0 στις δύο + τελευταίες στήλες κάθε εγγραφής του + fstab. - Configure the jails in + Ρυθμίστε τα jails στο /etc/rc.conf: 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" + + Ο λόγος για τον οποίο θέτουμε τη μεταβλητή + jail_name_rootdir να + δείχνει στο /usr/home αντί για + το /home είναι ότι η φυσική + διαδρομή για τον κατάλογο /home + σε μια τυπική εγκατάσταση του &os; είναι το + /usr/home. Η μεταβλητή + jail_name_rootdir + δεν δεν πρέπει να δείχνει προς διαδρομή που + περιλαμβάνει συμβολικό δεσμό, διαφορετικά τα jails θα αρνηθούν να + ξεκινήσουν. Χρησιμοποιήστε το βοηθητικό πρόγραμμα &man.realpath.1; + για να προσδιορίσετε την τιμή που θα πρέπει να λάβει αυτή η + μεταβλητή. Δείτε το &os;-SA-07:01.jail Security Advisory για + περισσότερες πληροφορίες. + - Create the required mount points for the read-only - file system of each jail: + Δημιουργήστε τα απαραίτητα σημεία προσαρτήσεων για το + σύστημα αρχείων μόνο ανάγνωσης του κάθε jail: &prompt.root; mkdir /home/j/ns /home/j/mail /home/j/www - Install the read-write template into each jail. Note - the use of sysutils/cpdup, which helps to - ensure that a correct copy is done of each - directory: + Εγκαταστήστε το εγγράψιμο template μέσα στο κάθε jail. + Προσέξτε εδώ τη χρήση του + sysutils/cpdup, το οποίο + επιβεβαιώνει ότι δημιουργείται το σωστό αντίγραφο του κάθε + καταλόγου: &prompt.root; mkdir /home/js &prompt.root; cpdup /home/j/skel /home/js/ns &prompt.root; cpdup /home/j/skel /home/js/mail &prompt.root; cpdup /home/j/skel /home/js/www - In this phase, the jails are built and prepared to - run. First, mount the required file systems for each - jail, and then start them using the - /etc/rc.d/jail script: + Σε αυτή τη φάση, τα jails έχουν δημιουργηθεί και είναι + έτοιμα να ξεκινήσουν. Προσαρτήστε το σωστό σύστημα αρχείων + για το κάθε jail, και στη συνέχεια εκκινήστε τα, + χρησιμοποιώντας το script /etc/rc.d/jail: + &prompt.root; mount -a &prompt.root; /etc/rc.d/jail start - + - The jails should be running now. To check if they have - started correctly, use the &man.jls.8; command. Its output - should be similar to the following: + Τα jails θα πρέπει τώρα να εκτελούνται κανονικά. Γα να ελέγξετε + αν έχουν ξεκινήσει σωστά, χρησιμοποιείστε την εντολή &man.jls.8;. + Θα πρέπει να δείτε κάτι αντίστοιχο με το παρακάτω: &prompt.root; jls 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 - At this point, it should be possible to log onto each - jail, add new users or configure daemons. The - JID column indicates the jail - identification number of each running jail. Use the - following command in order to perform administrative tasks in - the jail whose JID is 3: + Σε αυτό το σημείο, θα πρέπει να μπορείτε να συνδεθείτε σε κάθε + jail, να προσθέσετε νέους χρήστες ή να ρυθμίσετε υπηρεσίες. Η στήλη + JID δηλώνει το χαρακτηριστικό αναγνωριστικό + αριθμό κάθε ενεργού jail. Χρησιμοποιήστε την παρακάτω εντολή + προκειμένου να εκτελέσετε εργασίες διαχείρισης του jail, με + JID 3: &prompt.root; jexec 3 tcsh - Upgrading - - In time, there will be a need to upgrade the system to a - newer version of &os;, either because of a security issue, or - because new features have been implemented which are useful - for the existing jails. The design of this setup provides an - easy way to upgrade existing jails. Additionally, it - minimizes their downtime, as the jails will be brought down - only in the very last minute. Also, it provides a way to roll - back to the older versions should any problems occur. + Αναβάθμιση + + Κάποια στιγμή, θα χρειαστεί να αναβαθμίσετε το σύστημά σας σε + μια νέα έκδοση του &os;, είτε για λόγους ασφάλειας, είτε γιατί + υπάρχουν νέες δυνατότητες στην νεώτερη έκδοση οι οποίες είναι + χρήσιμες για τα jails που ήδη έχετε. Ο τρόπος που χρησιμοποιήσαμε + για την δημιουργία των jails, επιτρέπει την εύκολη αναβάθμιση τους. + Επιπλέον, ελαχιστοποιεί το χρόνο διακοπής της λειτουργίας τους, μια + και θα χρειαστεί να τα σταματήσετε μόνο κατά τα λίγα τελευταία + λεπτά. Επίσης, παρέχει έναν τρόπο να επιστρέψετε σε παλαιότερες + εκδόσεις εάν προκύψουν οποιαδήποτε σφάλματα. + - The first step is to upgrade the host system in the - usual manner. Then create a new temporary read-only - template in /home/j/mroot2. + Το πρώτο βήμα είναι να αναβαθμίσετε το σύστημα στο οποίο + φιλοξενούνται τα jails, με το συνήθη τρόπο. Στη συνέχεια + δημιουργήστε ένα νέο προσωρινό template κατάλογο, μόνο για + ανάγνωση, στο + /home/j/mroot2. &prompt.root; mkdir /home/j/mroot2 &prompt.root; cd /usr/src &prompt.root; make installworld DESTDIR=/home/j/mroot2 &prompt.root; cd /home/j/mroot2 &prompt.root; cpdup /usr/src usr/src &prompt.root; mkdir s - The installworld run creates - a few unnecessary directories, which should be - removed: + Το installworld δημιουργεί + μερικούς καταλόγους που δε χρειάζονται, και θα πρέπει + να διαγραφούν: &prompt.root; chflags -R 0 var &prompt.root; rm -R etc var root usr/local tmp - Recreate the read-write symlinks for the master file - system: + Δημιουργήστε ξανά τους συνδέσμους για το σύστημα αρχείων + ανάγνωσης - εγγραφής: &prompt.root; ln -s s/etc etc &prompt.root; ln -s s/root root &prompt.root; ln -s s/home home &prompt.root; ln -s ../s/usr-local usr/local &prompt.root; ln -s ../s/usr-X11R6 usr/X11R6 &prompt.root; ln -s s/tmp tmp &prompt.root; ln -s s/var var - The right time to stop the jails is now: + Τώρα είναι η σωστή στιγμή για να σταματήσετε τα jails: + &prompt.root; /etc/rc.d/jail stop - Unmount the original file systems: + Αποπροσαρτήστε τα αρχικά συστήματα αρχείων: &prompt.root; umount /home/j/ns/s &prompt.root; umount /home/j/ns &prompt.root; umount /home/j/mail/s &prompt.root; umount /home/j/mail &prompt.root; umount /home/j/www/s &prompt.root; umount /home/j/www - The read-write systems are attached to the read-only - system (/s) and - must be unmounted first. + Τα συστήματα αρχείων ανάγνωσης - εγγραφής είναι + προσαρτημένα στο σύστημα αρχείων μόνο ανάγνωσης + (/s) και πρέπει να + είναι τα πρώτα που θα αποπροσαρτηθούν. - Move the old read-only file system and replace it with - the new one. This will serve as a backup and archive of the - old read-only file system should something go wrong. The - naming convention used here corresponds to when a new - read-only file system has been created. Move the original - &os; Ports Collection over to the new file system to save - some space and inodes: + Μετακινήστε τον παλιό μόνο για ανάγνωση κατάλογο, και + αντικαταστήστε τον με τον καινούργιο. Ο παλιός θα παραμείνει ως + αντίγραφο ασφαλείας του παλιού συστήματος σε περίπτωση + προβλήματος. Ο τρόπος ονομασίας που ακολουθήσαμε εδώ + αντιστοιχεί στη χρονική στιγμή δημιουργίας του νέου συστήματος + αρχείων μόνο ανάγνωσης. Μετακινήστε την αρχική συλλογή των Ports + του &os; στο νέο σύστημα, αρχείων προκειμένου να εξοικονομήσετε + χώρο και inodes: &prompt.root; cd /home/j &prompt.root; mv mroot mroot.20060601 &prompt.root; mv mroot2 mroot &prompt.root; mv mroot.20060601/usr/ports mroot/usr - At this point the new read-only template is ready, so - the only remaining task is to remount the file systems and - start the jails: + Σε αυτό το σημείο το μόνο για ανάγνωση template είναι + έτοιμο, οπότε το μόνο που απομένει είναι να προσαρτήσετε ξανά + τα συστήματα αρχείων και να ξεκινήσετε τα jails: &prompt.root; mount -a &prompt.root; /etc/rc.d/jail start - Use &man.jls.8; to check if the jails started correctly. - Do not forget to run mergemaster in each jail. The - configuration files will need to be updated as well as the - rc.d scripts. + Χρησιμοποιείτε την εντολή &man.jls.8; για να ελέγξετε εάν τα + jails ξεκίνησαν σωστά. Μην ξεχάσετε να εκτελέσετε το mergemaster + για το κάθε jail. Θα χρειαστεί να αναβαθμίσετε τόσο τα αρχεία + ρυθμίσεων, όσο και τα rc.d scripts. + +