I need a backup machine regardless of what I do here. The only reason I've been considering turning this thing into a firewall machine instead (and then either buying drives and putting them in external cases or buying a new machine for backups) is because I'm paranoid about people on the Interwebz hackz0ring me.
I feel you're on the wrong track - or I'm making too many assumptions.

If your ADSL router already blocks inbound connections, adding a second firewall won't add much value. Your biggest concern should not be incoming connections. Blocking incoming connections doesn't bring you anything if the machine behind the firewall doesn't listen on any ports anyway.
Your biggest concern should be outbound connections made by your desktop. In other words, those nasty frames in compromised websites, clicking links in e-mails you shouldn't entirely trust. If you want to solve this with a firewall, you have to use a default deny policy for outbound traffic on your firewall, and open ports to specific destination IPs. Trying to correlate outgoing connections when all you have to work on is the destination IP (remember, on the firewall you don't see the domain name) is prone with error and not a tenable solution.
Far better is using a personal firewall on your desktop that will pop up whenever something tries to connect outbound, so you can decide weather it's what you want or not, and set up policies as you go. It's a bit of work in the beginning but after a while it doesn't bother you except when something unexpected happens, and that's exactly what you want. I use Little Snitch on the Mac for this. Once you have a good set of policies, you can then translate that to a policy on your adsl router's firewall (I assume you can block outbound connections?).
The one problem with iptables is that it's not DNS aware at runtime, in other words, you cant block a DNS name, and expect that iptables will block the corresponding IP. In the case of a dedicated firewall, iptables only sees an IP address. And even if you're running iptables on your desktop, it still doesn't work.
Here's an example. Let's say you want to block outgoing connections to googleads.g.doubleclick.net (which mybb uses). Let's see what's in DNS:
Code:
# dig googleads.g.doubleclick.net
; <<>> DiG 9.7.3 <<>> googleads.g.doubleclick.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52619
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;googleads.g.doubleclick.net. IN A
;; ANSWER SECTION:
googleads.g.doubleclick.net. 33512 IN CNAME pagead.l.doubleclick.net.
pagead.l.doubleclick.net. 210 IN A 74.125.230.153
pagead.l.doubleclick.net. 210 IN A 74.125.230.154
So we know that googleads.g.doubleclick.net will resolve to 74.125.230.153 and 74.125.230.154. Let's say we block that:
Code:
# iptables -A OUTPUT -d googleads.g.doubleclick.net -j REJECT
Now what does iptables do? IT does a DNS lookup, gets the resulting IP address(es), and block that:
Code:
# iptables -L OUTPUT -n --line-num
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 74.125.230.154 reject-with icmp-port-unreachable
2 REJECT all -- 0.0.0.0/0 74.125.230.153 reject-with icmp-port-unreachable
Now, reject any connections destined to those two IPs, but what if they change? Or what if doubleclick adds a 3rd server to the mix? You're iptables rule won't know that.
There's a further pitfall to this approach. You might want to block access to one domain that is hosted on the same IP address as another domain you don't want to block. iptables is not the tool for that.
There is some GUI tools out there for Linux personal firewalls as well.
Could you recommend a few? Any ones that aren't simply a front-end for iptables?