Linux User Account Security Best Practices

April 17, 2024
linux security user-management

Disclaimer: The examples, configurations, and code snippets provided in this article are for educational purposes only. While we strive for accuracy, there is no guarantee these will work in your specific environment. Always test configurations in a safe environment first and adapt them to your specific needs and security requirements.

Password Policies

Setting Up Strong Password Requirements

# Edit PAM configuration
sudo nano /etc/pam.d/common-password

# Add these parameters
password requisite pam_pwquality.so retry=3 minlen=12 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1

Password Aging Configuration

# Edit login.defs
sudo nano /etc/login.defs

PASS_MAX_DAYS   90
PASS_MIN_DAYS   7
PASS_WARN_AGE   14

Sudo Configuration

Principle of Least Privilege

# Create specific sudo rules
sudo visudo -f /etc/sudoers.d/custom

# Example: Allow user to only restart specific services
username ALL=(ALL) /bin/systemctl restart nginx.service

User Account Auditing

Regular Audit Tasks

# List all users with login privileges
grep -v '/nologin\|/false' /etc/passwd

# Check for users with empty passwords
sudo awk -F: '($2 == "") {print}' /etc/shadow

# Review sudo privileges
sudo grep -v '^#' /etc/sudoers

Setting Up Audit Logging

# Install auditd
sudo apt install auditd

# Configure user monitoring
sudo nano /etc/audit/rules.d/user-monitoring.rules

-w /etc/passwd -p wa -k user-modify
-w /etc/group -p wa -k group-modify