Sunday, October 21, 2007

Solaris 10 package for pam_mysql

There are many choices for authentication in the UNIX operating system, and PAM (Pluggable Authentication Modules) gives a flexible and powerful interface to many of them.

Over at http://pam-mysql.sourceforge.net you can download source for a PAM module that allows authentication against MySQL - very handy. At 360is we have a managed email solution that permits virtual domain information to be stored in a MySQL database, and pam-mysql provides a nice method to authenticate IMAP and SMTP sessions against this database.

Faced with rolling this out to many Solaris systems we decided to compile pam-mysql and produce a Sun package of it - you can download it from here. We've only built this on Solaris 10 for i386 so far, but if demand for a Sparc version arises, we can probably build it too.

It's compiled with Sun Studio 11, complete with optimisations, and is linked against MySQL5 from Blastwave. You'll need a couple of packages from Blastwave to satisfy the dependencies (noted in the package) - CSWmysql5rt [mysql5rt] and CSWosslrt [openssl_rt].

A typical usage would be to have Cyrus SASLauthd authenticating against pam. Here's a quick example pam.conf entry for smtp:


smtp auth sufficient pam_mysql.so user=[SQLUSER] passwd=[SQLPASSWD] host=/tmp/mysql.sock db=[SQLDATABASE] table=[SQLTABLE] usercolumn=[SQLFIELD] passwdcolumn=[SQLFIELD] crypt=1 sqllog=0
smtp auth required pam_mysql.so user=[SQLUSER] passwd=[SQLPASSWD] host=/tmp/mysql.sock db=[SQLDATABASE] table=[SQLTABLE] usercolumn=[SQLFIELD] passwdcolumn=[SQLFIELD] crypt=1 sqllog=0
smtp account sufficient pam_mysql.so user=[SQLUSER] passwd=[SQLPASSWD] host=/tmp/mysql.sock db=[SQLDATABASE] table=[SQLTABLE] usercolumn=[SQLFIELD] passwdcolumn=[SQLFIELD] crypt=1 sqllog=0


...replace all the [] with your correct information.

Wednesday, October 10, 2007

Security assessments of Solaris systems

One of the banes of our lives whilst doing vulnerability assessments of Solaris has been finding what process owns a given TCP port that may be listening. On Linux this is easy to establish with a 'netstat -p', but Solaris has always called for the additional lsof package to help out. You could always mess about with pfiles to find the answer, but now somebody has kindly written a wrapper around it and created pcp.

Here's a quick example...


root@web ~ # netstat -an | grep LISTEN
88.111.12.111.80 *.* 0 0 49152 0 LISTEN
127.0.0.1.25 *.* 0 0 49152 0 LISTEN
127.0.0.1.587 *.* 0 0 49152 0 LISTEN
88.111.12.111.22 *.* 0 0 49152 0 LISTEN


During our assessment we spot the open port 587, and we're a little unsure about it. So we run pcp with the '-p' switch and the port number...


root@web ~ # pcp -p 587
PID Process Name and Port
_________________________________________________________
853 /usr/lib/sendmail 587
sockname: AF_INET 127.0.0.1 port: 587
_________________________________________________________



Et voila! It's sendmail with a process ID of 853. So simple.

pcp is a great tool to establish what process owns a listening port, and makes assessing Solaris systems considerably easier!

Friday, September 14, 2007

360is Quarterly Now More Widely Available

First published in early 2003, "Executive Intelligence" is the quarterly security briefing provided by 360is to our current clients. The briefing is extended to all former clients. Now in its 5th year, it is one of the longest running UK information security publications. No spam, no hype, no advertorial, just the facts 4 times a year, delivered to you as a PDF. For the first time ever, we have opened up distribution of EI to other professionals in our network or those recommended to us by our clients.

For those of you not on the distribution list and wondering what I'm talking about, the Executive Intelligence quarterly bulletin is composed of 4 sections:
  • Regulatory, Legal, and Governmental Developments. Our pragmatic analysis on the relevant interractions between UK compliance, UK law, and IT security for UK companies will mean you are not caught unprepared by questions from your auditors or your board.
  • Significant Global Security Events. We distill only the most important developments from this quarters press, allowing you to determine whether any change in strategy or priorities is appropriate for the security team under your direction.
  • Successful Operations. If a significant security weakness has been fixed, or a major criminal element has been busted, this is where you will learn about it.
  • Security and The Macro Environment. In the most unique part of our briefing, we analyze the impact on the IT security function of events in the wider environment. Geopolitical, economic, and social influences and how you can be better prepared for their impact on your responsibilities.
If you get your hands on a copy and want to be added to the official distribution list, register your details.

Tuesday, August 21, 2007

Solaris 10 package for scponly

A common situation we come across is one of allowing people secure filecopying to a system, but without giving full shell access to the system at the same time.

We've long since recommended scponly, which is a great solution to this very problem. scponly is a shell for UNIX systems that allows just that - scp/sftp only, with no access to an actual shell.

Today we were implementing this on a Solaris 10 x86 system, but couldn't find a Sun package to do it - so we compiled it up and rolled our own package

The version we've built was compiled with Sun Studio 11, complete with optimisations for speed. It installs to /opt/tsis/bin. If you're after scponly for Solaris x86, feel free to download and use our package. If you want the package for Sparc just drop us an email, and we'll probably be able to wrap it up for you pretty quickly (for free :-))

Friday, August 17, 2007

The magnificent 7

Here at 360is we've been using some common tools for a number of years - because, despite looking elsewhere, these tools have proven again and again to be great at the jobs they set out to do.

So we've picked out our most frequently recommended pieces of software and investigated them in more detail - the people behind them, how they came about, and what makes them worth using.

The seven are: nmap, syslog-ng, tcp-wrappers, ssh, sudo, postfix and rsync.

Go read the article!