Εισαγωγή στο Webmin

dimitris | Δευ, 07/09/2012 - 15:25 | 25' | 2

Μάθετε να χειρίζεστε ένα από καλύτερα προγράμματα για να ρυθμίζετε το Linuxάκι σας απομακρυσμένα με ευκολία!

Του Δημοσθένη Κόπτση

Οι παλιοί χρήστες θα θυμούνται ότι στο παρελθόν η ρύθμιση της λειτουργίας ενός υπολογιστή με λειτουργικό σύστημα Linux δεν ήταν και τόσο εύκολη υπόθεση. Η αρχιτεκτονική των λειτουργικών συστημάτων της οικογένειας POSIX (στα οποία ανήκει και το GNU/Linux) προσφέρει έναν άμεσο τρόπο ρύθμισης όλων των εφαρμογών και του υλικού του υπολογιστή μέσω επεξεργασίας συγκεκριμένων αρχείων κειμένου, δηλαδή των αρχείων ρύθμισης (configuration files) για την εφαρμογή ή για το υλικό του υπολογιστή. Έτσι με την χρήση ενός λογαριασμού root και την επεξεργασία των κατάλληλων αρχείων, απευθείας ή μέσω εντολών του κελύφους, μπορούμε να ρυθμίσουμε για παράδειγμα τον Χ server ή τον Apache, τον DNS server, την κάρτα δικτύου κτλ. Η αρχιτεκτονική αυτή απαιτεί όμως κάποιες γνώσεις, όπως ποια είναι τα αρχεία ρύθμισης κάθε εφαρμογής, ποια είναι η σύνταξη του κάθε αρχείου, ποιες εντολές από το κέλυφος χειρίζονται τα αρχεία αυτά, ποια η σύνταξη των εντολών κοκ. Η ύπαρξη δε μικρών παραλλαγών στα αρχεία αυτά από διανομή σε διανομή και η αλλαγή τους από έκδοση σε έκδοση κάθε εφαρμογής αποτελεί έναν επιπλέον παράγοντα δυσκολίας για τον administrator ή τον απλό home user που εκτελεί χρέη διαχειριστή για τον προσωπικό του οικιακό υπολογιστή. Επομένως, η ανάγκη ενός κέντρου ελέγχου (control panel) το οποίο θα μπορεί να λειτουργεί σε κάθε διανομή Linux και να υποστηρίζει ποικίλες εκδόσεις εφαρμογών είναι εμφανής. Την ανάγκη αυτή έρχεται να καλύψει το Webmin!

Το Webmin είναι ένα ενιαίο control panel που δίνει την δυνατότητα απομακρυσμένης ρύθμισης του υπολογιστή μας μέσω ενός web περιβάλλοντος. Έχει αναπτυχθεί σε Perl 5 και τρέχει σε δικό του web server με έναν αριθμό CGI εφαρμογών. Αυτό το τελευταίο χαρακτηριστικό το κάνει ιδανικό για ρύθμιση απομακρυσμένων μηχανημάτων και γι' αυτό μπορεί να χρησιμοποιηθεί σε virtual και dedicated servers. Χρησιμοποιώντας οποιοδήποτε browser ο οποίος υποστηρίζει πίνακες, φόρμες, Java για τα applet, μπορείτε να δημιουργείτε και να διαχειρίζεστε λογαριασμούς χρηστών, τον Apache web server, τον DNS server, να έχετε διαμοιρασμό αρχείων κτλ. Η λειτουργία του Webmin είναι επεκτάσιμη μέσω ενός συστήματος modules που μπορούν να προστεθούν επιπλέον στην βασική εφαρμογή.

Βασικός developer του Webmin είναι ο Jamie Cameron, ενώ γύρω από το έργο έχει αναπτυχθεί μια κοινότητα η οποία προσέφερε patches, μεταφράσεις και φυσικά προτάσεις για την εφαρμογή. Υπάρχουν επίσης και developers που έχουν συμβάλει στην ανάπτυξη third-party modules τα οποία δίνουν ακόμα περισσότερες δυνατότητες στην εφαρμογή.

Όλες οι πρόσφατες εκδόσεις του Webmin διατίθενται υπό την άδεια BSD-like, το οποίο σημαίνει ότι μπορεί να διανέμεται ελεύθερα και να τροποποιείται για εμπορικούς ή μη σκοπούς. Επειδή το Webmin υποστηρίζει την φιλοσοφία των modules οποιοσδήποτε μπορεί να αναπτύξει και να διαμείνει τα δικά του modules για το Webmin για οποιοδήποτε σκοπό με οποιαδήποτε άδεια όπως GPL, commercial ή shareware.

Η τελευταία έκδοση του Webmin υποστηρίζει 91 λειτουργικά συστήματα! Ενδεικτικά αναφέρουμε τα: CentOS, Cygwin, Debian, FreeBSD, Gentoo, HP/UX, IBM AIX, LinuxPPC, Mac OS X, Mandriva, NetBSD, OpenBSD, Oracle Enterprise Linux, Oracle VM, PCLinuxos, Playstation, Redhat Enterprise Linux, SCO OpenServer, Slackware, Sun Java Desktop System, Sun Solaris, openSUSE, Ubuntu, Windows, Yellow Dog...

Εγκατάσταση

Η εγκατάσταση του Webmin μπορεί να γίνει είτε από το tarball (webmin-1.550.tar.gz) είτε από πακέτο RPM (webmin-1.550-1.noarch.rpm) ή DEB (webmin_1.550_all.deb), που είναι διαθέσιμα στο site του έργου. Επίσης, διατίθεται πακέτο zip (webmin-1.550.zip) για Windows, και (webmin-1.550.pkg.gz) πακέτο για το Solaris.

Μετά την εγκατάσταση μπορούμε να ανοίξουμε το web browser μας στην σελίδα https://localhost:10000 όπου θα μας ζητηθεί να συνδεθούμε με τα στοιχεία του λογαριασμού root. Για τον λόγο αυτό σε συστήματα, όπως το Ubuntu, όπου ο λογαριασμός του root είναι απενεργοποιημένος θα πρέπει να τον ενεργοποιήσουμε.

Η πρώτη σελίδα (εικόνα 1) που εμφανίζεται μετά τη σύνδεση μας δίνει γενικές πληροφορίες για το σύστημα μας όπως το όνομα του, το λειτουργικό σύστημα, την έκδοση του Webmin, την ημερομηνία, τον πυρήνα και τον επεξεργαστή, το uptime του συστήματος (πόσο χρόνο είναι ανοικτό), τις διεργασίες που τρέχουν, το μέσο φόρτο του επεξεργαστή, τη διαθέσιμη μνήμη καθώς και το χώρο στο δίσκο και τις διαθέσιμες ενημερώσεις πακέτων. Στο αριστερό μέρος της σελίδας υπάρχει το κεντρικό μενού με τις ενότητες των ρυθμίσεων σε μορφή δένδρου όπως: Webmin, System , Servers , Others , Networking, Hardware, Cluster , Un-used Modules.

Οι ενότητες των ρυθμίσεων

Ας δούμε τώρα τι ρυθμίσεις περιλαμβάνει κάθε ενότητα. Στην κατηγορία Webmin έχουμε τις εξής επιλογές:
Backup Configuration Files: από εδώ μπορούμε να πάρουμε αντίγραφα ασφαλείας των ρυθμίσεων των modules του Webmin. Η αποθήκευση τους μπορεί να γίνει σε τοπικό φάκελο, σε FTP server, σε απομακρυσμένο φάκελο μέσω SSH server, ή να γίνει download του αρχείου από τον browser. Μπορούν να προγραμματιστούν backup σε συγκεκριμένες ημέρες και ώρες και επίσης από το ίδιο σημείο να γίνει η επαναφορά τους στο Webmin.
Change Language and Theme: σε αυτή τη σελίδα μπορούμε να αλλάξουμε την γλώσσα και το γραφικό θέμα του Webmin.
Webmin Actions Log: από εδώ μπορούμε να παρακολουθήσουμε τις καταγραφές (logs) των ενεργειών που γίνονται μέσω της εφαρμογής στο σύστημα.
Webmin Configuration: εδώ ρυθμίζουμε το εύρος των IP που θα συνδέονται με το control panel, την θύρα στην οποία θα ακούει ο web server του webmin, τα αρχεία καταγραφής των ενεργειών που θα γίνονται, διάφορες ρυθμίσεις για την εμφάνιση της σελίδας (skin κτλ), να εγκαταστήσουμε modules ή να καταργήσουμε ορισμένα, την γλώσσα της εφαρμογής κτλ.
Webmin Servers Index: εδώ μπορούμε να καθορίσουμε μια λίστα με άλλους webmin servers.
Webmin Users: στην σελίδα αυτή ορίζουμε τους χρήστες που θα έχουν πρόσβαση στο control panel. Σημειώστε ότι οι χρήστες μπορεί να είναι ίδιοι με τους χρήστες του συστήματος ή διαφορετικοί.

Στην κατηγορία System έχουμε τα εξής επιλογές:
Bootup and Shutdown: εδώ μας δίνεται η δυνατότητα εκκίνησης ή διακοπής των υπηρεσιών (services). Μπορούμε ακόμη να δημιουργήσουμε νέο service ή να διαγράψουμε κάποιο υπάρχον. Για κάθε service έχουμε τις επιλογές εκκίνησης, διακοπής, εκκίνησης στο boot, εκκίνησης τώρα και στο boot, κοκ καθώς και επανεκκίνησης ή κλεισίματος του συστήματος.
Change Passwords: στην σελίδα αυτή εμφανίζεται η λίστα των χρηστών του συστήματος και με επιλογή ενός χρήστη μεταβαίνουμε στην σελίδα αλλαγής του κωδικού του.
Disk and Network Filesystems: εδώ εμφανίζεται η έξοδος της εντολής mount. Μπορούμε να επιλέξουμε κάποιο σύστημα αρχείων (file system) που είναι προσαρτημένο και στην επόμενη σελίδα να κάνουμε κάποιες εργασίες σε αυτό όπως: προσάρτηση, αποπροσάρτηση, έλεγχος στο boot, καθώς και να ορίσουμε παραμέτρους για την προσάρτησή του όπως μόνο για ανάγνωση (Read-only), να επιτρέπεται ή όχι η εκτέλεση των binary αρχείων, να επιτρέπεται η όχι η προσάρτηση από απλούς χρήστες, να ενημερώνεται ή όχι η ημερομηνία τελευταίας πρόσβασης στα αρχεία, να επιτρέπεται ή όχι η εκτέλεση setuid προγραμμάτων (δηλαδή να το τρέχετε ως ιδιοκτήτης του αρχείου) κοκ.
Filesystem Backup: στην σελίδα (εικόνα 2) αυτή μπορούμε να κάνουμε backup ένα φάκελο με πλήθος παραμέτρων όπως συμπίεση αρχείων, παράκαμψη αρχείων και φακέλων, «σπάσιμο» σε πολλαπλά αρχεία, χρονοπρογραμματισμός κλπ.


Log File Rotation, στην σελίδα αυτή ρυθμίζουμε το χρονοδιάγραμμα του rotation των αρχείων καταγραφής (log files). Στο Linux,η καταγραφή των συμβάντων δεν γίνεται συνεχώς στο ίδιο αρχείο αλλά εφαρμόζεται κάποιου είδους εναλλαγή, με διαγραφή των πολύ παλιών αρχείων από κάποιο σημείο και μετά.
MIME Type Programs: εδώ ρυθμίζουμε τα mime types του συστήματος. Μπορούμε να επιλέξουμε αν θα είναι enable, Handler program, Display output in terminal Yes/No, Description κτλ
PAM Authentication: εδώ ρυθμίζουμε το Authentication του συστήματος και συγκεκριμένα τα λεγόμενα PAM services.
Running Processes: στην σελίδα αυτή μπορούμε να δούμε τις διεργασίες του συστήματος ανά PID, χρήστη, χρήση μνήμης και επεξεργαστή ή να αναζητήσουμε κάποια διεργασία. Σε κάθε διεργασία μπορούμε να στείλουμε κάποιο signal π.χ. για να την τερματίσουμε η να την κάνουμε kill.
Scheduled Commands: στην σελίδα αυτή μπορούμε να προγραμματίσουμε να τρέξει μια εντολή σε συγκεκριμένη χρονική στιγμή.
Scheduled Cron Jobs: από εδώ ρυθμίζουμε τις χρονοπρογραμματιζόμενες διεργασίες του cron. Μπορούμε να δημιουργήσουμε ένα cron job ως κάποιος χρήστης, να το ενεργοποιήσουμε ή όχι και να ορίσουμε κάθε πότε θα τρέχει.
Software Package Updates: στην σελίδα αυτή μπορούμε να ενημερώσουμε το ήδη εγκατεστημένο λογισμικό του υπολογιστή μας.
Software Packages: από εδώ μπορούμε να εγκαταστήσουμε ένα πακέτο deb το οποίο βρίσκεται αποθηκευμένο σε κάποιο φάκελο στο σύστημα μας.
System Documentation: εδώ μπορούμε να αναζητήσουμε και να διαβάσουμε τεκμηρίωση (man pages) του συστήματος μας.
System Logs: από το σημείο αυτό μπορούμε να δούμε τα log files του συστήματος μας.
Users and Groups: στην σελίδα αυτή μπορούμε να διαχειριστούμε τους λογαριασμούς των χρηστών στο σύστημα.

Στην ενότητα Servers εμφανίζονται ρυθμίσεις, ανάλογα με το ποιους servers έχουμε εγκατεστημένους στο σύστημα. Ενδεικτικά:
Apache Webserver: σε αυτή τη σελίδα (εικόνα 3) διαχειριζόμαστε τον Apache server, αν το μηχάνημα λειτουργεί ως διακομιστής ιστοσελίδων. Μπορούμε να τον εκκινήσουμε ή να τον σταματήσουμε καθώς και να δημιουργήσουμε να διαγράψουμε και να διαχειριστούμε virtual hosts μέσα από ένα πλήθος ρυθμίσεων.


BIND DNS Server: στην σελίδα αυτή (εικόνα 4) μπορούμε να ρυθμίσουμε τον Domain Name Server και τα zone files με τα domain μας, στην περίπτωση που έχουμε στήσει DNS.


MySQL Database Server: εδώ μπορούμε να ρυθμίσουμε τον MySQL Server για βάσεις δεδομένων. Μπορούμε να ρυθμίσουμε κάθε βάση αλλά και κάθε πίνακα χωριστά, να ορίσουμε χρήστες και δικαιώματα κοκ.
Read User Mail: στην σελίδα αυτή έχουμε πρόσβαση στα γραμματοκιβώτια όλων των χρηστών του συστήματος.
SSH Server: εδώ ρυθμίζουμε τον SSH server, πως θα γίνεται η πρόσβαση, από ποιους υπολογιστές κοκ.
Samba Windows File Sharing: σε αυτήν την σελίδα θα βρούμε όλες τις απαραίτητες επιλογές για να ρυθμίσουμε τον Samba server για να έχουμε σε αυτόν τον υπολογιστή κοινόχρηστους φακέλους, οι οποίοι θα είναι προσβάσιμοι μέσω δικτύου.
Sendmail Mail Server: από εδώ (εικόνα 5) ρυθμίζουμε τον mail server του συστήματος (Sendmail). Το web interface είναι ιδιαίτερα φιλικό και εύκολο.

Στην κατηγορία Others έχουμε τις εξής υποενότητες:

Command Shell: στην σελίδα αυτή εμφανίζεται μια φόρμα από την οποία μπορούμε να τρέξουμε απευθείας εντολές τερματικού στον απομακρυσμένο υπολογιστή.
Custom Commands: από εδώ μπορούμε να δημιουργούμε εντολές με παραμέτρους έτοιμες να τρέξουν απλά με ένα κλικ.
File Manager: το Webmin προσφέρει ένα applet το οποίο είναι ένας γραφικός διαχειριστής αρχείων για το σύστημα μας. Σε αυτήν την σελίδα φορτώνεται αυτό το applet (εικόνα 6) και με αυτό μπορούμε να κάνουμε όλες τις τυπικές εργασίες στα αρχεία του συστήματος όπως αντιγραφή, επικόλληση, διαγραφή, αλλαγή δικαιωμάτων, λήψη, αποστολή, κοκ.


HTTP Tunnel: από αυτή τη σελίδα μπορούμε να δημιουργήσουμε HTTP Tunnels. Με την σελίδα αυτή προβάλουμε embeded σελίδες μέσα στο webmin.
PHP Configuration: στην σελίδα αυτή γίνονται όλες οι ρυθμίσεις της PHP για το σύστημα μας.
Perl Modules: από εδώ μπορούμε να δούμε την λίστα των εγκατεστημένων Perl modules και αν θέλουμε να εγκαταστήσουμε νέα modules.
Protected Web Directories: στην σελίδα αυτή μπορούμε να δημιουργήσουμε προστατευμένους φακέλους. Στην ουσία πρόκειται για τα αρχεία .htaccess του Apache.
SSH Login: στην σελίδα αυτή φορτώνεται το ssh applet του Webmin. Πρόκειται για έναν ssh client που μας επιτρέπει να έχουμε τερματικό μέσα στον browser!
System and Server Status: στην σελίδα αυτή εμφανίζεται μια λίστα με όλους τους διαθέσιμους servers και την κατάσταση τους. Από εδώ βλέπουμε αν ο NFS Server, Extended Internet Server, PostgreSQL Database Server, Sendmail Server, Apache Webserver και άλλοι είναι online ή όχι.
Upload and Download: από την σελίδα αυτή μπορούμε να κατεβάσουμε σελίδες από το Διαδίκτυο, να ανεβάσουμε ή να κατεβάσουμε αρχεία και φακέλους στον server...

Στην ενότητα Networking έχουμε τα εξής επιλογές:

Bandwidth Monitoring: από εδώ μπορούμε να λάβουμε αναφορές ανά ημερομηνία για την κίνηση της κάρτας δικτύου.
Linux Firewall: στην σελίδα αυτή (εικόνα 7) μπορούμε να διαχειριστούμε το firewall του συστήματος. Μπορούμε να ορίσουμε την default πολιτική των chains INPUT, FORWARD, OUTPUT σε Accept, Drop, Userspace, Exit chain. Επίσης μπορούμε να προσθέσουμε κανόνες σε κάθε chain.


NIS Client and Server: στην σελίδα αυτή γίνονται οι ρυθμίσεις για τον NIS server & client. Το NIS είναι μια υπηρεσία η οποία προσφέρει σε κάθε χρήστη του δικτύου το ίδιο περιβάλλον εργασίας χωρίς την ανάγκη ύπαρξης του συστήματος στο δίκτυο στο οποίο ο χρήστης κάνει login. Για παράδειγμα εάν ένας NIS server είναι σε λειτουργία σε ένα σύστημα και έχει ρυθμιστεί να κρατά τους λογαριασμούς χρηστών οι χρήστες μπορούν να κάνουν login στους λογαριασμούς τους με τον client NIS από οποιοδήποτε σύστημα και να έχουν την αίσθηση ότι έχουν κάνει login στον τοπικό τους μηχάνημα.
Network Configuration: από την σελίδα αυτή ρυθμίζουμε την κάρτα δικτύου, τη δρομολόγηση (routing) και τα gateways, το δικτυακό όνομα του υπολογιστή (hostname), τους DNS servers που θα χρησιμοποιεί για την πρόσβαση στο web, και τις διευθύνσεις διάφορων hosts.
Network Services and ProtocolsQ από την σελίδα αυτή ρυθμίζουμε την συμπεριφορά των Internet services του inetd.
PPTP VPN Client: στην σελίδα αυτή μπορούμε να δημιουργήσουμε PPTP tunnels.
TCP Wrappers: εδώ διαχειριζόμαστε το access control list (ACL) των TCP Wrappers.

Στην ενότητα Hardware έχουμε τα εξής υποενότητες:

CD Burner: από εδώ έχουμε πρόσβαση στο CD/DVD και μάλισταα μπορούμε να γράψουμε από απόσταση ISO αρχεία σε δισκάκια CD/DVD.
Partitions on Local Disks: από εδώ γίνεται η διαχείριση των κατατμήσεων (partitions) των δίσκων του συστήματος. Σε δίσκους που δεν είναι mounted μπορούμε να δημιουργήσουμε, διαγράψουμε και να κάνουμε format τα partitions τους.
Printer Administration: στην σελίδα αυτή εμφανίζονται οι διαθέσιμοι εκτυπωτές του συστήματος και όλες οι ρυθμίσεις τους (drivers, είδος χαρτιού, είδος εκτύπωσης, ποιότητα, κλπ).
System Time: από εδώ μπορούμε να ρυθμίσουμε την ημερομηνία του συστήματος, το timezone, ενώ υπάρχουν και ρυθμίσεις για συγχρονισμό με κάποιο Network Time Protocl (NTP) server.

Τέλος, στην ενότητα Cluster έχουμε τις εξής επιλογές:
Cluster Change Passwords, για αλλαγή των κωδικών του cluster.
Cluster Copy Files, για αντιγραφή αρχείων.
Cluster Cron Jobs, για την διαχείριση των προγραμματισμένων εργασιών.
Cluster Shell Commands, για τις εντολές τερματικού.
Cluster Software Packages, για την διαχείριση των πακέτων λογισμικού.
Cluster Usermin Servers, όπου γίνεται η καταγραφή των Usermin servers. Το Usermin είναι ένα web based control panel για τους χρήστες του συστήματος. Οι χρήστες μπορούν να έχουν webmail, password changing, mail filters, fetchmail κτλ.
Cluster Users and Groups, για την διαχείριση των χρηστών και των ομάδων.
Cluster Webmin Servers, για την διαχείριση πολλαπλών webmin servers.

Στην ιστοσελίδα του Webmin μπορείτε να βρείτε ακόμα: το Usermin το οποίο όπως αναφέρθηκε είναι ένα πάνελ ελέγχου για κάθε χρήστη του συστήματος, το Virtualmin, για την διαχείριση πολλαπλών virtual hosts με ένα ενιαίο περιβάλλον όπως αυτά των εμπορικών Plesk ή Cpanel, και τέλος το Cloudmin που είναι ένα πάνελ ελέγχου για virtual systems, όπως τα Xen, KVM και OpenVZ.

Κάπου εδώ τελειώσαμε την περιήγησή μας. Προτείνουμε να στήσετε το Webmin και να πειραματιστείτε. Θα διαπιστώσετε ότι είναι μια από τις καλύτερες προτάσεις ανοικτού κώδικα για web based control panel.

Βιβλία για το Webmin

The Book of Webmin του Joe Cooper: http://goo.gl/tlnWo

Managing Linux Systems with Webmin (PDF, υπό την άδεια Open Content): http://goo.gl/a5kdP

The Dedicated Server Handbook: http://goo.gl/Vlj5R

Σύνδεσμοι

[1] H ιστοσελίδα του Webmin: http://www.webmin.com
[2] Πληροφορίες για το Webmin στην Wikipedia: http://en.wikipedia.org/wiki/Webmin
[3] Βιβλία για το Webmin: http://www.webmin.com/books.html
[4] Το wiki με την τεκμηρίωση του Webmin: http://doxfer.webmin.com/Webmin

Ο Δημοσθένης ασχολείται με το προγραμματισμό και το ελεύθερο λογισμικό

Tags
Δώσε αστέρια!

MO: (ψήφοι: 0)

Σχόλια

Καλησπέρα, μ'ηπως είναι ε'υκολο να εξηγήσεις ποιο είναι το username που ζητάει γιατί δεν μπορώ να συνδεθώ στο webmin?