| Component | Description |
|---|---|
| Motherboard | AIR 54CDP |
| CPU | Dual 90MHz Pentium (only one active) |
| Memory | 128MB (4-32MB SIMMs) |
| Video | Cirrus Logic CL-GD5430 |
| HBA | Onboard Adaptec AIC-7870 (Wide/Ultra) |
| Disks (SCSI) | 9GB Western Digital (System) 18GB IBM (Data) |
| NIC | Intel Pro100+ (100Mbps, DHCP client) |
| Operating System | NetBSD 2.0 |
| Public Services | DNS (Bind 9), SMTP (Sendmail), SNMP (NetSNMP), WWW (Apache) |
| Restricted Services (internal only) | NTP, Syslog (proxy for router), MySQL |
The above host is acting as a bastion host and network proxy, and so resides in a DMZ network segment, protected by a firewall. Here are the details on the firewall itself:
| Component | Description |
|---|---|
| Motherboard | Asus P55TP4N |
| CPU | 100MHz Pentium |
| Memory | 128MB (4-32MB SIMMs) |
| Video | Cirrus Logic CL-GD5430 |
| HBA | Adaptec AHA-2940UW |
| Disks (SCSI) | System - Seagate ST32550N |
| NIC | Intel Pro100+ (public @ 10Mbps) Intel Dual Pro100+ (DMZ @ 100Mbps, Private @ 10Mbps) |
| Operating System | NetBSD 1.6.2 |
| Public Services | None (relays all external connection attempts to bastion host) |
| Restricted Services (internal only) | NTP (client), DHCP Relay, SNMP (NetSNMP) |
Finally, if you have been looking at my web pages, you may have noticed I enjoy to play Unreal Tournament, and am the clan general for a gaming clan. As a result, I have put up a second bastion host. This server is running a private gaming server, and is also running a Zope/Plone server, serving several other web sites in my domain and which is accessed through proxy redirects through the main web server. Here are the details on that server.
| Component | Description |
|---|---|
| Motherboard | Gigabyte GA7DXE |
| CPU | Athlon 1700+ (1340MHz) |
| Memory | 256MB (256MB PC2100) |
| Video | Cirrus Logic CL-GD5430 (and I still have a few left!) |
| HBA | Onboard VIA IDE (KX133 - ATA/100) |
| Disks (ATA-100) | Maxtor 90845D4 (8GB) (system) WDC WD800JB (90GB) (Application/Data) |
| NIC | Intel Pro100+ (100Mbps, DHCP client) |
| Operating System | NetBSD 2.0 |
| Public Services | TeamSpeak (password protected),
UT2003 (password protected) Zope application server with Plone Content Management System for several web sites |
| Restricted Services (internal only) | SNMP (NetSNMP) |
While firewalls are a good first line of defense, they cannot be totally relied upon. So in addition to having the firewall, the OS and application software for these hosts are first built on one of my other machines and then are distributed to the machines using that nbuild. Because of this, I take advantage of this and routinely redistribute the files to these machines. This is the same technique I used to maintain almost 1500 hosts running BSD/OS when I worked at CompuServe. Not only does it make for more secure systems, but it makes for rapid recovery in the event of a problem. It can also make for upgrades with little or no downtime. Indeed, even when upgrading from NetBSD 1.5.x to NetBSD 1.6, and most recently from 1.6 to 2.0, I was able to accomplish the upgrade with only the downtime for two reboots. The first was to put the new kernel into place after it had been copied over, and the second was to make sure the new software was being used after it had been pushed.
To produce the distribution trees, I use a number of shell scripts to build these release trees in a sandbox which is mostly independent of the OS release on the build machine. The only restriction is that I cannot build the packages for a release tree across major release boundaries (such as for NetBSD-current on a 1.6.x host). You can see these scripts in my CVS repository.
Along with this, all configuration and content data is maintained in the same manner as the OS and application software. Master copies reside on other machines, often in a CVS repository, and periodically distributed to the servers.
Finally, I do extensive monitoring. All system logs are relayed back to a central server, where they are inspected for critical events. I also have SNMP monitoring in place to monitor the state and performance of all of my machines, which is displayed on windows of one of my two workstations. It is able to pop-up windows to alert me should a problem occur. This allows me to tell within 30 seconds of when a machine reboots or when I loose my DSL connection. Here is a snapshot of what I typically see. I also use MRTG to monitor my network to look for problems or to find trends which may indicate a problem.