How to Conduct a Security Audit of Your VPS

A periodic security audit systematically reviews your server's actual configuration against best practices, catching drift and gaps that accumulate over time. This guide provides a comprehensive checklist and automated tooling to help.

Why Regular Audits Matter

Servers change over time — new software installed, temporary firewall rules never removed, configuration drift from manual fixes made during past incidents. A periodic audit catches this drift before it becomes a genuine vulnerability.

Automated Auditing with Lynis

sudo apt install lynis -y
sudo lynis audit system

Lynis performs hundreds of automated checks across authentication, firewall, kernel hardening, and more, producing a hardening index score and specific, actionable suggestions.

Reviewing Lynis Output

Focus first on items marked as warnings, then work through suggestions relevant to your specific environment — not every suggestion applies to every server (e.g. some are specifically relevant to servers running particular services you may not have).

Manual Audit Checklist

Authentication & Access

  • SSH key-based authentication only, root login disabled — see SSH Hardening: Change the Port, Disable Root Login & Use SSH Keys
  • 2FA enabled on administrative access
  • No unnecessary user accounts
  • Sudo access limited to those who genuinely need it

Network

sudo ufw status
sudo ss -tulpn
  • Firewall active with deny-by-default policy
  • No unexpected services listening on public interfaces
  • Database ports not publicly exposed

Software & Updates

apt list --upgradable
  • System fully updated
  • Automatic security updates enabled — see How to Enable Automatic Security Updates on Ubuntu & Debian
  • Application dependencies free of known vulnerabilities — see How to Audit and Secure Your Application's Dependencies

Monitoring & Detection

  • Fail2Ban active and correctly configured
  • Log monitoring in place
  • File integrity monitoring configured — see How to Set Up File Integrity Monitoring with AIDE

Data Protection

  • Backups automated, tested, and encrypted — see Backup Strategy 101: The 3-2-1 Rule Explained
  • SSL/TLS certificates valid and auto-renewing
  • Database access properly restricted — see Database Security Checklist: Protecting MySQL, PostgreSQL & MongoDB

Checking for Unnecessary Running Services

systemctl list-units --type=service --state=running

Review each and disable anything not genuinely required for this server's purpose.

Checking for World-Writable Files (Potential Security Risk)

sudo find / -xdev -type f -perm -0002 2>/dev/null

Checking for Files with No Owner

sudo find / -xdev -nouser -o -nogroup 2>/dev/null

Scheduling Regular Audits

sudo crontab -e
0 6 1 * * lynis audit system --cronjob > /var/log/lynis-$(date +\%Y\%m).log

Monthly automated audits, with results archived for trend comparison over time.

Tracking Improvement Over Time

Lynis provides a hardening index score — track this month over month to confirm your security posture is trending in the right direction, not just checking a single point-in-time snapshot.

Common Errors

Lynis reports many warnings on a fresh system — normal for a default installation; work through them systematically, prioritizing authentication and network-facing issues first.

Best Practices

  • Run automated audits on a regular schedule, not just once
  • Track your hardening score over time to confirm continuous improvement
  • Combine automated tooling (Lynis) with manual review, since no tool catches everything

Continue Reading

Browse more articles in Advanced Security & Compliance.

  • security audit, lynis, vps hardening review, vulnerability assessment
  • 0 用戶發現這個有用
這篇文章有幫助嗎?

相關文章

How to Install and Configure auditd for System Auditing

auditd is the Linux kernel's auditing framework, recording detailed logs of security-relevant...

GDPR Compliance Basics for a Self-Hosted VPS

If you handle personal data of EU residents, GDPR applies regardless of where your server is...

How to Prepare Your VPS Infrastructure for a SOC 2 Audit

SOC 2 evaluates an organization's controls around security, availability, and confidentiality of...

How to Harden SSH Beyond the Basics (Ciphers, MACs & Algorithms)

Beyond changing the port and disabling root login (see SSH Hardening: Change the Port, Disable...

How to Set Up AppArmor for Application Sandboxing

AppArmor confines individual applications to a defined set of permitted file, network, and...