Managing Linux Systems with Webmin: System Administration and Module Development

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $2.76
Usually ships in 1-2 business days
(Save 94%)
Other sellers (Paperback)
  • All (20) from $2.76   
  • New (5) from $34.47   
  • Used (15) from $2.76   

Overview

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.

Read More Show Less

Product Details

  • ISBN-13: 9780131408821
  • Publisher: Prentice Hall
  • Publication date: 8/5/2003
  • Series: Bruce Perens'Open Source Series
  • Pages: 816
  • Product dimensions: 7.00 (w) x 9.10 (h) x 1.70 (d)

Meet the Author

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.

Read More Show Less

Read an Excerpt

This chapter explains what Webmin is, why it was written, and what you can expect from this book.What is Webmin?

Webmin is a program that simplifies the process of managing a Linux or UNIX system. Traditionally, you have needed to manually edit configuration files and run commands to create accounts, set up web servers, or manage email forwarding. Webmin now lets you perform these tasks through an easy-to-use web interface, and automatically updates all of the required configuration files for you. This makes the job of administering your system much easier.

Some of the things that you can do with Webmin include:Creating, editing, and deleting UNIX login accounts on your system

  • Exporting files and directories to other systems with the NFS protocol
  • Setting up disk quotas to control how much space users can take up with their files
  • Installing, viewing, and removing software packages in RPM and other formats
  • Changing your system's IP address, DNS settings, and routing configuration
  • Setting up a firewall to protect your computer or give hosts on an internal LAN access to the Internet
  • Creating and configuring virtual web sites for the Apache Web server
  • Managing databases, tables, and fields in a MySQL or PostgreSQL database server
Sharing files with Windows systems by configuring Samba

These are just a few of the available functions. Webmin lets you configure almost all of the common services and popular servers on UNIX systems using a simple web interface. It protects you from the syntax errors and other mistakes that are often made when editing configuration files directly, and warns you before potentially dangerousactions.

Because Webmin is accessed though a web browser, you can log in to it from any system that is connected to yours through a network. There is absolutely no difference between running it locally and running it remotely, and it is much easier to use over the network than other graphical configuration programs.

Webmin has what is known as a modular design. This means that each of its functions is contained in a module that can generally be installed or removed independently from the rest of the program. Each module is responsible for managing some service or server, such as UNIX users, the Apache Web server, or software packages.

If you have been manually configuring your system up till now, any existing settings will be recognized by Webmin. It always reads the standard configuration files on your system and updates them directly, instead of using its own separate database. This means that you can freely mix Webmin, manual configuration, and other programs or scripts that work in the same way.

Even though this book is written for Linux users, Webmin can be used on many other flavors of UNIX as well, such as Solaris, FreeBSD, and HP/UX. One of its biggest strengths is its understanding of the differences between all these operating systems and the way it adjusts its user interface and behavior to fit your OS. This means that it can often hide the underlying differences between each UNIX variant and present a similar or identical interface no matter which one you are using.

Webmin on its own is not particularly useful though—it is only a configuration tool, so you must have programs installed for it to configure. For example, the Apache module requires that the actual Apache Web server be installed. Fortunately, all of the services and servers that Webmin manages are either included with most Linux distributions as standard, or can be freely downloaded and installed.Who Should Use Webmin?

Webmin was written for use by people who have some Linux experience but are not familiar with the intricacies of system administration. Even though it makes the process of creating UNIX users or managing the Squid proxy server easy, you must first have some idea of what a UNIX account is and what Squid does. The average Webmin user is probably someone running it on their Linux system at home or on a company network.

The program assumes that you are familiar with basic TCP/IP networking concepts, such as IP addresses, DNS servers, and hostnames. It also assumes that the user understands the layout of the UNIX filesystem, what users and groups are, and where user files are located. If you use Webmin to manage a server like Apache or Sendmail, you should first have an idea of what they can do and what kind of configuration you want completed.

Webmin itself runs with full UNIX root privileges, which means that it can edit any file and run any command on your system. This means that it is quite possible to delete all of the files on your system or make it un-bootable if you make a mistake when using the program, especially if you are configuring something that you don't understand. Even though Webmin will usually warn you before performing some potentially dangerous action, there is still plenty of scope for causing damage.

Even though it can be used on a system with no connection to the Internet, Webmin does benefit if your Linux system is on a network. It can download new software packages, Perl modules, or even new versions of Webmin for you, if connected. A permanent high-speed connection is best, but even a dial-up connection is good enough for most purposes.

Because Webmin runs with root privileges, you must be able to log in to your system as root to install and start it. This means that it cannot be used on a system on which you have only a normal UNIX account, such as a virtual web server that is shared with other people. You might, however, be able to get your system administrator to install and configure it for you.

If you are already an experienced UNIX system administrator, Webmin may not feel like the tool for you because using it is generally slower than directly editing configuration files and running commands. However, even the experts can benefit from its automatic syntax checking and the actions that it can perform automatically.

It is also possible to give different people different levels of access to Webmin, so that an experienced administrator can use it to safely delegate responsibility to less-skilled subordinates. For example, you might want someone to be only able to manage the BIND DNS server and nothing else, while giving yourself full access to the system and all of Webmin's functions.How and Why Was it Developed?

Webmin, the program, was designed and created by me, Jamie Cameron—the author of this book. I started it back in 1997 and released the first version (0.1) in October of that year. Since that time, its user interface, features, and appearance have changed dramatically, and almost all of the code has been re-written. The basic concept of a web-based administration tool, however, has been the same since that very first release.

I started writing it when I was the administrator for a system running a DNS server and was spending a lot of time updating the server's configuration files to add new host records requested by users. Giving them the root password was not an option—they did not have the experience to properly edit the zone files and re-start the server. The solution was a simple web interface that would display existing DNS records and allow them to be edited, created, and deleted. Users could then safely be given access to this interface to make the changes that they needed.

DNS management was just the start though. Once I saw the possibilities for simplifying the configuration of a UNIX system though a web interface, I started adding other features to the program and putting them into modules. Next came modules for UNIX users, Samba, mounting filesystems, NFS, and Cron jobs. I thought up the name Webmin, made it available for anyone to download, and announced it on a few mailing lists. The initial feedback was good, so I kept on writing.

Over the years, the program has gone through three different user interfaces, grown to 83 modules, added support for non-English languages, provided advanced access control, included lots more operating systems, and offered many other features. The Linux distribution companies Caldera and MSC.Linux have supported the project financially, and many users have made contributions of code patches, modules, translations, and suggestions. In addition to the standard modules, over 100 have been written by other people and are available to be added to Webmin on your system once you have installed the program.What is this Book About?

This book explains how to install Webmin, how to use almost all of its modules, and how to write your own. The book focuses on the standard modules that come with the Webmin package, not those written by other people. Not all of the 83 standard modules are covered, however, as some are not very useful to the average administrator.

Although this book is written primarily for Linux users, the program behaves almost identically on other operating systems. Each chapter also lists any differences between Linux and other UNIX variants in their "Other Operating Systems" sections. This means that it is still very useful if you are running Webmin on FreeBSD, Solaris, MacOS X, or some other variety of UNIX.

Each chapter in the book covers the use of Webmin for managing a particular service or server, such as NFS exports, Sendmail, or the ProFTPD FTP server. Most chapters only discuss a single module, but some cover two or three that have similar or related purposes. Each chapter is pretty much self-contained, so there is no need to read through the entire book in sequence if you just want to find out how to configure one server. Chapters, and possibly, however, should be read first as they explain how to install Webmin, how to secure it, and how to limit what other users can do with a module, respectively.

Each chapter is broken up into sections, and most sections explain how to perform a specific task. A section will generally contain an introduction to the task explaining why you might want to do it, followed by a list of steps to follow in the Webmin user interface to carry it out. At the beginning of each chapter are sections that introduce the server being configured and the concepts behind it, and list the underlying configuration files that get modified when you use the module covered in that chapter.

Chapters to cover the development of your own Webmin modules and themes, and therefore have a different style. The average user does not need to read them, but if you have an idea for a module that is not currently available, they provide all the information that you need to implement it.Who Should Read this Book?

This book should be read by anyone wanting to use Webmin to manage their Linux or UNIX systems. It was written for readers with a basic knowledge of UNIX commands and concepts—people who have installed Linux and have used it for a while.

Each chapter starts with an introduction to the service being configured so that readers have some idea of what the DNS protocol is for or how a firewall works. Even so, a complete novice should not try to set up a server until he understands how it works and what he wants it to do. The best way to learn is to use the service on some other system as a user. For example, if you have used a proxy server before on some other network, then you will have the background knowledge needed to use this book to set up the Squid proxy on your own system.

The development chapters, on the other hand, are written for someone who already understands how to write Perl scripts and CGI programs on a UNIX system. This means that they are more complex than the rest of the book, and assume some knowledge of programming and manual system administration. They can be skipped, however, if you just want to learn how to use Webmin rather than how to extend it.Acknowledgments

This book could not have been written without the support of Jill Harry and the others at Prentice Hall, Robert Kern for suggesting the idea, my wife Foong Ching for her constant support, and all the members of the Webmin mailing list for their ideas and suggestions over the years.

Read More Show Less

Table of Contents

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.

Index.

Read More Show Less

Preface

This chapter explains what Webmin is, why it was written, and what you can expect from this book.

What is Webmin?

Webmin is a program that simplifies the process of managing a Linux or UNIX system. Traditionally, you have needed to manually edit configuration files and run commands to create accounts, set up web servers, or manage email forwarding. Webmin now lets you perform these tasks through an easy-to-use web interface, and automatically updates all of the required configuration files for you. This makes the job of administering your system much easier.

Some of the things that you can do with Webmin include:

Creating, editing, and deleting UNIX login accounts on your system

  • Exporting files and directories to other systems with the NFS protocol
  • Setting up disk quotas to control how much space users can take up with their files
  • Installing, viewing, and removing software packages in RPM and other formats
  • Changing your system's IP address, DNS settings, and routing configuration
  • Setting up a firewall to protect your computer or give hosts on an internal LAN access to the Internet
  • Creating and configuring virtual web sites for the Apache Web server
  • Managing databases, tables, and fields in a MySQL or PostgreSQL database server

Sharing files with Windows systems by configuring Samba

These are just a few of the available functions. Webmin lets you configure almost all of the common services and popular servers on UNIX systems using a simple web interface. It protects you from the syntax errors and other mistakes that are often made when editing configuration files directly, and warns you before potentially dangerous actions.

Because Webmin is accessed though a web browser, you can log in to it from any system that is connected to yours through a network. There is absolutely no difference between running it locally and running it remotely, and it is much easier to use over the network than other graphical configuration programs.

Webmin has what is known as a modular design. This means that each of its functions is contained in a module that can generally be installed or removed independently from the rest of the program. Each module is responsible for managing some service or server, such as UNIX users, the Apache Web server, or software packages.

If you have been manually configuring your system up till now, any existing settings will be recognized by Webmin. It always reads the standard configuration files on your system and updates them directly, instead of using its own separate database. This means that you can freely mix Webmin, manual configuration, and other programs or scripts that work in the same way.

Even though this book is written for Linux users, Webmin can be used on many other flavors of UNIX as well, such as Solaris, FreeBSD, and HP/UX. One of its biggest strengths is its understanding of the differences between all these operating systems and the way it adjusts its user interface and behavior to fit your OS. This means that it can often hide the underlying differences between each UNIX variant and present a similar or identical interface no matter which one you are using.

Webmin on its own is not particularly useful though—it is only a configuration tool, so you must have programs installed for it to configure. For example, the Apache module requires that the actual Apache Web server be installed. Fortunately, all of the services and servers that Webmin manages are either included with most Linux distributions as standard, or can be freely downloaded and installed.

Who Should Use Webmin?

Webmin was written for use by people who have some Linux experience but are not familiar with the intricacies of system administration. Even though it makes the process of creating UNIX users or managing the Squid proxy server easy, you must first have some idea of what a UNIX account is and what Squid does. The average Webmin user is probably someone running it on their Linux system at home or on a company network.

The program assumes that you are familiar with basic TCP/IP networking concepts, such as IP addresses, DNS servers, and hostnames. It also assumes that the user understands the layout of the UNIX filesystem, what users and groups are, and where user files are located. If you use Webmin to manage a server like Apache or Sendmail, you should first have an idea of what they can do and what kind of configuration you want completed.

Webmin itself runs with full UNIX root privileges, which means that it can edit any file and run any command on your system. This means that it is quite possible to delete all of the files on your system or make it un-bootable if you make a mistake when using the program, especially if you are configuring something that you don't understand. Even though Webmin will usually warn you before performing some potentially dangerous action, there is still plenty of scope for causing damage.

Even though it can be used on a system with no connection to the Internet, Webmin does benefit if your Linux system is on a network. It can download new software packages, Perl modules, or even new versions of Webmin for you, if connected. A permanent high-speed connection is best, but even a dial-up connection is good enough for most purposes.

Because Webmin runs with root privileges, you must be able to log in to your system as root to install and start it. This means that it cannot be used on a system on which you have only a normal UNIX account, such as a virtual web server that is shared with other people. You might, however, be able to get your system administrator to install and configure it for you.

If you are already an experienced UNIX system administrator, Webmin may not feel like the tool for you because using it is generally slower than directly editing configuration files and running commands. However, even the experts can benefit from its automatic syntax checking and the actions that it can perform automatically.

It is also possible to give different people different levels of access to Webmin, so that an experienced administrator can use it to safely delegate responsibility to less-skilled subordinates. For example, you might want someone to be only able to manage the BIND DNS server and nothing else, while giving yourself full access to the system and all of Webmin's functions.

How and Why Was it Developed?

Webmin, the program, was designed and created by me, Jamie Cameron—the author of this book. I started it back in 1997 and released the first version (0.1) in October of that year. Since that time, its user interface, features, and appearance have changed dramatically, and almost all of the code has been re-written. The basic concept of a web-based administration tool, however, has been the same since that very first release.

I started writing it when I was the administrator for a system running a DNS server and was spending a lot of time updating the server's configuration files to add new host records requested by users. Giving them the root password was not an option—they did not have the experience to properly edit the zone files and re-start the server. The solution was a simple web interface that would display existing DNS records and allow them to be edited, created, and deleted. Users could then safely be given access to this interface to make the changes that they needed.

DNS management was just the start though. Once I saw the possibilities for simplifying the configuration of a UNIX system though a web interface, I started adding other features to the program and putting them into modules. Next came modules for UNIX users, Samba, mounting filesystems, NFS, and Cron jobs. I thought up the name Webmin, made it available for anyone to download, and announced it on a few mailing lists. The initial feedback was good, so I kept on writing.

Over the years, the program has gone through three different user interfaces, grown to 83 modules, added support for non-English languages, provided advanced access control, included lots more operating systems, and offered many other features. The Linux distribution companies Caldera and MSC.Linux have supported the project financially, and many users have made contributions of code patches, modules, translations, and suggestions. In addition to the standard modules, over 100 have been written by other people and are available to be added to Webmin on your system once you have installed the program.

What is this Book About?

This book explains how to install Webmin, how to use almost all of its modules, and how to write your own. The book focuses on the standard modules that come with the Webmin package, not those written by other people. Not all of the 83 standard modules are covered, however, as some are not very useful to the average administrator.

Although this book is written primarily for Linux users, the program behaves almost identically on other operating systems. Each chapter also lists any differences between Linux and other UNIX variants in their "Other Operating Systems" sections. This means that it is still very useful if you are running Webmin on FreeBSD, Solaris, MacOS X, or some other variety of UNIX.

Each chapter in the book covers the use of Webmin for managing a particular service or server, such as NFS exports, Sendmail, or the ProFTPD FTP server. Most chapters only discuss a single module, but some cover two or three that have similar or related purposes. Each chapter is pretty much self-contained, so there is no need to read through the entire book in sequence if you just want to find out how to configure one server. Chapters, and possibly, however, should be read first as they explain how to install Webmin, how to secure it, and how to limit what other users can do with a module, respectively.

Each chapter is broken up into sections, and most sections explain how to perform a specific task. A section will generally contain an introduction to the task explaining why you might want to do it, followed by a list of steps to follow in the Webmin user interface to carry it out. At the beginning of each chapter are sections that introduce the server being configured and the concepts behind it, and list the underlying configuration files that get modified when you use the module covered in that chapter.

Chapters to cover the development of your own Webmin modules and themes, and therefore have a different style. The average user does not need to read them, but if you have an idea for a module that is not currently available, they provide all the information that you need to implement it.

Who Should Read this Book?

This book should be read by anyone wanting to use Webmin to manage their Linux or UNIX systems. It was written for readers with a basic knowledge of UNIX commands and concepts—people who have installed Linux and have used it for a while.

Each chapter starts with an introduction to the service being configured so that readers have some idea of what the DNS protocol is for or how a firewall works. Even so, a complete novice should not try to set up a server until he understands how it works and what he wants it to do. The best way to learn is to use the service on some other system as a user. For example, if you have used a proxy server before on some other network, then you will have the background knowledge needed to use this book to set up the Squid proxy on your own system.

The development chapters, on the other hand, are written for someone who already understands how to write Perl scripts and CGI programs on a UNIX system. This means that they are more complex than the rest of the book, and assume some knowledge of programming and manual system administration. They can be skipped, however, if you just want to learn how to use Webmin rather than how to extend it.

Acknowledgments

This book could not have been written without the support of Jill Harry and the others at Prentice Hall, Robert Kern for suggesting the idea, my wife Foong Ching for her constant support, and all the members of the Webmin mailing list for their ideas and suggestions over the years.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Anonymous

    Posted September 5, 2003

    Webmin makes Linux Admin easy, this book makes Webmin easy!

    Jamie Cameron's book is a fantastic voyage inside what I think is one of the most important administration based tools available. He has created a very unique and easy to use masterpiece that makes the daily (and not so daily) administration tasks easy to perform - both remotely and on-site. The book gives a more in depth look at the application he's built and you get a better understanding of how it works, saves you time and money. His chapter on building and integrating your own webmin modules is a must read for anyone that's used webmin and wanted to add their own pieces - It shows the true versatility and strength of Webmin. This book helps to solidify Jamie's remarkable understanding of and contribution to systems administration. This is a must have for everyone who uses Linux on the server!

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted September 16, 2003

    Great software. Great book. Thanks, Jamie!

    The evolution of the Webmin Linux/UNIX administration tool is nothing short of phenomenal. It stands as yet another great example of Open Source development, as many modules and bug fixes were contributed by the User Community. However, the core of Webmin comes from Jamie Cameron, who began developing a simple tool back in 1997 to help Junior Sys Admins maintain DNS servers. It is clear that Jamie was the best possible person to write 'Managing Linux Systems with Webmin' not only because of his intimate knowledge of the software, but also because he is able to explain esoteric Admin-speak in clear, concise language. This book is not about installing Linux or server software (such as Apache, BIND, or MySQL). Rather, it guides one through both the installation of Webmin --making sure your Webmin installation is complete and secure-- and the use of Webmin to administer practically *everything* on your Linux machine. And, it does an excellent job of accomplishing these goals! For those new to Linux, this book provides information on making your server easy to administer via the friendly Webmin interface. For the seasoned Linux/UNIX Administrator, this may provide you the turn-key solution for setting up Junior Admins with the appropriate levels of access and configurability. For small shops looking to find more cost efficient and reliable solutions, Webmin may be the final piece needed to turn these prospects into reality. Jamie's task-oriented book makes mastery of Webmin simple and straightforward. There are many impressive aspects of Webmin, including the fact that Webmin is available for almost every major Linux and UNIX distribution. This can provide those in a heterogeneous environment with a higher level of interface uniformity, thus reducing the complexity involved in administering several disparate systems. Also impressive are the modular nature of Webmin development and the highly extensible Webmin API (for creating your own custom modules). I highly recommend this book both for those getting their feet wet in Linux/UNIX administration and those looking for an effective alternative to command line management.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)