NetAdminTools.com
 
Categories:
GNU/Linux | Homebrew designs | Perl | Administration | Backup/Recovery | Bugs/Fixes | Certification | Database | Email | File/Print | Hardware | Information Grab Bag | Interoperability | GNU/Linux ABCs | Monitoring | Name Resolution | Network Services | Networking | Remote Control | Security | Desktop | Web | BSD | Solaris | GIAGD | REALbasic

Last 30 Days | Last 60 Days | Last 90 Days | All Articles | RSS | Hail Support


Categories:
·GNU/Linux
·Homebrew designs
·Perl
·Administration
·Backup/Recovery
·Bugs/Fixes
·Certification
·Database
·Email
·File/Print
·Hardware
·Information Grab Bag
·Interoperability
·GNU/Linux ABCs
·Monitoring
·Name Resolution
·Network Services
·Networking
·Remote Control
·Security
·Desktop
·Web
·BSD
·Solaris
·GIAGD
·REALbasic
·All Categories


Automated Log Monitoring with LogSentry and a Central Syslog Server II
Topic: Monitoring   Posted:2002-06-19
Printer Friendly: Print

spacerspacer
Part Two: Configuring a Central Syslog Server

By Urbana Der Ga'had

In Part 1 of this article we installed and configured LogSentry to automate the monitoring of the system logs on our machine. That's great if we've only got one or two systems, but what if we have a dozen *nix systems, or fifty, or one hundred? I can tell you right now we don't want to maintain one hundred separate sets of logcheck.ignore! Even if we used a single master file, we'd still have to distribute it to all systems, and maintain the LogSentry software itself. This is a job we should centralize.

In addition to the obvious advantages of centralizing the log monitoring, sending the system log entries to a centralized syslog server has security benefits. If your machine gets hacked, the intruder will most likely wipe all traces of the intrusion from the logs. At least with a central syslog server you'll get the entries associated with the attack itself, even if the intruder trojans syslog later and you don't get any more meaningful messages once the box has been rooted. This can be equally helpful in the case of hardware failure or other disaster.

What follows is a simple centralized syslog setup, suitable for systems that are inside a firewall. In Part Three of this article, we will look at ways to improve security and performance.

Configuring the Server

First consider the requirements and decide what system you're going to run as syslog server. Consider that parsing the logs will consume a fair amount of memory and CPU, and this requirement will increase as you add machines to your network. The system should be hardened and fully patched. It should not be accessible to users on the network. Think of this machine as an integral part of your network security infrastructure. Also, /var should be its own file system and it should be big enough to hold the log messages from all your machines, keeping in mind whatever rotation scheme you use (so for instance, you might have four sets of logs in /var/log or /var/adm at a given time.) Multiply the number of machines by the size of the system log directory on your busiest machine, like a mail server. That should hold you for a while.

The only special configuration needed on the syslog server is a change to the command options used to start syslog. It needs to be started with the -r option. This allows the syslog facility on your server to receive messages from the network.

On many systems this change will be made directly in the rc script used to start syslogd at boot time. Other systems use configuration files *for* the rc scripts, like Red Hat. No matter what, read the script and you'll find where the option can be specified. On Red Hat the options are read from /etc/sysconfig/syslog.

So on Red Hat we edit /etc/sysconfig/syslog and change this:
SYSLOGD_OPTIONS="-m 0"
to this:
SYSLOGD_OPTIONS="-m 0 -r"
Then restart syslogd. Install and configure LogSentry. Your server is now ready for action.

Configuring the Clients

The necessary changes for the clients are within the /etc/syslog.conf file. If you've got a bunch of systems with vanilla syslog.confs you can just make a new, slightly less vanilla configuration file and distribute it to all of your *nix systems with scp or rsync. For each appropriate entry in your syslog.conf (the ones that are writing to files), add an entry that sends them off to syslog server. Be careful with the file, it is sensitive to white space -- you must use tabs between the fields. Here's an example:

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none  /var/log/messages
*.info;mail.none;authpriv.none;cron.none        @10.10.10.15 
Now you can restart syslogd on the client. If you tail the messages file on syslog server, you should start to see all the lovely messages from the clients. Verify that you are getting your LogSentry emails. Now you can start developing the filters in logcheck.ignore. Omit the host name for patterns that should be ignored on all systems. Keep the host name in the message if it should apply to a specific host. The biggest pain in the butt is going to be developing your log filters. Remember, that which is not explicitly permitted is forbidden!





Please read our Terms of Use
Microsoft, Windows, Windows XP, Windows 2003, Windows 2000, and NT are either trademarks or registered trademarks of Microsoft Corporation. NetAdminTools.com is not affiliated with Microsoft Corporation. Linux is a registered trademark of Linus Torvalds, and refers to the Linux kernel. The operating system of most distributions that contain the Linux kernel is GNU/Linux. All logos and trademarks in this site are property of their respective owner. Copyright 1997-2008 NetAdminTools.com