Slashdot Mirror


Hardening Linux

r3lody writes "Hardening Linux, by James Turnbull, stands out as an important text that clearly lays out how to make your Linux boxes as secure as possible. Mr. Turnbull has done a noteworthy job in delineating many potential vulnerabilities, and how to mitigate them. Each chapter covers a particular area in depth, with carefully worded and easy-to-follow examples. In the cases where you need to install some other piece of software to provide extra security, Turnbull gives you the step-by-step details, removing the chance of misinterpretation. As you finish each chapter, you will want to apply your newfound knowledge to the machines at your disposal." Read on for r3lody's review. Hardening Linux author James Turnbull pages 584 publisher Apress rating 9/10 reviewer Ray Lodato (rlodato AT yahoo DOT com) ISBN 1590594444 summary In-depth explanations with step-by-step techniques for securing Linux and common applications.

Naturally, the strongest building will collapse if built on a weak foundation, so Turnbull starts by considering what you need to harden a stand-alone Linux host. He discusses what applications to install and how to secure the boot loader (both LILO and GRUB are covered). The init sequences and scripts are covered next, as well as the login screen. Information on securing users and groups using PAM (Pluggable Authentication Modules) comes next, followed by package management and kernel patching. Finally, Turnbull finishes up with how to keep informed on security issues in the future. All of that is contained in chapter 1, and there are ten more to go! Each chapter ends with a list of resources in the form of mailing lists, web sites, books, etc., so you can fill in any blanks Turnbull may have left in.

Current security postures dictate that every network-connected device needs to be secured from the inside out. Turnbull apparently believes the same thing, and covers the Netfilter firewall framework built into the Linux kernel. Once again providing the careful step-by-step procedures, he demonstrates how to use iptables to manipulate Netfilter chains for maximum protection. There are a number of kernel parameters to Netfilter that can be modified using the sysctl command. James describes the more important ones (such as conf/all/accept_redirects, icmp_echo_ignore_broadcasts, and all under the /proc/sys/net/ipv4 pseudo-directory), and how to keep the changes in place across reboots. He also discusses how to log firewall rules, and keep the code updated using Patch-O-Matic.

As each subsequent chapter unfolds, Turnbull carefully explains how to tighten remote administration, files and file systems, mail, ftp, and DNS/BIND. He gives additional information on how to log important information securely and efficiently monitor the data collected. In addition, tools for testing the security of your hosts are described very clearly, from the inside out and the outside in, along with explanations of how to detect penetrations and recover from them.

Writing about securing a computer system can be written on a few different levels, from the general suggestions which apply to just about any program, to the specific which apply to just one. Turnbull picked commonly used programs and provide step-by-step procedures for locking them down. For example, if you are hardening a mail server, you will find descriptions of Sendmail and Postfix, but not of Qmail or Courier. While this might limit the appeal of the book to just those using the more common programs, it allows a depth that would be otherwise unavailable.

The only quibble I have is that his book does not go far enough. While the chosen applications are covered in great depth, some applications are missing. There is no coverage for a web server, such as Apache, or a database server, such as MySQL. I can only hope that a future edition of the book includes chapters on these and other categories of programs.

Hardening Linux by James Turnbull belongs on the shelf of anyone who installs and maintains Linux servers. The information is easy to follow, and will help you configure your systems very securely. The additional insights into why the configurations are important is extremely valuable in its own right."

You can purchase Hardening Linux from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

33 of 137 comments (clear)

  1. At first I read... by Chickenofbristol55 · · Score: 2, Funny
    "Linux has a hard-on"

    Im glad that wasn't really what it said.

    --
    public class null extends java applet { System.out.print ("Tabula Rasa"); }
  2. Linux II: The Hardening by Orrin+Bloquy · · Score: 3, Funny

    No, come to think of it, that's sending the wrong kind of message.

    --
    "Made up/misattributed quote that makes me look smart. I am on /. and I must look smart."
  3. IDS by afra242 · · Score: 4, Interesting

    Does the book go into IDS tools such as Snort? I couldn't find any reference to this, but I can't imagine it to be left out of the book. Are there any well known tutorials/books out there on these tools?

    Btw, thanks to fellow Slashdot readers for recommending DenyHosts - superb tool to stop those brute force SSH attacks...

    1. Re:IDS by r3lody · · Score: 3, Informative

      Chapter 6 (Using Tools for Security Testing) goes into NMAP and Nessus in depth, then mentions a few additional tools at the end. dsniff, Ethereal, Ettercap, LIDS, Netcat, SARA, Snort, tcpdump, and Titan each have a one-paragraph writeup, with links to the websites for the tools.

  4. Re:Good advice... by AKAImBatman · · Score: 2, Funny

    ...for when keeping your box in a safe, cut off from the outside world, isn't an option.

    Class C2 rating, Orange Book, IIRC. The same rating that Microsoft made such a big deal about Windows NT obtaining. So much for that bit of marketting. :-)

  5. The full text of the book by Anonymous Coward · · Score: 5, Funny

    ifconfig eth0 down

    There, I've save y'all $20

    1. Re:The full text of the book by Canonymous+Howard · · Score: 3, Funny
      ifconfig eth0 down


      It just tried that and it didn'

  6. I'll stick with OpenBSD and Trusted Solaris. by CyricZ · · Score: 2, Insightful

    While I'm sure a properly secured Linux system does make a fantastic server, I find that I tend to stick with OpenBSD and Trusted Solaris for those systems that need to be impenetrable.

    Has anyone done a recent comparison/evaluation of a highly secured Linux system versus similar OpenBSD and Trusted Solaris systems?

    --
    Cyric Zndovzny at your service.
    1. Re:I'll stick with OpenBSD and Trusted Solaris. by sgifford · · Score: 2, Interesting

      You know, the thing that's been keeping me on Linux lately is Debian's apt. I've gotten addicted to the ease of keeping Debian systems up-to-date, especially since I'm responsible for about a dozen systems in different locations and don't have much time to take care of them. I found that when I maintained Solaris systems, package management was a pain, and I procrastinated updating things because it was time-consuming and sometimes broke things. On OpenBSD, recompiling everything from ports seems time-consuming and error prone, especially with a large update (like X). Plus I like being able to use debsums to track checksums on everything I've installed, and have it tell me if any of my executables have changed; sort of a poor-man's tripwire.

      On the other hand, it's been a while since I took a look. Has package management gotten better on Solaris or OpenBSD, to the point where I can keep a system up-to-date with about 1 minute a week of my attention?

      I keep hoping somebody will package a Debian OpenBSD. That's something I'd use in a heartbeat, if it were well-maintained.

    2. Re:I'll stick with OpenBSD and Trusted Solaris. by arthas · · Score: 3, Insightful

      Package management (ports collection) has really been improved in OpenBSD 3.7 and 3.8. Here is one interview with an OpenBSD ports developer. It seems to me that OpenBSD developers actually recommend that users should install binary packages (from the interview: "Most people should only see the binary packages and pkg_add"). One quite nice thing about these OpenBSD ports tree compared to FreeBSD ports is that the OpenBSD ports tree is frozen so you actually get something like Debian stable style system where only maintenance updates are "backported" from ports-current to, say, ports-3.8 branch.

      OpenBSD ports/packages system unfortunately does not have automatic update like "apt-get upgrade". You have to know the package names and versions to upgrade them. pkg_add actually has -u switch but it only lists the package names. However a proper automatic update fuctionality is already in CURRENT. From the OpenBSD-CURRENT pkg_add(1) man page:

      -u Update the given pkgname(s), and anything it depends upon. With this option, if no pkgname is given, pkg_add will update all in- stalled packages. This relies on PKG_PATH to figure out the new package names.

      So this probably means that 3.9 (released in about 6 months) is going to have a real package upgrading system.

  7. Re:So .. why doesn't Linux come setup with all thi by Jerry+Coffin · · Score: 4, Funny
    Surely a good way to harden Linux would be to apply as many of these 'hardenings' at install time, particularly for server installs?

    So why aren't they?

    Because it's not OpenBSD?

    --
    The universe is a figment of its own imagination.

    --
    The universe is a figment of its own imagination.
  8. A similar book by ChaserPnk · · Score: 3, Informative

    I reviewed a similar book with the same title for Linux Journal a few months ago. If you're into security, you might find it interesting.

    --

    "A diplomat is a man who always remembers a woman's birthday but never remembers her age." -Robert Frost
  9. Hmmm... by rackhamh · · Score: 3, Insightful

    I hope this isn't taken as a troll. How can Linux users claim better security than Windows, then write books about how to make sure the OS really is secure?

    If we could get the average Joe Bob Windows user to read a book about security, I'm sure we'd see a lot fewer Windows security breaches, too.

    All of which just suggests to me that the difference is in the user base (that's a compliment), not the technology.

    1. Re:Hmmm... by halltk1983 · · Score: 2, Insightful

      Jane wrecked her kia rio and died.
      Jim wrecked his Hummer and died
      Therefore both vehicles are deathtraps.

      Never mind that the accidents may have happened completely differently. One is safer than the other. It all a matter of degree.

      --
      Watch for Penguins, they eat Apples and throw rocks at Windows.
  10. securing networks by Paralizer · · Score: 3, Interesting

    I've been using Linux (gentoo) at home for a few years now, and I seem to be able to fix most problems I have with it that arise. In a few months it is likely I will be hired by my university to become one of two administrators for our Linux network (I'm a student as is the current administrator).

    I've never really dealt with security issues on my home machine as it's behind a firewall and really isn't a target anyone would be interested in, but if I take the position as an administrator at my school I'll be responsible for maintaining and keeping upward of 100 computers secure and running.

    For a beginner such as myself, and with my limited experience with Linux and Linux security, would this book be the best resource? Certainly by the review it seems sufficient, but I'm interested in what other people may recommend too.

    1. Re:securing networks by MyDixieWrecked · · Score: 3, Interesting

      I'm also a gentoo guy.

      I picked up O'Reilly's book "Building Secure Servers with Linux" and learned a lot.

      it pretty much explains how to set up iptables, the theory behind ssh and ways of better securing it (private/public/shared keys, etc), ways of securing apache, and a slew of other stuff. It's all about best practices.

      The only real problem I had with the book is that in some cases, the author is truly paranoid and goes seriously overboard with some techniques, and some of his ideas would never work on a gentoo system. One such thing is that he advises against having development tools (namely gcc) on the server, that way, even if someone manages to compromise the box, they won't have any tools to build/run their rootkit. He suggests using a separate NIC and connecting with a laptop to transfer the binaries to the server. although that will give you a serious piece of mind, it's overkill for many people.

      I'm considering picking up this book, though. I like to read about computer security, and I'm amazed at the ingenuity of hackers, from the white-hat to the black-hat. Computer security is quite facinating.

      --



      ...spike
      Ewwwwww, coconut...
    2. Re:securing networks by jcnnghm · · Score: 2, Interesting

      I originally got Hardening Linux out of the library, and liked it enough to buy it after I renewed it twice. I think it's a pretty good desktop reference and is quite informative. It's fairly easy to follow, straightforward, and just plain useful.

      I also purchased Hardening Apache, although I haven't had a chance to make use of it.

      --
      You don't make the poor richer by making the rich poorer. - Winston Churchill
    3. Re:securing networks by DavidTC · · Score: 3, Insightful
      Not having compilers is the STUPIDEST advice ever.

      Does the system have Perl?

      First you paste a Mime::Base64-running Perl program in, and then you launch it and paste in the Base64 code. Look, you can get binaries on the system from a shell window!

      This is what is known as 'security-through-inconvience'.

      --
      If corporations are people, aren't stockholders guilty of slavery?
  11. Shameless by joeybagadonuts · · Score: 5, Informative
  12. Part of a "series"? by DaveK08054 · · Score: 2, Informative
    The reviewer writes:
    There is no coverage for a web server, such as Apache

    It looks like the publisher already has a book out called "Hardening Apache".
    --
    Dave K. Mt. Laurel, NJ USA
  13. Harden Linux? by darthnoodles · · Score: 2, Funny

    Just show it a female penguin dressed to kill.

  14. Sendmail? In a secure system by Animats · · Score: 3, Interesting
    As Google puts it,

    Results 1 - 10 of about 191,000 for 'sendmail "security hole"'
    Results 1 - 10 of about 1,910,000 for 'sendmail bug'.

    Any questions?

    1. Re:Sendmail? In a secure system by 51mon · · Score: 2, Informative

      > Otherwise it will continue to stand to reason that sendmail has just as much place in a secure system today as Qmail.

      Compare the security history since both qmail and postfix were released, lets choose January 2003, against sendmail.

      CERT Vulnerability note search.

      Sendmail 6 vulnerabilities including 4 buffer overflow vulnerabilities, at least one risks a remote root exploit, one was IBM specific and just silly IBM. Many prior ignored.

      Postfix one DoS in 2003.

      Qmail no hits.

      Patching complex systems doesn't meaningfully reduce the number, or scope, of security holes in most cases, you need (re)engineering to do that, or at least rewriting problem areas from scratch. Software doesn't always age gracefully, as any programmer will tell you.

      Given the much more extensive feature set of Postfix to Qmail, hey Qmail maybe quite secure, but it doesn't do very much, I choose Postfix. Sure Sendmail is improving, but they would have to release a whole new architecture to attract the security conscious system admins.

      Indeed they have just announced a new sendmail with a security architecture that borrows heavily from the Postfix school of thought.

      Don't get me wrong I'm just dismantling out last two sendmail servers, and they have done an okay job, but they required a lot more love and attention than Postfix would have to keep them going. Qmail is even easier if you only want what qmail does, otherwise it is patchomatic time, and I don't trust the qmail patches to be as secure as Dans code.

  15. Re:Save (more than) FIFTEEN BUCKS! by 70Bang · · Score: 3, Informative



    How about prices which include shipping and are less than Amazon's cover price?

    (there are online bookstores other than Amazon and B&N)


  16. There are tradeoffs. by CyricZ · · Score: 4, Insightful

    Like always, a higher degree of security often means that tradeoffs must be made. In many cases such tradeoffs reduce the ease of use of the system, or reduce the performance. Such tradeoffs aren't always suitable.

    Take OpenBSD, for instance. While it offers an extremely high level of security, it comes at a price. A system running OpenBSD usually does not perform as well as a system running FreeBSD or NetBSD, for instance. You may also have to use older versions of software, or not use certain software at all (ie. PHP).

    In many situations, performance is more of an issue that security. Most Linux distributions, especially those intended for use on servers, are fairly secure out of the box. So users end up getting a higher degree of performance, even if there security level isn't as high as possible. A good blend, one might say. However, if you do need the utmost level of security, you can always use something like SELinux or OpenBSD.

    --
    Cyric Zndovzny at your service.
  17. What about the audits? by CyricZ · · Score: 2, Informative

    It's not just about limiting the number of default services. The OpenBSD project has performed years of strenuous code audits. Those have identified, and thus resulted in the fixing, of many bugs.

    Then there's the whole emphasis on security in the first place. Code doesn't make its way into OpenBSD without being heavily scrutinized.

    OpenBSD is secure because they don't enable potentially dangerous services right off the bat, but also because their development process puts such a heavy emphasis on only including highly secure code.

    --
    Cyric Zndovzny at your service.
  18. It's easy! by kuzb · · Score: 3, Funny

    #include <viagra.h>

    --
    BeauHD. Worst editor since kdawson.
  19. Re:SELinux? by Spetiam · · Score: 2, Informative

    (let alone know where to get it [nsa.gov]?)

    Getting SELinux is easy. Some distributions (notably Fedora and CentOS) have it installed and enabled by default, and I suspect that anyone who has done any amount of research into "hardening" their system has heard of SELinux.

  20. Because "better" != "perfect". by khasim · · Score: 4, Informative
    Just because Linux is better than Windows does not mean that Linux cannot be improved.
    If we could get the average Joe Bob Windows user to read a book about security, I'm sure we'd see a lot fewer Windows security breaches, too.
    Maybe, maybe not. There are lots of books on Windows security out there, also. And lots of people buy them. Microsoft even tried to make patching easy. Microsoft even provided a firewall with WinXP-sp2.
    All of which just suggests to me that the difference is in the user base (that's a compliment), not the technology.
    I don't see it like that.

    A good Windows admin can "secure" his system as well as a good Linux "admin". The difference is how much work and effort are required.

    I like Ubuntu. By default, Ubuntu installs with no open ports. So, securing Ubuntu against worm attacks takes no effort on a default installation.

    But securing Windows against worm attacks requires constantly reading the vulnerability disclosures. Or adding an additional layer that requires a different skill set.

    It's only when you get beyond the default installation that admin skills become important. The current problem is that there are so many older versions of Windows out there were sold with a very open default installation that are still vulnerable.
  21. SELinux et al by jd · · Score: 4, Interesting
    SELinux is in the kernel and one popular distribution at least (Fedora Core) has SELinux-enabled utilities and configuration files as standard, so anyone using that will be using it whether they know what it is or not.


    Having said that, there are some good arguments that GRSecurity and some of the other Linux-hardening patches offer better role-based security than SELinux, due to potential limitations of the Linux Security Modules infrastructure. Those seriously interested in hardening Linux would be very well-advised to look through what is available. Having said that, BEWARE FUD! There's lots of claims and counter-claims, and nothing seems to have earned more rigid, fundamentalist stances than computer security.


    There are checks for Common Criteria level 3 for Linux, but none for level 4 (which I believe RHEL is now certified to, or was it SuSE?) and there is a lot of contention as to whether these checks actually do anything useful. Are role-based memory locks and network locks actually useful? It would severely limit the security mechanisms you could use, so if you needed some other criteria as well, you might be stuck. POSIX ACLs or Trustees or do you need ACLs at all with role-based mechanisms?


    Then there's the password file. Shadow is limited in the number of hashing algorithms it'll support and it may be vulnerable to rainbow dictionary cracks. The mainstream implementation does not support any unbroken hashing algorithms, which may pose other problems - though that is hard to prove. PAM is notoriously fragile, raising questions as to whether it can be considered safe or whether it should be redone. It is also unclear, especially if you use role-based computing, that the full username list should be exposed to all users. It may be more correct for the password and shadow files (if used) to be virtual, where the entries "present" depend on the user viewing the file. But that would add complexity (a BIG no-no in security) and latency.


    Not all security options even exist for Linux, though it is unclear why. No Orange Book B-class patches exist for Linux, to the best of my knowledge, the best I've ever seen are just partial implementations. Very little encryption hardware is supported - far more specs have been published than have been coded to, and far more chips exist than specs. I won't even get into the limited security of e-mail clients and servers. How long have PGP and GnuPG been around??? X.400 may not be popular, but it is good on the security angle - so how many clients or servers exist for Linux???


    All in all, this is an area the GOOD security guy will be doing a LOT of research in, no matter how much they know. And then, because nobody is an expert in everything and even fewer are experts in security, the REALLY GOOD security guy will not limit themselves to what they can know or understand. The REALLY REALLY GOOD security guys won't even limit themselves to what others can know or understand*.


    *Ok, that's worded more for effect than accuracy. The accurate version would be that they are interested in solutions that make unauthorized access within the expected lifetime of the data and/or system highly unlikely at best - or, in the few cases you can do this, actually impossible. (You cannot break a one-time pad without the key, for example.) This is usually done by looking for "really hard problems" and hoping nobody comes up with a really easy solution. (A "really hard problem" is one that either cannot be solved in a determinate timeframe - such as NP-complete problems - or that cannot be solved, on average, in the timeframe you care about - which accounts for 99% of all popular strategies used in encryption.)

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  22. Re:SELinux? by HalfStarted · · Score: 2, Interesting

    That is pretty much on target. SELinux only provides really only provides MAC (Mandatory Access Control). This is a big first piece but isn't enough to completely secure a system, there are still other considerations, such as system auditing, needed to have a fully trusted system.

    For the most part SELinux provides binary compatibility for user space applications and ever since it was integrated into the 2.6 kernel provides binary compatibility with most modules... there are some modules that don't behave well with SELinux, some can be fixed with fine grained SELinux policies the rest need patches to their source to interact with the kernel correctly.

    Applications don't really have anything to do with SELinux really, what SELinux (or really, what any MAC system does) is compartmentalize the system so that if any given application is compromised the break is limited to that one application and can not be capitalized on to compromise the system at large. SELinux and all other MAC systems rely on correctness of the policy configuration to provide system level security. Extra steps are still needed to protect each independent app though to make sure it is hardened against break-in. While it is important that a cracker is not able to take control of your box you still want to keep him from crashing your application server or web pages and such.

    In addition to SELinux (NSA SELinux there are other MAC systems such as:
    GrSecurity and RSBAC (RSBAC seems to be down though).

    Other very interesting thing to look at are hardened tool chains (gcc with PIE, position independent execution and SSP, stack smashing protection) as well as PaX which is a kernel patch that provides extended security options such as ALSR (Address space layout randomization), non-executable memory. PaX provides some very strong kernel level features that harden all applications from attack. It does come at a slight cost though; some of the features have a minor performance hit, notably nx memory on x86 machines because they do not provide a true NX bit for pages, it has a fairly steep learning curve and some applications plain don't work with it... XOrg and Java VMs for example, because the way they are written they need executable pages for dynamic code generation. PaX security options can be set at a per file or per role (in a MAC system) level so it is still possible to run these apps, they just will not make use of the protection provided by PaX and will need to be tightened down in other ways. The really big gotcha with PaX is that elfloader doesn't support global offset tables or procedure linkage tables. These are required for ALSR in particular so to use PaX libraries need to be statically linked or loaded with dlopen... none of the current binary graphics card drivers for NVidia or ATI work with PaX so if you can't get 3D acceleration from DRI et al. you don't get 3D acceleration.

    --


    Have you thought for yourself today?
  23. Re:Avoid PHP. by BestNicksRTaken · · Score: 2, Insightful

    i'm not sure if it's actually php's fault, it seems that because it's such an easy and available language (on every web host by default) it attracts n00bs a bit too much - the kind of people who are graphics designers who fancy themselves as programmers or 'web developers'. then there's the books - i've seen way too many tutorials telling the user to do extract($_GET); and things like that, sql injection anyone? the whole addslashes() stuff is a bit confusing too - there are so many functions that do something very similar (plus php.ini options too). i personally haven't touched php in over a year (i mainly got tired of working with crap programmers and the slowness of the xml parser), but recently tried php5, doesn't seem to be any security features added - something like perl's taint mode would be nice.

    --
    #include <sig.h>
  24. Re:Good advice... by DumbparameciuM · · Score: 2, Informative

    "...for when keeping your box in a safe, cut off from the outside world, isn't an option..." Exactly. The most secure box in the world, irregardless of OS or Distro, is the one that hasn't yet, isn't currently, and never will be connected to the internet. But, unfortunatly, that isn't always a practical solution. I'll look out for this one.

    --
    "We are Samurai, the Keyboard...Cowboys"