Linux服务器的安全性是系统管理员和IT工程师必须高度重视的领域。以下是掌握Linux服务器安全性的必备命令和管理技能,分为关键命令、安全配置和最佳实践几个方面:
用户和权限管理
useradd/del/mod
:用户账户管理passwd
:密码策略实施(-e
强制过期,-l
锁定账户)chage
:查看/修改密码过期信息visudo
:安全编辑sudo权限chmod/chown
:精细控制文件权限(如chmod 750 sensitive_dir
)系统监控命令
last/lastb
:查看成功/失败的登录尝试who/w
:当前登录用户监控ps auxf
:进程树查看(配合pstree
更直观)netstat -tulnpe
→ 推荐使用ss -tulnp
:网络服务监控lsof -i :端口号
:查看端口占用进程审计系统
# 安装auditd
sudo apt install auditd # Debian/Ubuntu
sudo yum install audit # RHEL/CentOS
# 监控/etc/passwd修改
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
ausearch -k passwd_changes
查看日志SELinux管理
getenforce # 查看状态
setenforce 1 # 临时启用
semanage port -l # 查看端口上下文
restorecon -Rv /dir # 修复安全上下文
防火墙进阶
# Firewalld示例
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
firewall-cmd --reload
# UFW高级用法
ufw limit proto tcp from any to any port 22 comment 'SSH rate limiting'
SSH安全
# /etc/ssh/sshd_config 关键配置:
PermitRootLogin no
MaxAuthTries 3
LoginGraceTime 1m
AllowUsers admin auditor
HostbasedAuthentication no
文件完整性校验
# 使用AIDE建立数据库
aideinit
aide --check
# 或使用tripwire等专业工具
内核参数加固
# /etc/sysctl.conf 安全设置
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
kernel.kptr_restrict=2
日志分析脚本示例
# 查找失败登录尝试
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
Cron安全任务
# 每周检查SUID文件
0 0 * * 0 find / -perm -4000 -type f -exec ls -ld {} \; > /var/log/suid_report.log
自动化更新
# 配置无人值守更新
sudo apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
入侵检测步骤
# 1. 检查异常进程
ps auxf | grep -E '(\./|tmp|dev/shm)'
# 2. 检查可疑网络连接
ss -antp | grep ESTAB
# 3. 检查最近修改的文件
find / -mtime -2 -type f ! -path "/proc/*" ! -path "/sys/*"
隔离措施
# 立即封锁IP
iptables -A INPUT -s 攻击者IP -j DROP
# 禁用受影响用户
usermod -L 可疑用户
认证体系
持续学习资源
掌握这些技能需要: 1. 在测试环境反复练习 2. 定期进行安全审计(建议每月一次) 3. 建立完善的备份策略(3-2-1原则) 4. 参与CTF比赛和漏洞赏金计划积累实战经验
记住:服务器安全是持续过程,需要保持警惕并随时更新知识库。建议设置每周专门时间进行安全更新审查和系统检查。