Slashdot Mirror


RHN Bind Update Brings Down RHEL Named

alexs writes "Red Hat's response to update bind through RHN, patching the DNS hole, made a fatal error which will revert all name servers to caching only servers. This meant that anyone running their own DNS service promptly lost all of their DNS records for which they were acting as primary or secondary name servers. Expect quite a few services provided by servers running RHEL to, errr, die until their system administrators can restore their named.conf. Instead of installing etc/named.conf to etc/named.rpmnew, Red Hat moved the current etc/named.conf to etc/named.conf.rpmsave and replaced etc/named.conf with the default caching only configuration. The fix is easy enough, but this is a schoolboy error which I am surprised Red Hat made. Unfortunately we were hit and our servers went down overnight while RHN dropped its bomb and I am frankly surprised there has not been more of an uproar about this."

17 of 312 comments (clear)

  1. You didn't test before deploying an update? by Anonymous Coward · · Score: 5, Insightful

    So, you didn't test the update on a non-production server? Just install any old patch and let it take your network down? Who do you work for again? I have to make sure not to do business with that.

    1. Re:You didn't test before deploying an update? by suso · · Score: 5, Insightful

      Actually, I caught the error just from looking at the output of up2date/yum. It clearly said named.conf saved to named.conf.rpmsave. So all you have to do is compare what changed, implement any changes and copy named.conf.rpmsave over named.conf.

        Just as I said on the day of the release, be careful, don't just blindly update things.

    2. Re:You didn't test before deploying an update? by Sleepy · · Score: 5, Insightful

      >You know, not everyone has non-production servers. Every server we have IS production. And if you are paying for Red Hat Enterprise, you expect Red Hat to have tested these updates themselves. If this was a Microsoft error, Slashdot would be all over Microsoft for allowing this to happen.

      You are wrong; stop whining. You're just painting yourself as misinformed.

      1) The updates WERE tested.
      2) The admin installed "caching-nameserver", then configured his install to act far outside the default.
      3) He allows automatic updates straight into production. So do you it seems. Good luck with that! RHEL documentation says to not do this, but you're a bigshot "paying" for something different. I suggest you get a sidekick, and stick to the Windows side of your "enterprise".
      4) He didn't revert his .conf file, as is usually needed when some new line is added to a server .conf. This is SO NORMAL you'd have to be a n00b to get bitten!

      Your MS comparison is apples and oranges. If this guy did TEN MINUTES worth of testing he'd realize something's up, and he could revert the rpm package. How many MS updates prohibit uninstall? Quite a few!

      In Windows, you can't diff the before & after config, since Windows admins would rather be blind to what they're installing, since that's the norm and it's accepted.

    3. Re:You didn't test before deploying an update? by Dr+Caleb · · Score: 4, Insightful

      Perhaps it is his problem, but not his fault. Sounds like he's in the dreaded zone where IT is a necessary evil, not a department that can help leverage the business.

      He gets what he needs, or just barely what he needs. When management hands you crap, you learn to make crapade.

      --
      "History doesn't repeat itself, but it does rhyme." Mark Twain
  2. A schoolboy error? by something_wicked_thi · · Score: 4, Insightful

    What? And isn't it an error of similar proportion to upgrade your primary DNS servers without first testing the new install?

    1. Re:A schoolboy error? by imipak · · Score: 4, Informative

      Note as well that the initial release included a default conf file which specified a fixed source port, which of course breaks the fix.

      [Updated 10th July 2008] We have updated the Enterprise Linux 5 packages in this advisory. The default and sample caching-nameserver configuration files have been updated so that they do not specify a fixed query-source port. Administrators wishing to take advantage of randomized UDP source ports should check their configuration file to ensure they have not specified fixed query-source ports.

      Personally I'm surprised there's not been more uproar about the requirement to move internal DNS servers (yes, that means your Windows Domain Controllers in most corporate environments) outside any NAT'ing devices (eg: firewalls), as many NATs also break the fix by rewriting outbound UDP DNS queries to use the same or incremental source ports, which also breaks the fixes. Anyone here moved their AD outside the firewall?

  3. MS by FozE_Bear · · Score: 4, Insightful

    If it was a Microsoft product, we'd all be carrying pitchforks and torches....

    1. Re:MS by prandal · · Score: 4, Informative

      MS08-037 was released on the same day, and was much loved by ZoneAlarm users :-)

  4. bug details by tommis · · Score: 5, Informative

    Here's the bug details: https://bugzilla.redhat.com/show_bug.cgi?id=453340

    One of the bug comments says: "Latest caching-nameserver renamed my named.conf to named.conf.rpmsave in /var/named/chroot/etc" - so this should mean that you can still restore the lost conf file.

    1. Re:bug details by hughesjr · · Score: 5, Informative

      it is not a bug to get a caching nameserver if you install caching-namesever ... it would be a bug to install caching-nameserver and NOT GET a caching nameserver.
      A caching name server IS one that does not have any zones and only looks up zones from the DNS root servers. It is a configuration error to install the caching-nameserver package on a machine that doing anything other being a caching name server.
      Stupid admins have been complaining about this for 5 years ... but the documentation and bug entries all make it clear NOT to install the caching-namesever packages on DNS servers that control zones.

  5. Um... by wellingtonsteve · · Score: 4, Funny

    "I am frankly surprised there has not been more of an uproar about this"

    That's because the entire Internets are now broken!

  6. You are WRONG :D by hughesjr · · Score: 5, Interesting

    This article is absolutely wrong.

    The user has misconfigured their DNS and has installed a package called, SURPRISE, caching-nameserver along with the other bind packages.

    caching-nameserver IS just that, a caching-nameserver. It SHOULD NEVER BE installed on a DNS server that is used for Primary or Secondary DNS control. The bind packages do not in any way modify named.conf, but if you want a caching nameserver and if you have installed the caching-nameserver package, then you would EXPECT that it would replace the named.conf file.

    The real question is, how does crap like this get posted as a feature article on slashdot.

    1. Re:You are WRONG :D by _Sprocket_ · · Score: 4, Informative

      I'm not familiar with the package in question, but I assume it also installed some binaries. If it found that there already was a configfile of that name, it should have asked what to do.

      If setting up the caching-nameserver was a matter of changing config options, you don't need a package for that, you need a HOWTO.

      I would hazard to guess that unfamiliarity with the package is the real root cause of this. From the package description for caching-nameserver-7.3-3 (which could be a very old version):

      The caching-nameserver package includes the configuration files which
      will make BIND, the DNS name server, act as a simple caching nameserver.
      Many users on dialup connections use this package along with BIND for
      such a purpose.

      If you would like to set up a caching name server, you'll need to install
      the caching-nameserver package; you'll also need to install bind.

      The file contents show:

      Copyright.caching-nameserver
      caching-nameserver.spec
      localdomain.zone
      localhost.zone
      named.broadcast
      named.conf
      named.ip6.local
      named.local
      named.root
      named.zero
      rfc1912.txt

      And so there we have it - a package designed to install and maintain the very generic files needed to configure a caching DNS server. DNS server not included.

      And sure - this could be a HOWTO. But making a package allows for quick-and-simple configuration. And since this kind of thing is so generic, it really lends itself to packaging. I disagree that it should only be a HOWTO.

  7. Don't forget! by prandal · · Score: 4, Informative

    Don't forget to check your named.conf on RHEL 5.x (and CentOS 5.x).

    Make sure that any lines like

    query-source port 53;
    query-source-v6 port 53;

    are commented out or deleted so that forwarded DNS queries come from random ports.

    Restart BIND if necessary.

  8. Re:New update? by I+cant+believe+its+n · · Score: 5, Funny

    Yes, as an official red hat representative, I can say that we can. All you need to do at this time is respond posting your server addresses and login credentials. We will fix it from there.

    Ok, the login name is root and I use the default password: password for all our production machines.
    Oh, I almost forgot. Our IP is 207.46.19.254

    Please let our CEO know that I was the one who gave you this information.

    --
    She made the willows dance
  9. Re:Test your patches by Just+Some+Guy · · Score: 5, Insightful

    What kind of environment are you in where you don't first test your patches that are going out to live production machines? Regardless of the fact that it is linux and not windows, you should always test your patches before you roll them production.

    Disclaimer: I test first.

    You know, lot of people work in small shops that can't afford multiple redundant servers. I suspect that business with a single DNS/web/mailserver are a lot more common than Slashdotters this morning seem to thing. What are those admins supposed to do? They're receiving a critical security patch from a trusted vendor, and I imagine a lot of them feel pretty safe applying that to their sole production server. This doesn't make them stupid or incompetent.

    I have the luxury of lots of hardware that can fill in for other gear in a pinch, but lots of people don't. They don't deserve scorn for it.

    --
    Dewey, what part of this looks like authorities should be involved?
  10. Not a bug, expected behavior by Todd+Knarr · · Score: 4, Informative

    This sounds like how RPM's behaved as long as I can remember. It looks at three versions of a config file: #1 the one from the old package, #2 the one currently on disk and #3 the one in the new package. If the config file hasn't been customized (1 and 2 are identical), it moves the old file to .rpmold (if 1 and 3 differ) and puts #3 into place. If the config file has been customized, it checks whether 1 and 3 differ. If they haven't then nothing's chanced, the customized config file's still valid and it drops #3 in with the .rpmnew extension. But if 1 and 3 differ, then something in the config file may have changed and the customized config file may no longer be valid. But it's got customizations in it that the admin may need to refer to. So it outputs a warning message about what it's doing, moves the customized config file to .rpmsave and installs #3, and the admin's expected to have seen the warning and to merge their customizations into the new config file. You do watch for warnings and errors during the update, right?

    In this case RPM is right, old named.conf files aren't valid. If they're based off RH's old stock config files, they have the source port locked and that disables much of the security fix. So the admins do have to check and modify their customized files before the system's finally ready (or at least RPM has to assume they do, since it can't know exactly what their changes were). That's exacerbated by probably having caching-nameserver installed, but I think a stock BIND install has a similar named.conf until you add your own zones to it.

    I'd chalk this one up to admins who a) don't understand an inherent limitation of package-management systems (namely, it doesn't know why you changed something, only that you changed it), b) didn't watch the update process for errors, and c) didn't check the systems for functionality after the update.