作为IT工程师,我们可以通过一系列命令行工具和技术来强化Linux服务器的安全性。以下是一套全面的安全加固方案:
# 更新软件包列表并升级所有已安装的软件包
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/RHEL
sudo dnf upgrade -y # Fedora
# 设置自动安全更新
sudo apt install unattended-upgrades # Debian/Ubuntu
sudo dpkg-reconfigure unattended-upgrades
# 检查空密码账户
sudo awk -F: '($2 == "") {print}' /etc/shadow
# 锁定不必要的用户
sudo passwd -l username
# 设置密码策略
sudo nano /etc/login.defs # 修改PASS_MAX_DAYS, PASS_MIN_DAYS等参数
sudo apt install libpam-pwquality # Debian/Ubuntu
sudo yum install pam_pwquality # CentOS/RHEL
# 配置sudo权限
sudo visudo # 限制sudo权限给必要用户
# 编辑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
# 生成SSH密钥对
ssh-keygen -t ed25519 -a 100 # 更安全的密钥类型
# 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
sudo iptables-save > /etc/iptables/rules.v4
# 安装配置Fail2Ban
sudo apt install fail2ban -y # Debian/Ubuntu
sudo yum install fail2ban -y # CentOS/RHEL
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local # 自定义配置
sudo systemctl enable fail2ban && sudo systemctl start fail2ban
# 安装Rootkit检查工具
sudo apt install rkhunter chkrootkit -y
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
# 安装Lynis安全审计工具
sudo apt install lynis -y
sudo lynis audit system
# 检查文件权限
find / -type f -perm -o+w -exec ls -l {} \; # 查找全局可写文件
find / -type d -perm -o+w -exec ls -ld {} \; # 查找全局可写目录
# 设置重要文件不可变
sudo chattr +i /etc/passwd /etc/shadow /etc/group /etc/sudoers
# 检查SUID/SGID文件
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
# 安装并配置logwatch
sudo apt install logwatch -y
sudo nano /etc/logwatch/conf/logwatch.conf
# 重要的日志文件监控
tail -f /var/log/auth.log # 认证日志
tail -f /var/log/syslog # 系统日志
journalctl -f # 系统日志(新系统)
# 配置日志轮转
sudo nano /etc/logrotate.conf
# 检查开放端口
sudo netstat -tulnp
sudo ss -tulnp
sudo lsof -i
# 禁用不必要的服务
sudo systemctl list-unit-files --type=service | grep enabled
sudo systemctl disable servicename
sudo systemctl stop servicename
# 使用Nmap进行端口扫描
sudo apt install nmap -y
sudo nmap -sS -sV -O -T4 localhost
# 使用OpenVAS或Nessus进行漏洞扫描
# 需要单独安装配置
# 配置自动备份
sudo apt install rsync -y
sudo crontab -e
# 添加类似: 0 2 * * * /usr/bin/rsync -a /important/data /backup/location
# 验证备份完整性
md5sum /important/data/file.txt
md5sum /backup/location/file.txt
通过以上命令行工具和技术的组合使用,可以显著提高Linux服务器的安全性。记住,安全是一个持续的过程,需要定期维护和更新。