作为IT工程师,保护Linux服务器是我们的核心职责之一。以下是一系列强大的命令行工具和技术,可以帮助您加固服务器安全。
# 查看系统进程
top
htop
# 监控网络连接
netstat -tulnp
ss -tulnp
# 查看登录用户
who
w
# 检查最近登录
last
lastb # 查看失败的登录尝试
# 查看系统日志
journalctl -xe
tail -f /var/log/syslog
tail -f /var/log/auth.log # 认证相关日志
# 使用grep筛选关键信息
grep -i "fail" /var/log/auth.log
grep -i "invalid" /var/log/auth.log
# 检查空密码账户
awk -F: '($2 == "") {print}' /etc/shadow
# 检查root权限用户
awk -F: '($3 == "0") {print}' /etc/passwd
# 锁定/解锁用户
passwd -l username # 锁定
passwd -u username # 解锁
# 设置密码策略
chage -M 90 username # 设置密码90天过期
chage -l username # 查看密码策略
# 查看sudo权限
sudo -l
# 编辑sudoers文件(使用visudo而不是直接编辑)
visudo
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw status verbose
# 基本规则示例
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
# 保存规则(根据发行版不同)
sudo iptables-save > /etc/iptables.rules
# 查找SUID/SGID文件
find / -perm -4000 -type f -exec ls -la {} \; 2>/dev/null
find / -perm -2000 -type f -exec ls -la {} \; 2>/dev/null
# 查找可写文件
find / -perm -o+w -type f -exec ls -la {} \; 2>/dev/null
# 查找无主文件
find / -nouser -o -nogroup -exec ls -la {} \; 2>/dev/null
# 使用AIDE进行文件完整性检查
sudo aide --init
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
sudo aide --check
sudo apt install lynis # Debian/Ubuntu
sudo yum install lynis # CentOS/RHEL
sudo lynis audit system
sudo apt install rkhunter
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
sudo apt install clamav clamav-daemon
sudo freshclam # 更新病毒库
sudo clamscan -r / # 全盘扫描
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
# 推荐修改项:
Port 2222 # 修改默认端口
PermitRootLogin no # 禁止root直接登录
PasswordAuthentication no # 禁用密码认证,仅使用密钥
MaxAuthTries 3 # 最大尝试次数
ClientAliveInterval 300 # 客户端活动检查
ClientAliveCountMax 2 # 客户端活动检查次数
AllowUsers user1 user2 # 仅允许特定用户
# 重启SSH服务
sudo systemctl restart sshd
# Debian/Ubuntu
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
# CentOS/RHEL
sudo yum install yum-cron
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
# 简单备份命令示例
sudo tar -czvf /backup/etc-$(date +%Y%m%d).tar.gz /etc
sudo tar -czvf /backup/home-$(date +%Y%m%d).tar.gz /home
# 使用rsync同步到远程服务器
rsync -avz -e ssh /backup/ user@remote-server:/remote/backup/
# 检查容器安全
docker ps --no-trunc # 查看运行中的容器
docker inspect <container_id> # 检查容器配置
# 使用安全扫描工具
docker scan <image_name>
设置cron作业进行定期安全检查:
# 编辑crontab
sudo crontab -e
# 示例:每周运行安全扫描
0 3 * * 0 /usr/bin/rkhunter --cronjob --report-warnings-only
0 4 * * 0 /usr/bin/clamscan -r / --quiet --log=/var/log/clamav/weekly-scan.log
通过熟练使用这些命令行工具和技术,您可以显著提高Linux服务器的安全性。记住,安全是一个持续的过程,需要定期审查和更新您的安全措施。