Security in UPS Software?
Anonymous Coward asks: "Does anyone have experience with UPS software that has an eye towards security? i want an alternative to APC's 'Powerchute for Linux'. I've just discovered that Powerchute opens multiple ports and there are no options to turn this 'feature' off. What is even worse is that APC Support has announced no plans to address the issue. This means that if your firewall is running Powerchute, you might have security issues. Another example of the lax security: Powerchute requests root priveliges on install and has a certain 3-letter
default password that anyone could guess within 5 minutes! Can anyone help with suggestions for alternative software?" Hmmm... I wonder if I accidentally put the default password in the text of this story.
APC??
The purpose of a UPS is to store power for later use. Supporting high-entropy ("random") strings of arbitrary length is going to consume a lot of energy. If you want your UPS to spend all its time being secure and none of its time being useful, go right ahead. Personally I think I'll just risk some hackers seeming I'm down to 90% battery levels...
Most of the UPS hardware I've worked with talks SNMP. Why not for go the install of the software all together and use some simple SNMP commands to do what you need to do?
I dealt with them years ago, when I discovered that their Powerchute software was vulnerable to DoS. I discovered it like a lot of people - saw port 6667 bound, thought "What the hell is this server doing listening on an IRC port?", fired up mIRC, and watched Powerchute die silently. Their response at the time was that they expected it to be behind a firewall, and didn't really consider network security to be their problem. I'd love to find the email, but it's been years and I don't know where I'd have put it. I guess they've changed their tune now, but I still haven't seen their products improve much.
Someone should set up a test box with this software and then sue APC once they get hacked....
-- Argel
NUT talkes with APC and friends. It's GPL'ed and works.
http://www.exploits.org/nut/
Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.
ipchains/iptables/ ... are your friend!
Every server should have it's own firewall script anyway that only allows incoming traffic on a limited set of ports.
The solution is simple: Filter the ports, chmod -s some stuff, and call it a day.
The default password access page could easily be bypassed by anyone who knew the directory tree and the IP address of the workstation / UPS.
This was fixed a few weeks after the article came out for some reason.
Take a careful look at the software for ANY Web-controlled devices (including routers and toasters) for ugly surprises before running it on your network.
Tech Public Policy stuff
Large UPS's are almost always SNMP Rev1 Managed. No security. Add that plus the recent spate of attacks on high-level security providers who use unsecured SNMP...
Yes, it really is just a f%*kup waiting to happen.
Didn't we have a story about easy to guess passwords? When will people learn?
There is an optional cgi monitoring program that by default will listen on port 7000 I believe.
www.apcupsd.org
I use it and I do not think it opens any other ports except that one and as I said you don't need to have the cgi on. There is a powerchute clone. It is open source so if it does open a port up you can close this.
Oh the only other reason you may have ports is if you have slave machines and a master on one ups and you want the master to shut the slaves down. The slaves and masters all have to open communications so that they can be told to shutdown. I think in apcupsd if you have no slaves then this is not an issue.
Only 'flamers' flame!
At my old job, we decided to save a few bucks, and not use the APC serial cables connected to our servers. Plug the serial cable in, and WHOOM, the server powers down suddenly.
Swap that cable out for the APC one, and it behaves normally. I think they intentionally wired it so that you'd have to buy their cable.
I've written APC monitoring software. Just contact them for the communication protocol for the model you're using. When I was writing it, it was as simple as opening a com port and reading and writing characters. It was a bit screwy though because you'd query for a long string of info and if there was an alert during the response you'd get the alert interspersed with query data. But overall it's not hard.
- Sig this!
Debian has both "powstatd" and "powstatd-crypt" packages. It's also one of the easiest UPS monitors I ever tried to set up (a nice test script can show how your cable responds to various events on the UPS, so no more guessing). The powstatd-crypt version allows a master (with the cable plugged in) to notify slaves via an encrypted channel. That is, of course, optional.
Best of all, it's Free Software.
-- Don't Tase me, bro!
If you haven't already, you probably want to check out NUT, as mentioned above. I've never used it with a non-APC UPS, but according to NUT's compatibility list, it has support for quite a variety of UPS hardware.
If NUT doesn't support your hardware, you may find others there interested in developing a driver. You also may find it easier to get your UPS manufacturer to contribute a copy of its protocol docs to the project than to you individually.
Change the default password. It's easy and fun.
Firewall the ports you don't want it to use. If your firewall runs upsd, you're a moron, but you can still firewall those ports on whichever interface you want -- that's what a firewall does.
Now, let's ask ourselves: why would a program which can shut down your computer in the event of a power failure, and which listens on a serial port need root permissions to install???
Christ!
- A.P.
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
Here's what to do: /sbin/shutdwon
chmod 4755
Now 'nobody' can shut down your machine! very convenient!
We took an old server and stuck a bunch of multi-port serial cards in it. We used it as a gateway between the servers and the different UPS. Wrote some PERL scrips to handle it all. We had some other requirements such as a "panic button that killed power and shutdown the ups to totally shut off all systems.
Go ahead and mod me up. I dare you!
I started to read this, because I thought the article was about the software that UPS the shipping company gives large customers to allow entry directly into their systems.
Not some lame battery pack.