System Administation: Maximizing System Security, Part 1

A lot of UNIX security is based on passwords, and in this first part of a two-part article, Æleen helps explain many of thei issues involved in setting up and maintaining passwords on Linux systems. Next month's installment will cover other system security issues.
Security Resources
Package                          ftp Location
COPS                     ftp.cert.org:/pub/tools/cops
Courtney         ftp.best.com:/pub/lat
Crack                    ftp.cert.org:/pub/tools/crack
Gabriel                  ftp.best.com:/pub/lat
Merlin                   ciac.llnl.gov:/pub/ciac/sectools/unix/merlin
Netscape         ftp.netscape.com:/netscape/unix
npasswd                  ee.utah.edu:/admin/passwd/npasswd
passwd+                  ee.utah.edu:/admin/passwd/passwd+
Perl                     prep.ai.mit.edu:/pub/gnu
Satan                    ftp.win.tue.nl:/pub/security
shadow                   sunsite.unc.edu:/pub/Linux/system/Admin
sudo                     sunsite.unc.edu:/pub/Linux/system/Admin
swatch                   sierra.stanford.edu:/pub/sources
TCP Wrappers             ftp.win.tue.nl:/pub/security/tcp_wrapper
Tripwire         coast.cs.purdue.edu:/pub/COAST/Tripwire
Passwords and User Authentication

Passwords are the primary way of securing user accounts on Linux systems. However, the protection offered by passwords is only as good as the passwords themselves. If a hacker decides to attack the accounts on your system, bad passwords are almost as bad as no passwords at all.

There are several things you can do to ensure that the password facility is providing the best protection it is capable of:

  • Make sure all active accounts have passwords and that system accounts not intended for user logins (e.g. bin) are disabled (do this by placing an asterisk in the password field for that account).

  • Secure the encoded versions of the system's passwords by using a shadow password file.

  • Educate users about keeping passwords secret, selecting hard-to-crack passwords, changing passwords as necessary, using different passwords at different sites, and similar security practices. Institute password aging and/or new password obscurity checking if appropriate.

The first item is self-explanatory; we look at the others in detail.

Shadow Password Files

Shadow password files are designed to correct the security hole resulting from the normal password file being world-readable. Everyone needs to be able to view the contents of /etc/passwd so that things like file ownership displays properly (UIDs are translated into usernames). However, since the file is readable, anyone can make a copy of it. This means someone with legitimate or illegitimate access to an ordinary user account can copy it and attempt to crack the passwords of more powerful accounts at his leisure.

A shadow password file facility removes the encoded passwords from the normal password file and places them in another file, conventionally /etc/shadow, which can be read only by root. The shadow package provides shadow password file capabilities for a variety of UNIX systems including Linux. It is included in some Linux distributions by default. It includes replacements for the login, passwd, and su commands as well as many utilities for creating and manipulating the shadow password file and account entries within it.

Building the shadow package is quite straightforward. If you've retrieved a version that has been ported to Linux, you'll generally only have to modify the config.h file. I recommend the following settings (culled from various points within that file):

/* Use shadow password file.      */
#define SHADOWPWD
/* Use up to 16 char. passwords.  */
#define DOUBLESIZE
/* Enable password aging checks.  */
#define AGING
/* Log events to syslog facility. */
#define USE_SYSLOG
/* Support for remote logins.     */
#define RLOGIN
#define UT_HOST
/* Data file for most recent login time records */
#define LASTFILE "/var/adm/lastlog"

Once the package is built and installed, the pwconv command may be used to create an initial /etc/shadow file. It creates the files /etc/npasswd and /etc/nshadow. The former is an altered version of the original password file in which the password field in each entry has been replaced by an x; the latter is the corresponding shadow password file. In order to activate them, you must rename them by hand:

# cd /etc
# mv passwd passwd.prev
# cp npasswd passwd
# cp nshadow shadow
______________________

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState