# 更新系统软件包
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/RHEL
# 安装基础安全工具
sudo apt install -y fail2ban ufw unattended-upgrades # Debian/Ubuntu
sudo yum install -y fail2ban firewalld epel-release # CentOS/RHEL
# 创建新管理用户
sudo adduser adminuser
sudo usermod -aG sudo adminuser # Debian/Ubuntu
sudo usermod -aG wheel adminuser # CentOS/RHEL
# 禁用root SSH登录
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
UFW (Ubuntu/Debian):
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
FirewallD (CentOS/RHEL):
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
# 编辑SSH配置
sudo nano /etc/ssh/sshd_config
# 推荐修改以下参数:
Port 2222 # 更改默认端口
PermitRootLogin no # 禁用root登录
MaxAuthTries 3 # 最大尝试次数
ClientAliveInterval 300 # 超时设置
ClientAliveCountMax 2
LoginGraceTime 60
AllowUsers adminuser # 只允许特定用户
# 重启SSH服务
sudo systemctl restart sshd
# 安装常用监控工具
sudo apt install -y htop iotop iftop sysstat logwatch # Debian/Ubuntu
sudo yum install -y htop iotop iftop sysstat logwatch # CentOS/RHEL
# 配置日志轮转
sudo nano /etc/logrotate.conf
# 配置Fail2Ban保护SSH
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# 修改以下参数:
[sshd]
enabled = true
port = 2222 # 与SSH端口一致
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
# 重启Fail2Ban
sudo systemctl restart fail2ban
# 配置自动安全更新 (Debian/Ubuntu)
sudo dpkg-reconfigure -plow unattended-upgrades
# CentOS/RHEL配置自动更新
sudo yum install -y yum-cron
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
# 检查重要文件权限
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
sudo chmod 640 /etc/group
# 安装和配置AIDE (文件完整性检查)
sudo apt install -y aide # Debian/Ubuntu
sudo yum install -y aide # CentOS/RHEL
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
AppArmor (Debian/Ubuntu):
sudo systemctl enable apparmor
sudo systemctl start apparmor
sudo aa-enforce /etc/apparmor.d/*
SELinux (CentOS/RHEL):
sudo setenforce 1
sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/' /etc/selinux/config
# 编辑sysctl配置
sudo nano /etc/sysctl.conf
# 添加以下参数:
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.all.accept_redirects=0
net.ipv6.conf.all.accept_redirects=0
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn_backlog=2048
net.ipv4.tcp_synack_retries=2
# 应用配置
sudo sysctl -p
# 创建安全维护脚本
sudo nano /usr/local/bin/security_maintenance.sh
# 内容示例:
#!/bin/bash
apt update && apt upgrade -y
aide --check
fail2ban-client status
ufw status
df -h
free -m
# 设置定时任务
sudo crontab -e
# 添加:
0 3 * * * /usr/local/bin/security_maintenance.sh
# 设置自动备份
sudo apt install -y rsync # Debian/Ubuntu
sudo yum install -y rsync # CentOS/RHEL
# 示例备份命令
rsync -avz --delete /important/data/ user@backupserver:/backups/
通过以上步骤,您可以建立一个基础的安全Linux服务器环境。根据具体需求,可能还需要考虑额外的安全措施如: - 双因素认证 - 入侵检测系统(IDS) - VPN访问控制 - 容器化隔离应用 - 定期安全审计
记住,安全是一个持续的过程,需要定期审查和更新安全措施。