At about 9am yesterday morning, I noticed on my server monitor that the CPU utilization of one of my servers was abnormally high, in addition to a sustained 1mbit/sec of inbound traffic and 2mbits/sec of outbound traffic. syslog messages from Asterisk showed it to be a SIP brute force attack, so I dropped the offending IP (an Amazon EC2 instance IP) into /etc/idiots to block it and went back to my work.
A while later, I noticed the traffic still hadn't died down, so I reported the incident to Amazon and my server's network provider. No luck on either front; Amazon just sent back a form reply stating the incident was forwarded to the EC2 instance's owner (yeah, seriously) and the network provider said they wouldn't bother adding an ACL to their border equipment unless it was needed to protect their entire network. With the IP blocked on my server, the CPU utilization had died down and it was no longer sending out reply traffic, but I was worried about the inbound garbage traffic counting towards the server's monthly bandwidth cap.
I received an e-mail asking me how I got started with OpenBSD, so I thought I'd write the answer here in case anyone else wanted to read it.
I started using OpenBSD in 1998 (version 2.3 or 2.4) to host a BBS that I was running.
I chose OpenBSD because of its security record and because I was getting fed up with Linux (Slackware) at the time.
I think the machine was a Pentium 75 or something, and OpenBSD worked quite well on it.
During the course of building the BBS, I had to install some 3rd party software, so I got interested in OpenBSD's ports system to make installation of that software cleaner.
I submitted some ports to the ports@ mailing list and got them committed by other developers.
I tested others' ports and supplied feedback where I could.
I hadn't done much unix development back then, so writing simple makefiles for ports was an easy way to get involved.
posted on february 17th, 2008
with tags
openbsd and
thinkpad
I started working on an ACPI driver this evening to make my ThinkPad X61 work
better under OpenBSD.
I just finished it and so far it matches on the IBM0068 ACPI HID device,
checks it for the appropriate version, enables the Bluetooth device (which is
required before the hardware toggle switch can power it on and let the ubt0
device show up), and sets up a callback to run whenever a special button (e.g.,
Fn+F[1-9], brightness, ThinkLight, etc.) is pressed.
I'm pretty sure it will work on most other ThinkPads but I haven't tried it on
my X40 yet.
I mapped out all of the events that get generated, which on my X61 Tablet
include the screen rotating around, the lid opening and closing, and even the
pen being ejected from its little slot.
When the brightness buttons (Fn+Home and Fn+End) are pressed, it sends a CMOS
command through ACPI to actually adjust the screen brightness accordingly, so
now it's working just like my X40 did on its own.
Being able to turn the brightness down when on battery is the main reason I
wrote this.
posted on november 24th, 2007
with tags
hardware and
openbsd
Friday afternoon I decided to install a package on one of my OpenBSD servers,
but it was from a recent snapshot and the snapshot I was running on the server
was too old to run it.
No problem, I'll just upgrade the server. a usually quick task; just drop a new
kernel into /, reboot, untar the new disk sets over /, run mergemaster and
reboot again.
Remotely rebooting servers that are 350 miles away is always a nerve racking
experience.
You reboot it, your SSH connection drops, you start a ping waiting for it to
reply as you visualize it booting up and thinking about how long each piece
usually takes.
Occasionally something takes longer than normal and you start to panic, but
before you reach whoever you need to reach, it starts responding and suddenly a
wave of relief comes over you and you resume your work.
I bought a
Sharp Zaurus
and put OpenBSD on it with the intention of making a lap timer for my car.
I tried to use
this
timer on my Treo in my R32, but it's so buggy and would crash the phone all the
time, and trying to reboot a phone while racing around a track is not something
I'd recommend.
There are of course some
commercial timers
but they are expensive and usually require a laptop running windows to be able
to see the
gps-acquired data.
What's the fun in that?
We're coming out with a managed firewall product at work that is basically an
OpenBSD machine running pf that supports VPNs and all the usual malarkey.
An issue we run into a lot with our
hosted PBX
service is that some customers have networks with firewalls that cause problems
with TFTP, SIP, latency, etc.
It makes diagnosing problems harder and often the customers think the problems
are with our phone system when they're really with their firewall.
So if they get our firewall, we know everything will work and we'll have the
ability to change things if something doesn't work.
Finally
committed
my nvram driver.
I have my
tpb
port ready but since i made the /dev/nvram device owned by group kmem and
mode 440, tpb has to run setgid kmem which might not fly so well.
I looked at the code and I don't see any easy way to drop privileges since it
has to open /dev/nvram, read it, and close it every time it polls.
I'll post it to ports@ and see what people have to say.
tpb makes no mention of how the permissions should be handled and Linux's NVRAM
driver is 640, owned by root.root.
Maybe tpb needs privsep.
Ugh.
Since I've gotten my X40, I've been conversing with
markus@
about OpenBSD support since he also owns one.
I've since
ported
a driver for the TCPA/TPM security chip and one thing I always wanted to do was
hook into the blue "Access IBM" button to run
xautolock -locknow for one-touch locking.
The
tpb
program can hook into this button on Linux, but all of the work is handled by an
NVRAM driver in the Linux kernel.
Apparently the X40's BIOS toggles various bits in the CMOS RAM (NVRAM)
when certain buttons are pushed, like the volume buttons, ThinkLight, and of
course, the blue "Access IBM" button.
Last night I started looking into making an NVRAM driver for OpenBSD, which
turned out to be relatively easy, since the i386's clock code already has
functions for reading and writing to the NVRAM.
I put together a simple driver to provide user-land read-only access to the
NVRAM through a /dev/nvram device:
This morning, I woke up early and stumbled over to the computer.
My VT510 was blank, which is never good.
It either means I lost power or rt.fm is down.
I hit a key and see this scrolled over and over:
Which all stop at around 5:30.
sd1 is the new /mirror drive which I just upgraded to a month or so ago.
After a shower I went to DLS with the old /mirror drive to bring the server
back up, but my keycard wouldn't open any of the doors at the NOC.
Maybe i'm being fired…
posted on january 4th, 2004
with tags
mac and
openbsd
I gave up on making the kernel emulate right-clicking from the keyboard since
X11 already has all of this built in.
Someone on the ppc@ list hinted at binding PointerButton2 and
Pointer_Button3 with xmodmap.
This is basically what I'm using now, to have middle and right mouse buttons
through the Apple/flower key and the square 'Enter' key, respectively:
Someone on the ppc@ list posted about a
CVS tree
containing drivers for a lot of macppc hardware that hasn't been committed to
NetBSD yet.
I took his snapper and i2s drivers and whacked them into shape to link into
OpenBSD.
The snapper0 and audio0 drivers attach, but the kernel panics in the DMA
code when trying to play audio.
My
iMic
finally arrived, so I kind of stopped working on making the internal snapper
work.
With functioning sound, I've been able to boot into OpenBSD at work.
konq-e sucks, though, but Mozilla doesn't work so I'm stuck with it for now.
So now that X works on my PowerBook, I've been running OpenBSD when I get home
from work to continue making other things work so I can eventually run OpenBSD
all the time.
The awacs audio driver seems to be for older chipsets and doesn't support the
new "snapper" chip on my machine, so I'll need to port something from Linux or
use an external USB audio system.
Neither sound appealing.
While playing around in OpenBSD, I've found the keyboard to be very annoying.
At random times a key will appear to be stuck and continue repeating until some
other keys are mashed to get it to stop.
I was rdesktop'd into a Windows machine when this happened with the Enter key,
so after clicking on the Start Menu, it immediately selected "Shut down" and
then hit Enter on the confirmation screen.
Luckily the drop down was on "Reboot" and not "Shut down"
After reviewing
Linux kernel
and
XFree86
code for weeks, hacking the hell out of radeon_base.c adding random debugging
everywhere, searching mailing lists for clues, and lots of guessing, I finally
did the make && startx that resulted in a clean display coming up.