新建Linux云服务器后必做的10件事:从基础配置到安全加固

一、系统初始化:夯实基础环境

  1. 更新系统软件包
    云服务器首次启动时,系统可能存在未修复的漏洞或过时的软件版本。通过以下命令完成基础更新(以CentOS/RHEL为例):

    1. sudo yum update -y # CentOS/RHEL
    2. sudo apt update && sudo apt upgrade -y # Ubuntu/Debian

    更新后建议重启服务器以加载新内核:sudo reboot。此步骤可降低被已知漏洞攻击的风险。

  2. 创建专用用户并禁用root登录
    直接使用root用户操作存在安全隐患。建议创建普通用户并赋予sudo权限:

    1. sudo adduser deploy # 创建用户
    2. sudo passwd deploy # 设置密码
    3. sudo usermod -aG wheel deploy # CentOS/RHEL赋予sudo权限
    4. sudo usermod -aG sudo deploy # Ubuntu/Debian赋予sudo权限

    随后编辑SSH配置文件禁用root远程登录:

    1. sudo vi /etc/ssh/sshd_config

    修改PermitRootLoginno,重启SSH服务生效:

    1. sudo systemctl restart sshd
  3. 配置防火墙规则
    使用firewalld(CentOS/RHEL)或ufw(Ubuntu/Debian)限制访问端口。例如仅开放SSH(22)、HTTP(80)、HTTPS(443):

    1. sudo firewall-cmd --permanent --add-service={ssh,http,https} # CentOS/RHEL
    2. sudo firewall-cmd --reload
    3. sudo ufw allow 22/tcp && sudo ufw allow 80/tcp && sudo ufw allow 443/tcp # Ubuntu/Debian
    4. sudo ufw enable

二、安全加固:构建防御体系

  1. 安装Fail2Ban防止暴力破解
    Fail2Ban可监控日志文件,自动封禁异常IP。安装并配置SSH防护:

    1. sudo yum install fail2ban -y # CentOS/RHEL
    2. sudo apt install fail2ban -y # Ubuntu/Debian
    3. sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    4. sudo vi /etc/fail2ban/jail.local

    修改[sshd]段落的enabled=true,重启服务:

    1. sudo systemctl restart fail2ban
  2. 密钥认证替代密码登录
    生成SSH密钥对并上传公钥到服务器:

    1. ssh-keygen -t rsa -b 4096 # 本地生成密钥
    2. ssh-copy-id deploy@服务器IP # 上传公钥

    编辑/etc/ssh/sshd_config禁用密码认证:

    1. PasswordAuthentication no
    2. ChallengeResponseAuthentication no
  3. 定期安全审计
    使用lynis工具进行系统安全扫描:

    1. sudo yum install lynis -y # CentOS/RHEL
    2. sudo apt install lynis -y # Ubuntu/Debian
    3. sudo lynis audit system

    根据报告修复高风险项,如文件权限、服务配置等。

三、环境搭建:按需部署服务

  1. 安装Web服务器
    根据业务需求选择Nginx或Apache:

    1. sudo yum install nginx -y # CentOS/RHEL
    2. sudo apt install nginx -y # Ubuntu/Debian
    3. sudo systemctl start nginx && sudo systemctl enable nginx

    配置虚拟主机时,确保目录权限为755,文件权限为644

  2. 数据库安装与优化
    以MySQL为例,安装后执行安全初始化:

    1. sudo yum install mysql-server -y # CentOS/RHEL
    2. sudo apt install mysql-server -y # Ubuntu/Debian
    3. sudo mysql_secure_installation

    设置强密码、移除匿名用户、禁用远程root登录,并优化配置文件(如/etc/my.cnf)中的innodb_buffer_pool_size等参数。

  3. Docker容器化部署
    安装Docker并配置镜像加速:

    1. sudo yum install docker -y # CentOS/RHEL
    2. sudo apt install docker.io -y # Ubuntu/Debian
    3. sudo systemctl start docker && sudo systemctl enable docker
    4. sudo mkdir -p /etc/docker
    5. sudo tee /etc/docker/daemon.json <<-'EOF'
    6. {
    7. "registry-mirrors": ["https://registry.docker-cn.com"]
    8. }
    9. EOF
    10. sudo systemctl restart docker

四、监控与维护:保障长期稳定

  1. 日志集中管理
    使用rsyslogELK Stack收集日志。简单场景下,配置日志轮转防止磁盘占满:

    1. sudo yum install logrotate -y # CentOS/RHEL
    2. sudo apt install logrotate -y # Ubuntu/Debian
    3. sudo vi /etc/logrotate.d/nginx # 示例:Nginx日志轮转

    内容示例:

    1. /var/log/nginx/*.log {
    2. daily
    3. missingok
    4. rotate 14
    5. compress
    6. delaycompress
    7. notifempty
    8. create 0640 www-data adm
    9. sharedscripts
    10. postrotate
    11. [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
    12. endscript
    13. }
  2. 性能监控工具
    安装htopnmon等工具实时查看资源占用:

    1. sudo yum install htop nmon -y # CentOS/RHEL
    2. sudo apt install htop nmon -y # Ubuntu/Debian

    长期监控推荐使用Prometheus + Grafana组合。

  3. 备份策略
    定期备份关键数据(如数据库、配置文件)至对象存储或异地服务器。示例脚本:

    1. #!/bin/bash
    2. BACKUP_DIR="/backup"
    3. MYSQL_USER="root"
    4. MYSQL_PASS="your_password"
    5. DATE=$(date +%Y%m%d)
    6. mkdir -p $BACKUP_DIR
    7. # 数据库备份
    8. mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases > $BACKUP_DIR/db_$DATE.sql
    9. # 文件备份
    10. tar -czf $BACKUP_DIR/web_$DATE.tar.gz /var/www/html
    11. # 删除7天前的备份
    12. find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
    13. find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete

五、进阶优化:提升服务效能

  1. TCP参数调优
    编辑/etc/sysctl.conf优化网络性能:

    1. net.ipv4.tcp_syncookies = 1
    2. net.ipv4.tcp_max_syn_backlog = 2048
    3. net.core.somaxconn = 2048
    4. net.ipv4.tcp_tw_reuse = 1

    生效配置:sudo sysctl -p

  2. 文件系统优化
    对频繁写入的目录(如数据库存储路径)挂载时添加noatime选项,减少元数据更新:

    1. sudo vi /etc/fstab
    2. # 示例:/dev/vdb1 /data xfs defaults,noatime 0 0
  3. 自动化运维
    使用Ansible或SaltStack批量管理多台服务器。示例Ansible Playbook更新软件包:

    1. - hosts: all
    2. tasks:
    3. - name: Update all packages
    4. yum:
    5. name: '*'
    6. state: latest
    7. when: ansible_os_family == "RedHat"
    8. - name: Update all packages (Debian)
    9. apt:
    10. upgrade: dist
    11. when: ansible_os_family == "Debian"

总结

新建Linux云服务器后,需按“初始化→安全加固→环境搭建→监控维护→性能优化”的流程逐步配置。关键动作包括:禁用root远程登录、配置防火墙、定期更新系统、实施备份策略、监控资源使用情况。通过标准化操作和自动化工具,可显著提升服务器的安全性、稳定性和可维护性,为业务开展提供坚实基础。