插件窝 干货文章 利用命令行工具提高Linux服务器的安全性

利用命令行工具提高Linux服务器的安全性

sudo 检查 install Ubuntu 237    来源:    2025-04-11

利用命令行工具提高Linux服务器安全性

1. 系统更新与补丁管理

# 更新软件包列表并升级所有已安装包
sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
sudo yum update -y                       # CentOS/RHEL
sudo dnf upgrade -y                      # Fedora

# 自动安全更新 (Debian/Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

2. 用户账户管理

# 检查空密码账户
sudo awk -F: '($2 == "") {print $1}' /etc/shadow

# 锁定不必要账户
sudo passwd -l username

# 设置密码策略
sudo vi /etc/login.defs  # 修改PASS_MAX_DAYS, PASS_MIN_DAYS等参数
sudo apt install libpam-pwquality  # Debian/Ubuntu
sudo yum install pam_pwquality     # CentOS/RHEL

# 检查UID为0的账户(除root外)
sudo awk -F: '($3 == 0) {print $1}' /etc/passwd

3. SSH安全加固

# 编辑SSH配置文件
sudo vi /etc/ssh/sshd_config

# 推荐修改以下参数:
# Port 2222                   # 修改默认端口
# PermitRootLogin no          # 禁止root直接登录
# PasswordAuthentication no   # 禁用密码认证,仅使用密钥
# MaxAuthTries 3              # 最大尝试次数
# ClientAliveInterval 300     # 客户端活动检查间隔
# ClientAliveCountMax 0       # 不活动时断开连接

# 重启SSH服务
sudo systemctl restart sshd

# 检查登录失败的尝试
sudo grep "Failed password" /var/log/auth.log

4. 防火墙配置

# UFW (Ubuntu)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp  # 替换为你的SSH端口

# firewalld (CentOS/RHEL)
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

# iptables (通用)
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo iptables -A INPUT -j DROP

5. 文件系统安全

# 检查SUID/SGID文件
sudo find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;

# 检查无属主文件
sudo find / -nouser -o -nogroup

# 检查可写目录
sudo find / -type d \( -perm -g+w -o -perm -o+w \) ! -path "/proc/*" -exec ls -ld {} \;

# 检查可执行脚本
sudo find / -type f -perm +111 -name "*.sh"

6. 日志监控与分析

# 查看系统日志
sudo tail -f /var/log/syslog        # Debian/Ubuntu
sudo tail -f /var/log/messages      # CentOS/RHEL

# 检查失败的登录尝试
sudo grep "authentication failure" /var/log/auth.log

# 安装并配置logwatch
sudo apt install logwatch           # Debian/Ubuntu
sudo yum install logwatch          # CentOS/RHEL
sudo vi /etc/logwatch/conf/logwatch.conf

7. 入侵检测工具

# 安装配置AIDE (高级入侵检测环境)
sudo apt install aide               # Debian/Ubuntu
sudo yum install aide               # CentOS/RHEL
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

# 定期检查
sudo aide --check

# 安装配置rkhunter (Rootkit检测)
sudo apt install rkhunter           # Debian/Ubuntu
sudo yum install rkhunter           # CentOS/RHEL
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

8. 网络服务安全

# 检查监听端口
sudo netstat -tulnp
sudo ss -tulnp

# 禁用不必要服务
sudo systemctl list-unit-files --type=service | grep enabled
sudo systemctl disable servicename

# 检查异常进程
sudo ps aux | grep -E '(nmap|nikto|sqlmap|hydra|john)'

9. 定期安全审计

# 使用Lynis进行安全审计
sudo apt install lynis              # Debian/Ubuntu
sudo yum install lynis              # CentOS/RHEL
sudo lynis audit system

# 使用OpenSCAP
sudo apt install openscap-scanner   # Debian/Ubuntu
sudo yum install openscap-scanner   # CentOS/RHEL
sudo oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_standard \
  --results scan-results.xml \
  /usr/share/xml/scap/ssg/content/ssg-ubuntu1604-ds.xml

10. 自动化安全脚本

#!/bin/bash
# 简易安全检查脚本

echo "=== 系统信息 ==="
uname -a
echo ""

echo "=== 已登录用户 ==="
who
echo ""

echo "=== 最近登录 ==="
last -n 10
echo ""

echo "=== 监听端口 ==="
ss -tulnp
echo ""

echo "=== 检查SUID/SGID文件 ==="
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \; 2>/dev/null
echo ""

echo "=== 检查可写目录 ==="
find / -type d \( -perm -g+w -o -perm -o+w \) ! -path "/proc/*" -exec ls -ld {} \; 2>/dev/null
echo ""

echo "=== 检查cron作业 ==="
ls -la /etc/cron* /var/spool/cron/*
echo ""

通过定期执行这些命令和脚本,您可以有效提高Linux服务器的安全性。建议将这些任务设置为定期执行的cron作业,并监控其输出以发现潜在的安全问题。