新建Linux云服务器后必做的10件事:从安全加固到高效运维

一、初始化基础配置:为系统运行打牢根基

  1. 系统信息确认
    通过cat /etc/os-release查看系统版本,使用uname -a确认内核版本,避免因版本不兼容导致服务异常。例如,Ubuntu 22.04 LTS与旧版软件包可能存在依赖冲突,需提前规划软件源配置。

  2. 更新软件包
    执行sudo apt update && sudo apt upgrade -y(Debian/Ubuntu)或sudo yum update -y(CentOS/RHEL)更新所有软件包。此步骤可修复已知漏洞,例如OpenSSL的CVE-2023-XXXX漏洞可能通过更新包自动修复。

  3. 时区与语言设置
    使用timedatectl set-timezone Asia/Shanghai设置时区,通过localectl set-locale LANG=zh_CN.UTF-8配置中文环境。错误的时区设置可能导致日志时间戳混乱,影响故障排查效率。

二、安全加固:构建多重防护体系

  1. 防火墙规则配置
    安装ufw(Ubuntu)或firewalld(CentOS),仅开放必要端口。例如,Web服务器仅允许80/443端口:

    1. sudo ufw allow 80/tcp
    2. sudo ufw allow 443/tcp
    3. sudo ufw enable

    避免直接暴露SSH默认端口22,建议修改为高位端口(如2222)并通过Port 2222/etc/ssh/sshd_config中配置。

  2. SSH密钥认证
    禁用密码登录,强制使用密钥对:

    1. # 生成密钥对(本地执行)
    2. ssh-keygen -t ed25519 -C "your_email@example.com"
    3. # 将公钥上传至服务器
    4. ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip -p 2222

    修改/etc/ssh/sshd_config中的PasswordAuthentication no并重启服务。

  3. 用户权限管理
    创建专用用户并加入sudo组:

    1. sudo adduser deploy
    2. sudo usermod -aG sudo deploy

    禁止root远程登录,通过PermitRootLogin no配置SSH。

三、服务部署:快速搭建核心组件

  1. Web服务器安装
    以Nginx为例:

    1. sudo apt install nginx -y
    2. sudo systemctl start nginx
    3. sudo systemctl enable nginx

    验证服务状态:curl -I localhost应返回HTTP/1.1 200 OK

  2. 数据库配置
    安装MySQL 8.0并设置强密码:

    1. sudo apt install mysql-server -y
    2. sudo mysql_secure_installation

    配置远程访问需修改bind-address = 0.0.0.0并创建专用用户:

    1. CREATE USER 'db_user'@'%' IDENTIFIED BY 'StrongPassword123!';
    2. GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'%';
    3. FLUSH PRIVILEGES;
  3. 监控工具集成
    安装htop(进程监控)、nmon(系统性能)和Prometheus Node Exporter(指标采集):

    1. sudo apt install htop nmon -y
    2. # Node Exporter安装(需下载二进制包)
    3. wget https://github.com/prometheus/node_exporter/releases/download/v*/node_exporter-*.*-amd64.tar.gz
    4. tar xvfz node_exporter-*.*-amd64.tar.gz
    5. cd node_exporter-*.*-amd64
    6. ./node_exporter

四、自动化与备份:提升运维效率

  1. 定时任务配置
    使用crontab -e添加日志清理任务:

    1. # 每天凌晨3点清理Nginx日志
    2. 0 3 * * * /usr/bin/find /var/log/nginx/ -name "*.log" -mtime +7 -exec rm {} \;
  2. 数据备份策略
    配置MySQL自动备份:

    1. # 创建备份脚本/backup/mysql_backup.sh
    2. #!/bin/bash
    3. mysqldump -u root -p'YourPassword' --all-databases > /backup/mysql_$(date +%Y%m%d).sql
    4. find /backup/ -name "mysql_*.sql" -mtime +30 -exec rm {} \;

    通过crontab -e添加每日执行:

    1. 0 2 * * * /bin/bash /backup/mysql_backup.sh

五、进阶优化:性能与可靠性提升

  1. Swap空间配置
    内存不足时创建Swap文件:

    1. sudo fallocate -l 2G /swapfile
    2. sudo chmod 600 /swapfile
    3. sudo mkswap /swapfile
    4. sudo swapon /swapfile
    5. # 永久生效需添加到/etc/fstab
    6. echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  2. Fail2Ban入侵防护
    安装并配置SSH防护规则:

    1. sudo apt install fail2ban -y
    2. sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    3. # 修改/etc/fail2ban/jail.local中的[sshd]段
    4. [sshd]
    5. enabled = true
    6. maxretry = 3
    7. bantime = 86400
    8. sudo systemctl restart fail2ban

六、文档与协作:知识沉淀与团队协同

  1. 运维文档编写
    使用Markdown记录服务器配置,例如:

    1. # 服务器初始化清单
    2. - **IP地址**: 192.168.1.100
    3. - **SSH端口**: 2222
    4. - **关键服务**:
    5. - Nginx (v1.25.3)
    6. - MySQL 8.0.35
    7. - **备份策略**: 每日全量备份,保留30
  2. 版本控制集成
    将配置文件(如/etc/nginx/nginx.conf)纳入Git管理:

    1. sudo apt install git -y
    2. mkdir ~/server_configs && cd ~/server_configs
    3. git init
    4. cp /etc/nginx/nginx.conf .
    5. git add nginx.conf
    6. git commit -m "Initial Nginx configuration"

七、常见问题处理:快速排除故障

  1. 端口冲突解决
    使用ss -tulnp | grep :80检查端口占用,终止冲突进程:

    1. sudo kill -9 $(sudo lsof -t -i :80)
  2. 磁盘空间不足
    通过df -h定位满载分区,清理大文件:

    1. sudo du -sh /var/log/* | sort -h # 查找大日志文件
    2. sudo journalctl --vacuum-size=100M # 清理系统日志

八、长期维护建议

  1. 安全公告订阅
    关注Ubuntu Security Notices(USN)或Red Hat Security Advisories(RHSA),及时应用安全补丁。

  2. 性能基准测试
    定期使用sysbench测试数据库性能:

    1. sysbench --test=oltp --oltp-table-size=1000000 \
    2. --mysql-db=test_db --mysql-user=db_user --mysql-password=StrongPassword123! \
    3. prepare
    4. sysbench --test=oltp --oltp-table-size=1000000 \
    5. --mysql-db=test_db --mysql-user=db_user --mysql-password=StrongPassword123! \
    6. run

结语

新建Linux云服务器后的初始化工作需兼顾安全性、稳定性和可维护性。通过系统化的配置流程(如安全加固、服务部署、自动化备份)和持续优化(如性能调优、监控告警),可显著降低后期运维成本。建议开发者根据实际业务需求调整配置,并形成标准化的服务器初始化SOP(标准操作程序),以提升团队效率。