新建Linux云服务器后必做的10件事:从安全加固到高效运维
一、初始化基础配置:为系统运行打牢根基
- 系统信息确认 
 通过- cat /etc/os-release查看系统版本,使用- uname -a确认内核版本,避免因版本不兼容导致服务异常。例如,Ubuntu 22.04 LTS与旧版软件包可能存在依赖冲突,需提前规划软件源配置。
- 更新软件包 
 执行- sudo apt update && sudo apt upgrade -y(Debian/Ubuntu)或- sudo yum update -y(CentOS/RHEL)更新所有软件包。此步骤可修复已知漏洞,例如OpenSSL的CVE-2023-XXXX漏洞可能通过更新包自动修复。
- 时区与语言设置 
 使用- timedatectl set-timezone Asia/Shanghai设置时区,通过- localectl set-locale LANG=zh_CN.UTF-8配置中文环境。错误的时区设置可能导致日志时间戳混乱,影响故障排查效率。
二、安全加固:构建多重防护体系
- 防火墙规则配置 
 安装- ufw(Ubuntu)或- firewalld(CentOS),仅开放必要端口。例如,Web服务器仅允许80/443端口:- sudo ufw allow 80/tcp
- sudo ufw allow 443/tcp
- sudo ufw enable
 - 避免直接暴露SSH默认端口22,建议修改为高位端口(如2222)并通过 - Port 2222在- /etc/ssh/sshd_config中配置。
- SSH密钥认证 
 禁用密码登录,强制使用密钥对:- # 生成密钥对(本地执行)
- ssh-keygen -t ed25519 -C "your_email@example.com"
- # 将公钥上传至服务器
- ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip -p 2222
 - 修改 - /etc/ssh/sshd_config中的- PasswordAuthentication no并重启服务。
- 用户权限管理 
 创建专用用户并加入- sudo组:- sudo adduser deploy
- sudo usermod -aG sudo deploy
 - 禁止 - root远程登录,通过- PermitRootLogin no配置SSH。
三、服务部署:快速搭建核心组件
- Web服务器安装 
 以Nginx为例:- sudo apt install nginx -y
- sudo systemctl start nginx
- sudo systemctl enable nginx
 - 验证服务状态: - curl -I localhost应返回- HTTP/1.1 200 OK。
- 数据库配置 
 安装MySQL 8.0并设置强密码:- sudo apt install mysql-server -y
- sudo mysql_secure_installation
 - 配置远程访问需修改 - bind-address = 0.0.0.0并创建专用用户:- CREATE USER 'db_user'@'%' IDENTIFIED BY 'StrongPassword123!';
- GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'%';
- FLUSH PRIVILEGES;
 
- 监控工具集成 
 安装- htop(进程监控)、- nmon(系统性能)和- Prometheus Node Exporter(指标采集):- sudo apt install htop nmon -y
- # Node Exporter安装(需下载二进制包)
- wget https://github.com/prometheus/node_exporter/releases/download/v*/node_exporter-*.*-amd64.tar.gz
- tar xvfz node_exporter-*.*-amd64.tar.gz
- cd node_exporter-*.*-amd64
- ./node_exporter
 
四、自动化与备份:提升运维效率
- 定时任务配置 
 使用- crontab -e添加日志清理任务:- # 每天凌晨3点清理Nginx日志
- 0 3 * * * /usr/bin/find /var/log/nginx/ -name "*.log" -mtime +7 -exec rm {} \;
 
- 数据备份策略 
 配置MySQL自动备份:- # 创建备份脚本/backup/mysql_backup.sh
- #!/bin/bash
- mysqldump -u root -p'YourPassword' --all-databases > /backup/mysql_$(date +%Y%m%d).sql
- find /backup/ -name "mysql_*.sql" -mtime +30 -exec rm {} \;
 - 通过 - crontab -e添加每日执行:- 0 2 * * * /bin/bash /backup/mysql_backup.sh
 
五、进阶优化:性能与可靠性提升
- Swap空间配置 
 内存不足时创建Swap文件:- sudo fallocate -l 2G /swapfile
- sudo chmod 600 /swapfile
- sudo mkswap /swapfile
- sudo swapon /swapfile
- # 永久生效需添加到/etc/fstab
- echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
 
- Fail2Ban入侵防护 
 安装并配置SSH防护规则:- sudo apt install fail2ban -y
- sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- # 修改/etc/fail2ban/jail.local中的[sshd]段
- [sshd]
- enabled = true
- maxretry = 3
- bantime = 86400
- sudo systemctl restart fail2ban
 
六、文档与协作:知识沉淀与团队协同
- 运维文档编写 
 使用Markdown记录服务器配置,例如:- # 服务器初始化清单
- - **IP地址**: 192.168.1.100
- - **SSH端口**: 2222
- - **关键服务**:
- - Nginx (v1.25.3)
- - MySQL 8.0.35
- - **备份策略**: 每日全量备份,保留30天
 
- 版本控制集成 
 将配置文件(如- /etc/nginx/nginx.conf)纳入Git管理:- sudo apt install git -y
- mkdir ~/server_configs && cd ~/server_configs
- git init
- cp /etc/nginx/nginx.conf .
- git add nginx.conf
- git commit -m "Initial Nginx configuration"
 
七、常见问题处理:快速排除故障
- 端口冲突解决 
 使用- ss -tulnp | grep :80检查端口占用,终止冲突进程:- sudo kill -9 $(sudo lsof -t -i :80)
 
- 磁盘空间不足 
 通过- df -h定位满载分区,清理大文件:- sudo du -sh /var/log/* | sort -h # 查找大日志文件
- sudo journalctl --vacuum-size=100M # 清理系统日志
 
八、长期维护建议
- 安全公告订阅 
 关注Ubuntu Security Notices(USN)或Red Hat Security Advisories(RHSA),及时应用安全补丁。
- 性能基准测试 
 定期使用- sysbench测试数据库性能:- sysbench --test=oltp --oltp-table-size=1000000 \
- --mysql-db=test_db --mysql-user=db_user --mysql-password=StrongPassword123! \
- prepare
- sysbench --test=oltp --oltp-table-size=1000000 \
- --mysql-db=test_db --mysql-user=db_user --mysql-password=StrongPassword123! \
- run
 
结语
新建Linux云服务器后的初始化工作需兼顾安全性、稳定性和可维护性。通过系统化的配置流程(如安全加固、服务部署、自动化备份)和持续优化(如性能调优、监控告警),可显著降低后期运维成本。建议开发者根据实际业务需求调整配置,并形成标准化的服务器初始化SOP(标准操作程序),以提升团队效率。