Managing Linux Systems with WebminSystem Administration and Module Development
This title is ordered on demand which may result in extended delivery times.
Written by the creator of Webmin, this book explains how to use the most popular Webmin modules to perform common administration tasks on a Linux system such as adding users, configuring Apache, setting up NFS file sharing and managing the Sendmail mail server.Each chapter covers a single server or service, and is broken down into sections that list the steps required to carry out certain tasks using Webmin. The chapters also provide some background on the service being configured and the basic concepts behind it.Cameron also explains how to develop your own Webmin modules and themes, and includes a complete reference for the API that is available to module writers. He dissects each of the standard modules and themes so that programmers thinking of writing their own can see how they work, and what kind of coding style is used.Webmin is a browser-based user interface for performing system administration tasks on Linux and Unix servers.Part of the Bruce Perens' Open Source Series
I am more than satisfied (actually impressed) with how much system administration is possible from Webmin. Comprehensive and convenient, just about any administration I've done is covered here, along with several areas that I've hesitated to explore.
--Karel Baloun, Sr. Software Engineer, Looksmart, Ltd.
Easy, browser-based Linux/UNIX administration with Webmin--step by step
Webmin gives you an easy, browser-based solution for virtually any day-to-day Linux/UNIX administration task. Now, there's a definitive Webmin guide for every beginning-to-intermediate sysadmin. Written by Webmin's primary developer, Managing Linux Systems with Webmin delivers authoritative, step-by-step coverage of the latest version of Webmin, from basic installation to centrally managing multiple servers. Coverage includes:
- How Webmin works--and how to install and secure it
- Using Webmin to configure basic system services, including filesystems, users/groups, and printing
- Configuring Apache, Sendmail, Squid, Samba, MySQL, PostgreSQL, FTP services, and more
- Cluster modules: configuring multiple systems from one master server
- Webmin modules: configuring Webmin itself
- Full API documentation and instructions for writing your own Webmin modules and themes
Jamie Cameron walks you through more than 50 essential Webmin tasks--offering all the background you need, step-by-step instructions, extensive screen captures, and listings of the underlying configuration files that are being modified. Whether you're new to Linux/UNIX system administration or you simply want an alternative to the command line, Managing Linux Systems with Webmin will be an indispensable resource.
1. Introduction to Webmin.
What is Webmin? Who Should Use Webmin? How and Why Was it Developed? What is this Book About? Who Should Read this Book? Conventions Used in this Book. Acknowledgments.
2. Installing Webmin.
Downloading Webmin for Your System. Installing the RPM Package. Installing the tar.gz Package. Installing the Solaris Package. The Webmin User Interface. Uninstalling Webmin. Summary.
3. Securing Your Webmin Server.
Network Security. SSL Encryption. Requesting a Valid SSL Certificate. Summary.
4. Users and Groups.
Introduction to UNIX Users and Groups. The Users and Groups Module. Creating a New User. Editing an Existing User. Deleting a User. Creating a New Group. Editing an Existing Group. Deleting a Group. Viewing Recent and Current Logins. Reading Users' Email. Creating Users from Batch Files. Configuring the Users and Groups Module. Before and After Commands. Module Access Control. Other Operating Systems. Summary.
5. Disk and Network Filesystems.
Introduction to Filesystems. The Disk and Network Filesystems Module. Mounting an NFS Network Filesystem. Mounting an SMBFS Windows Networking Filesystem. Mounting a Local ext2 or ext3 Hard Disk Filesystem. Mounting a Local Windows Hard Disk Filesystem. Adding Virtual Memory. Automounter Filesystems. Editing or Removing an Existing Filesystem. Listing Users of a Filesystem. Module Access Control. Configuring the Disk and Network Filesystems Module. A Comparison of Filesystem Types. Other Operating Systems. Summary.
6. NFS File Sharing.
Introduction to File Sharing with NFS. The NFS Exports Module. Exporting a Directory. Editing or Deleting an NFS Export. NFS on Solaris. NFS on BSD, MacOS X and OpenServer. NFS on Irix. Summary.
7. Disk Quotas.
Introduction to Disk Quotas. The Disk Quotas Module. Enabling Quotas for a Filesystem. Disabling Quotas for a Filesystem. Setting Quotas for a User or Group. Copying Quotas to Multiple Users. Setting Grace Times. Setting Default Quotas for New Users. Other Operating Systems. Configuring the Disk Quotas Module. Module Access Control. Summary.
8. Partitions, RAID, and LVM.
Introduction to Hard Disk Partitions. The Partitions on Local Disks Module. Adding and Formatting a New Partition. Creating a New Filesystem. Partition Labels. Deleting or Changing a Partition. Module Access Control. Other Operating Systems. Introduction to RAID. The Linux RAID Module. Introduction to LVM. The Logical Volume Management Module. Creating a New Volume Group. Adding and Removing a Physical Volume. Creating and Deleting a Logical Volume. Resizing a Logical Volume. Creating a Snapshot. Summary.
9. Bootup and Shutdown.
Introduction to the Linux Boot Process. The Bootup and Shutdown Module. Configuring an Action to Start at Bootup. Starting and Stopping Actions. Adding a New Action. Rebooting or Shutting Down Your System. Configuring the Bootup and Shutdown Module. Other Operating Systems. The SysV Init Configuration Module. Summary.
10. Scheduled Commands.
Introduction to Cron Jobs. The Scheduled Cron Jobs Module. Creating a New Cron Job. Editing a Cron Job. Controlling Users' Access to Cron. Module Access Control Options. Configuring the Scheduled Cron Jobs Module. Other Operating Systems. The Scheduled Commands Module. Creating a New Scheduled Command. Summary.
11. Process Management.
Introduction to Processes. The Running Processes Module. Viewing, Killing, or Reprioritizing a Process. Searching for Processes. Running a Process. Module Access Control Options. Other Operating Systems. Summary.
12. Software Packages.
Introduction to Packages. The Software Packages Module. Installing a New Package. Finding and Removing a Package. Updating on Debian Linux. Updating on Red Hat Linux. Other Operating Systems. Summary.
13. System Logs.
Introduction to Logging. The System Logs Module. Adding a New Log File. Editing or Deleting a Log File. Module Access Control. Other Operating Systems. Summary.
14. Filesystem Backups.
Introduction to Backups with Dump. The Filesystem Backup Module. Adding a New Backup. Making a Backup. Editing or Deleting a Backup. Restoring a Backup. Configuring the Filesystem Backup Module. Other Operating Systems. Summary.
15. Internet Services.
Introduction to Internet Services. The Internet Services and Protocols Module. Enabling an Internet Service. Creating Your Own Internet Service. Creating and Editing RPC Programs. Configuring the Internet Services and Protocols Module. Other Operating Systems. The Extended Internet Services Module. Enabling or Editing an Extended Internet Service. Creating an Extended Internet Service. Editing Default Options. Summary.
16. Network Configuration.
Introduction to Linux Networking. Viewing and Editing Network Interfaces. Adding a Network Interface. Configuring Routing. Changing the Hostname or DNS Client Settings. Editing Host Addresses. Module Access Control. Other Operating Systems. Summary.
17. Network Information Service.
Introduction to NIS. Becoming an NIS Client. Setting Up an NIS Master Server. Editing NIS Tables. Securing Your NIS Server. Setting Up an NIS Slave Server. Configuring the NIS Client and Server Module. NIS on Solaris. Summary.
18. PPP Server Configuration.
Introduction to PPP on Linux. Configuring a PPP Server. Managing PPP Accounts. Restricting Access by Caller ID. Module Access Control. Summary.
19. Firewall Configuration.
Introduction to Firewalling with IPtables. The Linux Firewall Module. Allowing and Denying Network Traffic. Changing a Chain's Default Action. Editing Firewall Rules. Creating Your Own Chain. Setting Up Network Address Translation. Setting Up a Transparent Proxy. Setting Up Port Forwarding. Firewall Rule Conditions. Configuring the Linux Firewall Module. Summary.
20. Setting the Date and Time.
The System Time Module. Changing the System Time. Change the Hardware Time. Synchronizing Times with Another Server. Module Access Control. Other Operating Systems. Summary.
21. Boot Loader Configuration.
Introduction to Boot Loaders. The Linux Bootup Configuration Module. Booting a New Kernel with LILO. Booting Another Operating System with LILO. Editing Global LILO Options. The GRUB Boot Loader Module. Booting a New Linux Kernel or BSD with GRUB. Booting Another Operating System with GRUB. Editing Global GRUB Options. Installing GRUB. Configuring the GRUB Boot Loader Module. Summary.
22. Printer Administration.
Introduction to Printing on Linux. The Printer Administration Module. Adding a New Printer. Editing an Existing Printer. Managing Print Jobs. Configuring the Printer Administration Module. Module Access Control. Other Operating Systems. Summary.
23. Voicemail Server Configuration.
The Voicemail Server Module. Configuring Your System as an Answering Machine. Listening to Recorded Messages. Setting a Greeting Message. Summary.
24. Remote Shell Login.
The SSH/Telnet Login Module. Configuring the SSH/Telnet Login Module. The Command Shell Module. The Shell In A Box Module. Summary.
25. Running Custom Commands.
The Custom Commands Module. Creating a New Command. Parameter Types. Creating a New File Editor. Module Access Control. Configuring the Custom Commands Module. Summary.
26. Webmin's File Manager.
The File Manager Module. Navigating Directories and Viewing Files. Manipulating Files. Creating and Editing Files. Editing File Permissions. Creating Links and Directories. Finding Files. Editing EXT File Attributes. Editing XFS File Attributes. Editing File ACLs. Sharing Directories. Module Access Control. Summary.
27. Perl Modules.
Introduction to Perl Modules. Perl Modules in Webmin. Installing a Perl Module. Viewing and Removing a Perl Module. Configuring the Perl Modules Module. Summary.
28. Status Monitoring with Webmin.
The System and Server Status Module. Adding a New Monitor. Monitor Types. Setting Up Scheduled Monitoring. Module Access Control. Configuring the System and Server Status Module. Summary.
29. Apache Web Server Configuration.
Introduction to Apache. The Apache Webserver Module. Starting and Stopping Apache. Editing Pages on Your Web Server. Creating a New Virtual Host. Setting Per-Directory Options. Creating Aliases and Redirects. Running CGI Programs. Setting Up Server-Side Includes. Configuring Logging. Setting Up Custom Error Messages. Adding and Editing MIME Types. Password Protecting a Directory. Restricting Access by Client Address. Encodings, Character Sets, and Languages. Editing .htaccess Files. Setting Up User Web Directories. Configuring Apache as a Proxy Server. Setting Up SSL. Viewing and Editing Directives. Module Access Control. Configuring the Apache Webserver Module. Summary.
30. DNS Server Configuration.
Introduction to the Domain Name System. The BIND DNS Server Module. Creating a New Master Zone. Adding and Editing Records. Record Types. Editing a Master Zone. Creating a New Slave Zone. Editing a Slave Zone. Creating and Editing a Forward Zone. Creating a Root Zone. Editing Zone Defaults. Configuring Forwarding and Transfers. Editing Access Control Lists. Setting Up Partial Reverse Delegation. Using BIND Views. Module Access Control. Configuring the BIND DNS Server Module. The BIND 4 DNS Server Module. Summary.
31. CVS Server Configuration.
Introduction to CVS. The CVS Server Module. Setting Up the CVS Server. Using the CVS Server. Adding and Editing Users. Limiting User Access. Configuring the CVS Server. Browsing the Repository. Configuring the CVS Server Module. Summary.
32. DHCP Server Configuration.
Introduction to the Dynamic Host Configuration Protocol. The ISC DHCP Server. The DHCP Server Module. Adding and Editing Subnets. Viewing and Deleting Leases. Editing Global Client Options. Adding and Editing Fixed Hosts. Adding and Editing Shared Networks. Adding and Editing Groups. Module Access Control. Configuring the DHCP Server Module. Summary.
33. Downloading Email with Fetchmail.
Introduction to Fetchmail. The Fetchmail Mail Retrieval Module. Adding a New Mail Server to Check. Downloading Email. Running the Fetchmail Daemon. Editing Global Settings. Module Access Control. Configuring the Fetchmail Mail Retrieval Module. Summary.
34. Managing Majordomo Mailing Lists.
Introduction to Mailing Lists and Majordomo. The Majordomo List Manager Module. Using Other Mail Servers. Creating a Mailing List. Managing List Members. Editing List Information, Headers, and Footers. Editing Subscription Options. Editing Forwarded Email Options. Editing List Access Control. Moderating and Maintaining a Mailing List. Deleting a Mailing List. Creating a Digest List. Editing Digest Options. Editing Global Majordomo Options. Module Access Control. Configuring the Majordomo List Manager Module. Summary.
35. The MySQL Database.
Introduction to MySQL. The MySQL Database Server Module. Creating a New Database. Creating a New Table. Adding and Editing Fields. Field Types. Viewing and Editing Table Contents. Deleting Tables and Databases. Executing SQL Commands. Backing Up and Restoring a Database. Managing MySQL Users. Managing Database, Host, Table, and Field Permissions. Module Access Control. Configuring the MySQL Database Server Module. Summary.
36. The PostgreSQL Database.
Introduction to PostgreSQL. The PostgreSQL Database Server Module. Creating a New Database. Creating a New Table. Adding and Editing Fields. Deleting a Field. Field Types. Viewing and Editing Table Contents. Deleting Tables and Databases. Executing SQL Commands. Backing Up and Restoring a Database. Managing PostgreSQL Users. Managing PostgreSQL Groups. Restricting Client Access. Editing Object Privileges. Module Access Control. Configuring the PostgreSQL Database Server Module. Summary.
37. Configuring Sendmail.
Introduction to Internet Email. The Sendmail Configuration Module. Editing Local Domains and Domain Masquerading. Managing Email Aliases. Configuring Relaying. Managing Virtual Address Mappings. Configuring Domain Routing. Editing Global Sendmail Options. Viewing the Mail Queue. Reading Users' Email. Adding Sendmail Features with M4. Creating Autoreply Aliases. Creating Filter Aliases. Sendmail Module Access Control. Configuring the Sendmail Configuration Module. Summary.
38. Configuring Qmail.
Introduction to Qmail. The Qmail Configuration Module. Editing Local Domains. Managing Email Aliases. Configuring Relaying. Managing Virtual Mappings. Configuring Domain Routing. Editing Global Qmail Options. Editing Mail User Assignments. Viewing the Mail Queue. Reading Users' Email. Configuring the Qmail Configuration Module. Summary.
39. Analyzing Log Files.
The Webalizer Logfile Analysis Module. Editing Report Options. Generating and Viewing a Report. Reporting on Schedule. Adding Another Log File. Editing Global Options. Module Access Control. Summary.
40. The ProFTPD Server.
Introduction to FTP and ProFTPD. The ProFTPD Server Module. Running ProFTPD from inetd or xinetd. Using the ProFTPD Server Module. Creating Virtual Servers. Setting Up Anonymous FTP. Restricting Users to Their Home Directories. Limiting Who Can Log In. Setting Directory Listing Options. Message and Readme Files. Setting Per-Directory Options. Restricting Access to FTP Commands. Configuring Logging. Limiting Concurrent Logins. Restricting Clients by IP Address. Limiting Uploads. Manually Editing Directives. Configuring the ProFTPD Server Module. Summary.
41. The WU-FTPD Server.
Introduction to WU-FTPD. The WU-FTPD Server Module. Limiting Who Can Log In. Setting Up Anonymous FTP. Managing User Classes. Denying Access to Files. Setting Up Guest Users. Editing Directory Aliases. Message and Readme Files. Configuring Logging. Limiting Concurrent Logins. Restricting Clients by IP Address. Restricting Access to FTP Commands. Configuring the WU-FTPD Server Module. Summary.
42. SSH Server Configuration.
Introduction to SSH. The SSH Server Module. Restricting Access to the SSH Server. Network Configuration. Authentication Configuration. Editing Client Host Options. Setting Up SSH for New Users. Configuring the SSH Server Module. Summary.
43. Windows File Sharing with Samba.
Introduction to SMB and Samba. The Samba Windows File Sharing Module. Managing Samba Users. Adding a New File Share. Adding a New Printer Share. Viewing and Disconnecting Clients. Editing Share Security Options. Editing File Permission Settings. Editing File Naming Options. Editing Other File Share Options. Editing Printer Share Options. Editing Share Defaults. Configuring Networking. Configuring Authentication. Configuring Printers. Accessing SWAT from Webmin. Module Access Control. Configuring the Samba Windows File Sharing Module. Summary.
44. Configuring the Squid Proxy Server.
Introduction to Proxying and Squid. The Squid Proxy Server Module. Changing the Proxy Ports and Addresses. Adding Cache Directories. Editing Caching and Proxy Options. Introduction to Access Control Lists. Creating and Editing ACLs. Creating and Editing Proxy Restrictions. Setting Up Proxy Authentication. Configuring Logging. Connecting to Other Proxies. Clearing the Cache. Setting Up a Transparent Proxy. Viewing Cache Manager Statistics. Analyzing the Squid Logs. Module Access Control. Configuring the Squid Proxy Server Module. Summary.
45. Filtering Email with Procmail.
Introduction to Procmail. The Procmail Mail Filter Module. Setting Up Sendmail. Creating and Editing Actions. Creating and Editing Variable Assignments. Conditional Blocks and Include Files. Filtering Spam with SpamAssassin. Configuring the Procmail Mail Filter Module. Summary.
46. Creating SSL Tunnels.
Introduction to SSL and STunnel. The SSL Tunnels Module. Creating and Editing SSL Tunnels. Configuring the SSL Tunnels Module. Summary.
47. Usermin Configuration.
Introduction to Usermin. The Usermin Configuration Module. Starting and Stopping Usermin. Restricting Access to Usermin. Changing the Port and Address. Configuring the Usermin User Interface. Installing Usermin Modules. Changing the Default Language. Upgrading Usermin. Configuring Authentication. Editing Categories and Moving Modules. Changing and Installing Themes. Turning on SSL. Configuring Usermin Modules. Restricting Access to Modules. Limiting Who Can Log In. About the Usermin Modules. Configuring the Usermin Configuration Module. Summary.
48. Cluster Software Management.
Introduction to Webmin Clustering. The Cluster Software Packages Module. Registering a Server. Installing a Package. Searching for Packages. Deleting a Package. Exploring and Removing a Server. Refreshing the Package List. Configuring the Cluster Software Packages Module. Summary.
49. Cluster User Management.
The Cluster Users and Groups Module. Registering a Server. Creating a New User. Editing an Existing User. Deleting a User. Creating a New Group. Editing an Existing Group. Deleting a Group. Refreshing User and Group Lists. Synchronizing Users and Groups. Listing and Removing a Server. Configuring the Cluster Users and Groups Module. Summary.
50. Cluster Webmin Configuration.
The Cluster Webmin Configuration Module. Registering a Server. Creating a New Webmin User. Editing or Deleting a Webmin User. Creating a New Webmin Group. Editing or Deleting a Webmin Group. Editing the User or Group ACL for a Module. Installing a Module or Theme. Viewing and Deleting a Module or Theme. Refreshing User and Module Lists. Listing and Removing a Server. Configuring the Cluster Webmin Configuration Module. Summary.
51. Webmin Configuration.
The Webmin Configuration Module. Restricting Access to Webmin. Changing the Port and Address. Setting Up Logging. Using Proxy Servers. Configuring the Webmin User Interface. Installing and Deleting Webmin Modules. Cloning a Webmin Module. Changing Your Operating System. Editing the Program Path and Environment Variables. Changing Webmin's Language. Editing Main Menu Settings. Upgrading Webmin. Installing Updates to Webmin. Configuring Authentication. Editing Categories and Moving Modules. Changing and Installing Themes. Referrer Checking. Allowing Unauthenticated Access to Modules. Turning on SSL. Setting Up a Certificate Authority. Summary.
52. Webmin Access Control.
Introduction to Webmin Users, Groups, and Permissions. The Webmin Users Module. Creating a New Webmin User. Editing a Webmin User. Editing Module Access Control. Creating and Editing Webmin Groups. Requesting a Client SSL Key. Viewing and Disconnecting Login Sessions. Module Access Control. Configuring the Webmin Users Module. Summary.
53. Webmin Servers.
The Webmin Servers Index Module. Adding a Webmin Server. Editing or Deleting a Webmin Server. Using Server Tunnels. Broadcasting and Scanning for Servers. How RPC Works. Module Access Control. Configuring the Webmin Servers Index Module. Summary.
54. Logging in Webmin.
Introduction to Logging. The Webmin Actions Log Module. Displaying Logs. Summary.
55. Webmin Module Development. Introduction. Required Files. Module CGI Programs. Module Configuration. Look and Feel. Design Goals. Online Help. Module Packaging. Summary and Learning More.
56. Advanced Module Development.
Module Access Control. User Update Notification. Internationalization. File Locking. Action Logging. Pre- and Post-Install Scripts. Functions in Other Modules. Remote Procedure Calls. Creating Usermin Modules. Summary.
57. Inside the Scheduled Cron Jobs Module.
Module Design and CGI Programs. The cron-lib.pl Library Script. Module Configuration Settings. The lang Internationalization Directory. The acl_security.pl Access Control Script. The log_parser.pl Log Reporting Script. The useradmin_update.pl User Synchronization Script. Summary.
58. Creating Webmin Themes.
Introduction to Themes. Overriding Images and Programs. Theme Functions. Summary.
59. Inside the MSC Theme.
Theme Design and Graphics. The index.cgi Program. The theme_header Function. The theme_footer Function. Summary.
60. The Webmin API.
API Functions. Summary.
JAMIE CAMERON, Webmin's primary developer, has unsurpassed knowledge of Webmin's functions, user interface, and internal design. He has been working with and managing UNIX and Linux systems for over seven years. He was previously employed by Caldera and MSC Software, where he worked full time on Webmin.