CLOUD
Security

Server Security Audit Checklist: 20 Points

CLOUD|December 26, 2025|4 min read|442 views
Server Security Audit Checklist: 20 Points

SSH, firewall, updates, SSL, permissions, logs — 20 security audit points for every server. Check your server now.

Why Security Auditing Is Essential

A security audit is a systematic, comprehensive examination of your systems and servers to discover weaknesses before anyone exploits them. The difference between an audit and penetration testing: an audit reviews everything (policies, configurations, permissions, infrastructure) — while penetration testing focuses on attempting actual exploitation.

The rule: Full security audit every 6 months minimum. Quick monthly audit for critical items.

Comprehensive Audit Checklist

Section 1: Operating System

Item Check Status
System updates All security updates installed
OS version Supported version, not EOL
Kernel Latest stable release
Unnecessary services Disabled and uninstalled
Time synchronization NTP enabled and running
Temporary files /tmp with noexec,nosuid

Verification Commands:

# Pending updates
apt list --upgradable 2>/dev/null | wc -l

# OS version
cat /etc/os-release

# Running services
systemctl list-units --type=service --state=running

# Time sync
timedatectl status

Section 2: User Management and Permissions

  • Root account disabled for SSH login
  • No users with empty passwords
  • Every user has defined permissions (no unrestricted sudo)
  • Inactive users deleted or disabled
  • Password policy enforced (length + complexity + expiration)
  • sudoers file reviewed
# Users without passwords
awk -F: '($2 == "" ) {print $1}' /etc/shadow

# Users with sudo access
getent group sudo

# Last login for each user
lastlog | grep -v "Never"

# Check sudoers
cat /etc/sudoers | grep -v "^#" | grep -v "^$"

Section 3: SSH

Item Required Value
PermitRootLogin no
PasswordAuthentication no (SSH keys only)
Port Non-default (not 22)
MaxAuthTries 3
LoginGraceTime 30
AllowUsers Specified by username
Protocol 2
X11Forwarding no
# Check SSH configuration
sshd -T | grep -E "permitrootlogin|passwordauthentication|port|maxauthtries"

Section 4: Firewall

  • Firewall enabled (UFW or iptables)
  • Default policy: deny incoming
  • Open ports defined and documented
  • No unnecessary open ports
  • Denied attempt logging enabled
# UFW status
ufw status verbose

# Actually open ports
ss -tulnp

# iptables rules
iptables -L -n -v

Section 5: Encryption and SSL

  • All sites running over HTTPS
  • SSL certificates valid and not expired
  • TLS 1.2 minimum (TLS 1.3 preferred)
  • SSL 2.0/3.0 and TLS 1.0/1.1 disabled
  • HSTS enabled
  • Sensitive database encryption active
# Check SSL certificate
openssl s_client -connect yourdomain.com:443 -tls1_3

# Check certificate expiration
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates

Section 6: Backup

Item Standard
Backup frequency Daily for data, weekly for system
Retention 7 days daily + 4 weeks weekly
Offsite copy Exists at different location
Backup encryption Enabled
Restore testing Monthly
Procedure documentation Up to date

Section 7: Monitoring and Logging

  • System logs (syslog) running and preserved
  • Retention period: 12 months minimum (NCA requirement)
  • Immediate alerts for failed login attempts
  • Resource usage monitoring (CPU, RAM, Disk)
  • fail2ban installed and active
  • Weekly log review
# fail2ban status
fail2ban-client status

# Log size
du -sh /var/log/

# Recent failed login attempts
journalctl _SYSTEMD_UNIT=sshd.service | grep "Failed" | tail -20

Section 8: Applications and Databases

  • Web applications updated to latest version
  • Database does not accept external connections (bind 127.0.0.1)
  • Database user has limited permissions (not root)
  • No default databases present (test, sample)
  • Encrypted connection between application and database

Periodic Audit Schedule

Type Frequency Duration
Quick check (SSH, Firewall, Updates) Weekly 30 minutes
Medium audit (all sections) Monthly 2-4 hours
Full audit + penetration test Every 6 months 2-5 days

Automating Audits

Free tools that help:

  • Lynis — Comprehensive Linux security audit
  • OpenSCAP — Security compliance scanning
  • CIS Benchmarks — Reference security standards for every system
# Install and run Lynis
apt install lynis -y
lynis audit system

Start with a Secured Server

CLOUD (cloud.net.sa) servers in Riyadh come with baseline security configurations. Firewall, account isolation, and DDoS protection available as an add-on. A secure foundation that cuts your audit checklist in half.


Get Started

Need a secure environment? Choose a protected server with DDoS protection and advanced firewall. Review our SLA and Privacy Policy.

Share