
Hardening Linux Endpoint
FreeSecure Linux servers using CIS Benchmark guidelines.
Free · Opens the source repo
What Hardening Linux Endpoint does
The Hardening Linux Endpoint skill provides a systematic approach to securing Linux servers by implementing the recommendations outlined in the CIS Benchmarks for Ubuntu, RHEL, and CentOS. This skill is particularly useful for system administrators and security professionals who need to ensure that their Linux infrastructure is configured according to industry best practices. By following the provided workflows, users can automate the hardening process, reducing the attack surface and enforcing security baselines effectively.
This skill includes a series of scripts and configurations that cover essential aspects of Linux security, such as filesystem configuration, service management, network settings, access control, and auditing. Each step is carefully crafted to align with the CIS Benchmark recommendations, ensuring that users can achieve compliance with various security standards like PCI DSS, HIPAA, and SOC 2. The skill is designed to be used during the deployment of new Linux servers, as well as when remediating findings from security audits or vulnerability scans.
The workflows provided in this skill are practical and can be executed using bash scripts, making it accessible for users familiar with command-line operations. Additionally, the skill supports integration with tools like OpenSCAP for automated assessments, allowing users to evaluate their compliance status easily. This makes it a valuable resource for organizations looking to enhance their security posture and meet regulatory requirements without extensive manual intervention.
Overall, the Hardening Linux Endpoint skill is an essential tool for anyone responsible for maintaining the security of Linux systems, providing a clear path to achieving a hardened configuration based on well-established benchmarks.
When to use it
Use this skill when deploying new Linux servers or when remediating security audit findings to ensure compliance with CIS benchmarks.
When not to use it
This skill is not suitable for hardening Windows systems; use a specific tool for Windows hardening instead.
What you can build with it
Deploying New Linux Servers
When setting up new Linux servers, use this skill to ensure they are hardened from the start according to CIS benchmarks.
Remediating Security Audit Findings
After a security audit reveals vulnerabilities, this skill can help automate the remediation process to achieve compliance.
Establishing Security Baselines
Use this skill to create and enforce security baselines for your Linux infrastructure, ensuring consistent configurations across servers.
How to install Hardening Linux Endpoint
View source1. Install with the skills CLI
npx skills add mukul975/anthropic-cybersecurity-skills/hardening-linux-endpoint-with-cis-benchmark --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by mukul975Hardening Linux Endpoint with CIS Benchmark
When to Use
Use this skill when:
- Hardening Linux servers (Ubuntu, RHEL, CentOS, Debian) against CIS benchmarks
- Automating Linux security baselines using Ansible, OpenSCAP, or shell scripts
- Meeting compliance requirements (PCI DSS, HIPAA, SOC 2) for Linux endpoints
- Remediating findings from vulnerability scans or security audits
Do not use for Windows hardening (use hardening-windows-endpoint-with-cis-benchmark).
Prerequisites
- Root or sudo access on target Linux endpoints
- CIS Benchmark PDF for target distribution (from cisecurity.org)
- OpenSCAP or CIS-CAT for automated assessment
- Ansible for enterprise-scale remediation (optional)
Workflow
Step 1: Filesystem Configuration (Section 1)
# 1.1.1 Disable unused filesystems
cat >> /etc/modprobe.d/CIS.conf << 'EOF'
install cramfs /bin/true
install freevxfs /bin/true
install jffs2 /bin/true
install hfs /bin/true
install hfsplus /bin/true
install squashfs /bin/true
install udf /bin/true
EOF
# 1.1.2 Ensure /tmp is a separate partition with nodev,nosuid,noexec
# /etc/fstab entry:
# tmpfs /tmp tmpfs defaults,rw,nosuid,nodev,noexec,relatime 0 0
systemctl unmask tmp.mount
systemctl enable tmp.mount
# 1.1.8 Ensure nodev option on /dev/shm
mount -o remount,nodev,nosuid,noexec /dev/shm
echo "tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0" >> /etc/fstab
# 1.4 Secure boot settings
chown root:root /boot/grub/grub.cfg
chmod 600 /boot/grub/grub.cfg
# Set GRUB password
grub-mkpasswd-pbkdf2 # Generate hash, add to /etc/grub.d/40_custom
Step 2: Services and Network (Sections 2-3)
# 2.1 Disable unnecessary services
systemctl disable --now avahi-daemon
systemctl disable --now cups
systemctl disable --now rpcbind
systemctl disable --now xinetd
# 2.2 Ensure NTP is configured
apt install chrony -y # or systemd-timesyncd
systemctl enable --now chrony
# 3.1 Network parameters (host only, not router)
cat >> /etc/sysctl.d/99-cis.conf << 'EOF'
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_syncookies = 1
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
EOF
sysctl --system
# 3.4 Configure firewall (UFW or firewalld)
ufw enable
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
Step 3: Access Control (Sections 4-5)
# 5.2 SSH Server Configuration (/etc/ssh/sshd_config)
sed -i 's/#Protocol 2/Protocol 2/' /etc/ssh/sshd_config
cat >> /etc/ssh/sshd_config << 'EOF'
LogLevel VERBOSE
MaxAuthTries 4
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no
X11Forwarding no
MaxStartups 10:30:60
LoginGraceTime 60
AllowTcpForwarding no
ClientAliveInterval 300
ClientAliveCountMax 3
EOF
systemctl restart sshd
# 5.3 Password policy (PAM)
# /etc/security/pwquality.conf
minlen = 14
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
# 5.4 User account settings
# /etc/login.defs
PASS_MAX_DAYS 365
PASS_MIN_DAYS 1
PASS_WARN_AGE 7
# Lock inactive accounts
useradd -D -f 30
Step 4: Audit and Logging (Section 4)
# Install and configure auditd
apt install auditd audispd-plugins -y
systemctl enable --now auditd
# /etc/audit/rules.d/cis.rules
cat > /etc/audit/rules.d/cis.rules << 'EOF'
-w /etc/sudoers -p wa -k scope
-w /etc/sudoers.d/ -p wa -k scope
-w /var/log/sudo.log -p wa -k actions
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change
-a always,exit -F arch=b64 -S sethostname -S setdomainname -k system-locale
-w /etc/group -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /var/log/faillog -p wa -k logins
-w /var/log/lastlog -p wa -k logins
-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -k perm_mod
-a always,exit -F arch=b64 -S unlink -S rmdir -S rename -k delete
-w /sbin/insmod -p x -k modules
-w /sbin/modprobe -p x -k modules
-e 2
EOF
augenrules --load
# Configure rsyslog for remote logging
echo "*.* @@syslog-server.corp.com:514" >> /etc/rsyslog.d/50-remote.conf
systemctl restart rsyslog
Step 5: Assess with OpenSCAP
# Install OpenSCAP
apt install openscap-scanner scap-security-guide -y
# Run CIS benchmark assessment
oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_cis_level1_server \
--results /tmp/cis_results.xml \
--report /tmp/cis_report.html \
/usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml
# View HTML report in browser for detailed results
Key Concepts
| Term | Definition |
|---|---|
| OpenSCAP | Open-source SCAP (Security Content Automation Protocol) scanner for automated compliance |
| auditd | Linux audit framework for monitoring system calls and file access |
| PAM | Pluggable Authentication Modules; configurable authentication framework for Linux |
| sysctl | Linux kernel parameter configuration for network and system security tuning |
| AIDE | Advanced Intrusion Detection Environment; file integrity checker for Linux |
Tools & Systems
- OpenSCAP: Automated CIS benchmark assessment for Linux
- Ansible Lockdown: Ansible roles for automated CIS benchmark remediation
- Lynis: Open-source security auditing tool for Linux/Unix systems
- AIDE: File integrity monitoring for Linux endpoints
- auditd: Linux audit framework for system call monitoring
Common Pitfalls
- Applying server benchmarks to workstations: CIS provides separate benchmarks for server and workstation profiles. Server benchmarks disable desktop services.
- Breaking SSH access: Misconfiguring sshd_config (especially PermitRootLogin, PasswordAuthentication) can lock out administrators. Always test SSH configuration changes from a second session.
- Not testing firewall rules: Enabling UFW without allowing SSH first will disconnect remote sessions permanently.
- Kernel parameter changes without testing: Some sysctl settings can break application networking. Test in staging first.
Frequently asked questions about Hardening Linux Endpoint
Similar skills
Data Breach Blast Radius Analyzer
Assess potential breach impacts before they occur.
Verify Agent Action
Ensure safe execution of AI agent actions with thorough reviews.
Agent Supply Chain Integrity
Ensure the integrity of AI agent plugins and tools.
Agent OWASP ASI Compliance Check
Ensure your AI agents meet OWASP ASI security standards.
Securing S3 Buckets
Enhance your S3 bucket security with AWS best practices.
AWS Account Enumeration with ScoutSuite
Assess AWS security posture with comprehensive audits.
