Console Login
Home / Blog / System Administration / Linux Server Hardening: 5 Steps to Stop Script Kiddies Cold (2009 Edition)
System Administration 0 views

Linux Server Hardening: 5 Steps to Stop Script Kiddies Cold (2009 Edition)

@

Assume You Are Under Attack Right Now

I deployed a fresh CentOS 5.3 node yesterday at 2:00 PM. By 2:15 PM, /var/log/secure showed 400 failed login attempts. Welcome to the modern internet. If you are running a server, you are a target.

It doesn't matter if you aren't hosting bank data. Botnets want your bandwidth and your CPU cycles. They want to turn your shiny new VPS into a spam relay or a node in a DDoS cannon.

I've spent the last decade cleaning up compromised boxes for clients who thought "default settings" were good enough. They aren't. Here is the exact hardening protocol I use for every production machine, from web servers in Oslo to database clusters in Kyiv.

1. Kill Passwords, Use Keys

If you are still typing a password to SSH into your server, you are doing it wrong. Brute force scripts iterate through dictionaries faster than you can blink. Disabling password authentication is the single most effective step you can take.

First, generate your keypair locally:

ssh-keygen -t rsa -b 4096

Once you've copied your public key to ~/.ssh/authorized_keys on the server, edit your SSH config. This is non-negotiable.

File: /etc/ssh/sshd_config

PermitRootLogin no PasswordAuthentication no UseDNS no AllowUsers yourusername

Restart the service. Now, the scripts can knock all day, but nobody is home.

2. The Firewall: IPTables is Your Best Friend

Many admins are scared of IPTables. They shouldn't be. It is the kernel-level gatekeeper that stands between your data and the void. A "Default Drop" policy is the only sane choice. If you don't explicitly allow it, it shouldn't get in.

Here is a baseline configuration for a web server (HTTP/HTTPS/SSH):

# Flush existing rules iptables -F # Default policies: Block everything by default iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # Allow loopback (local traffic) iptables -A INPUT -i lo -j ACCEPT # Keep current connections alive iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Allow SSH (If you changed your port, update this!) iptables -A INPUT -p tcp --dport 22 -j ACCEPT # Allow Web Traffic iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Pro Tip: Always run iptables -L -n to verify before you save. If you lock yourself out, you'll need console access (which is why CoolVDS provides a specialized VNC out-of-band console for emergencies). Save your rules with /sbin/service iptables save on CentOS.

3. Update or Die

Linux distributions are robust, but software has bugs. The exploit window—the time between a vulnerability being published and a patch being applied—is where you get hacked.

On Debian/Ubuntu:

apt-get update && apt-get upgrade

On CentOS/RHEL:

yum update

Automate the notification, not necessarily the installation. You want to know when patches are available, but you don't want a kernel update automatically rebooting your database in the middle of a transaction.

4. Secure Shared Memory

One common attack vector on shared hosting environments is executing malicious scripts from temporary directories. While /tmp is necessary, it shouldn't be a playground for hackers.

If you haven't partitioned /tmp separately, you can create a secure tmp file:

dd if=/dev/zero of=/usr/tmpDSK bs=1024 count=1024000 /sbin/mke2fs /usr/tmpDSK mount -o loop,noexec,nosuid,rw /usr/tmpDSK /tmp chmod 1777 /tmp

Adding the noexec flag prevents binaries from running directly from this directory. It breaks many automated rootkits instantly.

The Virtualization Factor: Why "CoolVDS" is Different

Software hardening only goes so far if your neighbor on the physical server brings the whole node down. In the current hosting market, cheap "Container" VPS hosting (like OpenVZ) is flooding the industry. The problem? You share the kernel. If a kernel exploit hits, everyone on that host is compromised.

This is why at CoolVDS, we rely on Xen virtualization. It provides true hardware isolation. Your memory is your memory. Your Swap is your Swap. We also use high-performance 15k RPM SAS RAID-10 arrays. While others save money with cheap SATA drives that choke under load, we ensure your I/O wait times remain negligible.

Local Law & Latency

For my fellow admins here in the Nordics, physical location matters. Hosting your data in the US puts you under the Patriot Act. Hosting in Oslo (where our datacenter is located) keeps you under the Norwegian Personal Data Act (Personopplysningsloven). Plus, if your users are in Europe, why add 100ms of latency crossing the Atlantic?

Final Thoughts

Security isn't a product; it's a process. These steps are the foundation. From here, you look at installing fail2ban to parse logs and ban IPs automatically, and perhaps rkhunter for daily integrity checks.

But the first step is choosing a platform that respects the technology. Don't build a fortress on a swamp.

Need a sandbox to test your hardening scripts? Deploy a Xen-based instance on CoolVDS today. We are live at NIX (Norwegian Internet Exchange) for unbeatable local speed.

/// TAGS

/// RELATED POSTS

Paranoid Security: Hardening Your Linux VPS Against 2011's Threat Landscape

It's 2011 and LulzSec is on the loose. Default configurations are a death sentence. Here is the batt...

Read More →

IPv4 is Dead: A Battle-Hardened Guide to Native IPv6 Deployment

IANA officially ran out of IPv4 blocks in February. If you aren't dual-stacking now, your infrastruc...

Read More →

Surviving the Digg Effect: High-Availability Load Balancing with HAProxy on Linux

Is your Apache server ready for a massive traffic spike? Learn how to implement HAProxy 1.3 for robu...

Read More →

Xen Virtualization: The Definitive Guide for High-Performance Hosting

Stop gambling with oversold resources. We analyze the Xen hypervisor architecture (Dom0 vs DomU), Pa...

Read More →

Survive the Digg Effect: High-Availability Load Balancing with HAProxy 1.3

When your single Apache server hits MaxClients, your business stops. Learn how to deploy HAProxy 1.3...

Read More →

MySQL 5.1 Performance Tuning: Surviving High Load on Norwegian VPS Infrastructure

Is your database locking up under traffic? We dive deep into my.cnf optimization, the InnoDB vs MyIS...

Read More →
← Back to All Posts