作为IT工程师,确保Linux服务器的安全性至关重要。以下是一些关键命令和最佳实践,可帮助您加固服务器安全。
# 查看所有用户
cat /etc/passwd
# 查看所有组
cat /etc/group
# 检查空密码账户
awk -F: '($2 == "") {print}' /etc/shadow
# 锁定用户账户
sudo passwd -l username
# 解锁用户账户
sudo passwd -u username
# 设置密码过期策略
sudo chage -M 90 -m 7 -W 14 username
# 查看sudo权限用户
sudo grep -Po '^sudo.+:\K.*$' /etc/group
# 编辑sudoers文件(使用visudo命令)
sudo visudo
# 更新软件包列表(基于Debian/Ubuntu)
sudo apt update
# 升级所有已安装软件包(基于Debian/Ubuntu)
sudo apt upgrade
# 自动安全更新(基于Debian/Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# 基于RHEL/CentOS更新
sudo yum update
# 启用防火墙
sudo ufw enable
# 允许SSH连接
sudo ufw allow ssh
# 查看防火墙状态
sudo ufw status verbose
# 启动防火墙
sudo systemctl start firewalld
# 启用防火墙开机启动
sudo systemctl enable firewalld
# 允许SSH连接
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
# 重启SSH服务
sudo systemctl restart sshd
推荐SSH配置修改:
- Port 2222
(改为非标准端口)
- PermitRootLogin no
- PasswordAuthentication no
(使用密钥认证)
- MaxAuthTries 3
- ClientAliveInterval 300
- ClientAliveCountMax 0
# 查找全局可写文件
find / -xdev -type f -perm -0002 -exec ls -l {} \;
# 查找全局可写目录
find / -xdev -type d -perm -0002 -exec ls -ld {} \;
# 查找没有所有者的文件
find / -xdev -nouser -o -nogroup
# 设置敏感文件权限
sudo chmod 700 /etc/cron.*
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
# 查看运行中的服务
sudo systemctl list-units --type=service --state=running
# 禁用不必要的服务
sudo systemctl disable servicename
# 查看监听端口
sudo netstat -tulnp
sudo ss -tulnp
# 查看系统日志
sudo tail -f /var/log/syslog
# 查看认证日志
sudo tail -f /var/log/auth.log
# 查看失败的登录尝试
sudo grep "Failed password" /var/log/auth.log
# 使用journalctl查看系统日志
sudo journalctl -xe
# 安装和运行Lynis安全审计工具
sudo apt install lynis
sudo lynis audit system
# 安装和运行chkrootkit检查rootkit
sudo apt install chkrootkit
sudo chkrootkit
# 安装和运行rkhunter检查rootkit
sudo apt install rkhunter
sudo rkhunter --check
#!/bin/bash
# 安全审计脚本示例
echo "=== 系统安全审计报告 ==="
echo "生成日期: $(date)"
echo ""
echo "1. 系统信息"
echo "主机名: $(hostname)"
echo "内核版本: $(uname -r)"
echo ""
echo "2. 用户审计"
echo "特权用户:"
sudo awk -F: '($3 == "0") {print}' /etc/passwd
echo ""
echo "3. SSH配置检查"
sudo grep -i "^PermitRootLogin" /etc/ssh/sshd_config
sudo grep -i "^PasswordAuthentication" /etc/ssh/sshd_config
echo ""
echo "4. 防火墙状态"
sudo ufw status || sudo firewall-cmd --state
echo ""
echo "5. 系统更新状态"
sudo apt list --upgradable 2>/dev/null || sudo yum list updates
echo ""
echo "审计完成"
通过定期执行这些命令和检查,您可以显著提高Linux服务器的安全性。记得根据您的具体环境和需求调整这些建议。