插件窝 干货文章 提高Linux服务器安全性的命令行之旅

提高Linux服务器安全性的命令行之旅

sudo etc 配置 安全 343    来源:    2025-04-12

作为IT工程师,我将为您提供一套系统的Linux服务器安全加固方案,通过命令行操作全面提升系统安全性。以下为分步骤实施方案:

  1. 系统更新与补丁管理
# 更新软件包列表并升级所有软件
sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
sudo yum update -y                      # RHEL/CentOS

# 配置自动安全更新
sudo apt install unattended-upgrades    # Debian/Ubuntu
sudo dpkg-reconfigure unattended-upgrades
  1. 用户账户安全
# 检查空密码账户
sudo awk -F: '($2 == "") {print}' /etc/shadow

# 强制密码复杂度要求
sudo apt install libpam-pwquality       # Debian/Ubuntu
sudo yum install pam_pwquality          # RHEL/CentOS

# 编辑密码策略
sudo nano /etc/security/pwquality.conf
# 添加以下内容:
minlen = 12
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
  1. SSH安全加固
# 备份原配置文件
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

# 编辑SSH配置
sudo nano /etc/ssh/sshd_config
# 修改以下参数:
Port 22222                             # 更改默认端口
PermitRootLogin no
PasswordAuthentication no              # 强制密钥认证
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 0
AllowUsers your_username               # 限制可登录用户

# 重启SSH服务
sudo systemctl restart sshd

# 注意:修改前确保已添加SSH密钥并测试连接!
  1. 防火墙配置
# UFW防火墙 (Ubuntu)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw allow 22222/tcp              # 对应修改的SSH端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# firewalld (RHEL/CentOS)
sudo firewall-cmd --permanent --add-port=22222/tcp
sudo firewall-cmd --reload
  1. 入侵检测与日志监控
# 安装配置fail2ban
sudo apt install fail2ban -y           # Debian/Ubuntu
sudo yum install fail2ban -y          # RHEL/CentOS

# 创建本地配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# 修改SSH相关配置:
[sshd]
enabled = true
port = 22222
maxretry = 3
bantime = 1h

# 启动服务
sudo systemctl enable --now fail2ban

# 安装日志分析工具
sudo apt install logwatch -y
sudo logwatch --output mail --format html --range yesterday
  1. 文件系统安全
# 检查敏感文件权限
sudo find / -type f -perm -o+w -exec ls -l {} \;  # 全局可写文件
sudo find / -type d -perm -o+w -exec ls -ld {} \; # 全局可写目录

# 配置文件属性保护
sudo chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
sudo chattr +i /etc/sudoers
sudo chattr +i /etc/ssh/sshd_config

# 安装文件完整性检查工具
sudo apt install aide -y
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
  1. 内核参数加固
# 编辑sysctl配置
sudo nano /etc/sysctl.conf
# 添加以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

# 应用配置
sudo sysctl -p
  1. 定期安全审计
# 安装审计工具
sudo apt install lynis -y      # Debian/Ubuntu
sudo yum install lynis -y      # RHEL/CentOS

# 执行系统审计
sudo lynis audit system

# 检查开放端口
sudo ss -tulnp
sudo netstat -tulnp           # 旧版系统

# 检查运行进程
sudo ps auxf
  1. 备份策略
# 创建备份目录
sudo mkdir /backups

# 创建系统关键文件备份
sudo tar -czvf /backups/etc_backup_$(date +%Y%m%d).tar.gz /etc

# 设置定时任务
(crontab -l 2>/dev/null; echo "0 3 * * * tar -czvf /backups/etc_backup_$(date +\%Y\%m\%d).tar.gz /etc") | crontab -
  1. 安全提醒与监控
# 安装安全更新提醒
sudo apt install apt-listchanges -y

# 设置安全日志监控
sudo nano /etc/logrotate.d/security
# 添加以下内容:
/var/log/auth.log {
    rotate 7
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

实施建议: 1. 所有操作前先创建系统快照或备份 2. 每次只修改一个配置并测试效果 3. 使用SSH连接时保持现有会话不退出 4. 重要操作前记录当前状态以便回滚 5. 定期检查/var/log/auth.log和/var/log/syslog

完成以上步骤后,您的Linux服务器将获得显著的安全提升。建议每月执行一次安全审计,并保持系统更新。对于生产环境,建议结合SELinux或AppArmor实现更严格的访问控制。