一、系统初始化:夯实基础环境
-
更新系统软件包
云服务器首次启动时,系统可能存在未修复的漏洞或过时的软件版本。通过以下命令完成基础更新(以CentOS/RHEL为例):sudo yum update -y # CentOS/RHELsudo apt update && sudo apt upgrade -y # Ubuntu/Debian
更新后建议重启服务器以加载新内核:
sudo reboot。此步骤可降低被已知漏洞攻击的风险。 -
创建专用用户并禁用root登录
直接使用root用户操作存在安全隐患。建议创建普通用户并赋予sudo权限:sudo adduser deploy # 创建用户sudo passwd deploy # 设置密码sudo usermod -aG wheel deploy # CentOS/RHEL赋予sudo权限sudo usermod -aG sudo deploy # Ubuntu/Debian赋予sudo权限
随后编辑SSH配置文件禁用root远程登录:
sudo vi /etc/ssh/sshd_config
修改
PermitRootLogin为no,重启SSH服务生效:sudo systemctl restart sshd
-
配置防火墙规则
使用firewalld(CentOS/RHEL)或ufw(Ubuntu/Debian)限制访问端口。例如仅开放SSH(22)、HTTP(80)、HTTPS(443):sudo firewall-cmd --permanent --add-service={ssh,http,https} # CentOS/RHELsudo firewall-cmd --reloadsudo ufw allow 22/tcp && sudo ufw allow 80/tcp && sudo ufw allow 443/tcp # Ubuntu/Debiansudo ufw enable
二、安全加固:构建防御体系
-
安装Fail2Ban防止暴力破解
Fail2Ban可监控日志文件,自动封禁异常IP。安装并配置SSH防护:sudo yum install fail2ban -y # CentOS/RHELsudo apt install fail2ban -y # Ubuntu/Debiansudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localsudo vi /etc/fail2ban/jail.local
修改
[sshd]段落的enabled=true,重启服务:sudo systemctl restart fail2ban
-
密钥认证替代密码登录
生成SSH密钥对并上传公钥到服务器:ssh-keygen -t rsa -b 4096 # 本地生成密钥ssh-copy-id deploy@服务器IP # 上传公钥
编辑
/etc/ssh/sshd_config禁用密码认证:PasswordAuthentication noChallengeResponseAuthentication no
-
定期安全审计
使用lynis工具进行系统安全扫描:sudo yum install lynis -y # CentOS/RHELsudo apt install lynis -y # Ubuntu/Debiansudo lynis audit system
根据报告修复高风险项,如文件权限、服务配置等。
三、环境搭建:按需部署服务
-
安装Web服务器
根据业务需求选择Nginx或Apache:sudo yum install nginx -y # CentOS/RHELsudo apt install nginx -y # Ubuntu/Debiansudo systemctl start nginx && sudo systemctl enable nginx
配置虚拟主机时,确保目录权限为
755,文件权限为644。 -
数据库安装与优化
以MySQL为例,安装后执行安全初始化:sudo yum install mysql-server -y # CentOS/RHELsudo apt install mysql-server -y # Ubuntu/Debiansudo mysql_secure_installation
设置强密码、移除匿名用户、禁用远程root登录,并优化配置文件(如
/etc/my.cnf)中的innodb_buffer_pool_size等参数。 -
Docker容器化部署
安装Docker并配置镜像加速:sudo yum install docker -y # CentOS/RHELsudo apt install docker.io -y # Ubuntu/Debiansudo systemctl start docker && sudo systemctl enable dockersudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://registry.docker-cn.com"]}EOFsudo systemctl restart docker
四、监控与维护:保障长期稳定
-
日志集中管理
使用rsyslog或ELK Stack收集日志。简单场景下,配置日志轮转防止磁盘占满:sudo yum install logrotate -y # CentOS/RHELsudo apt install logrotate -y # Ubuntu/Debiansudo vi /etc/logrotate.d/nginx # 示例:Nginx日志轮转
内容示例:
/var/log/nginx/*.log {dailymissingokrotate 14compressdelaycompressnotifemptycreate 0640 www-data admsharedscriptspostrotate[ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`endscript}
-
性能监控工具
安装htop、nmon等工具实时查看资源占用:sudo yum install htop nmon -y # CentOS/RHELsudo apt install htop nmon -y # Ubuntu/Debian
长期监控推荐使用
Prometheus + Grafana组合。 -
备份策略
定期备份关键数据(如数据库、配置文件)至对象存储或异地服务器。示例脚本:#!/bin/bashBACKUP_DIR="/backup"MYSQL_USER="root"MYSQL_PASS="your_password"DATE=$(date +%Y%m%d)mkdir -p $BACKUP_DIR# 数据库备份mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases > $BACKUP_DIR/db_$DATE.sql# 文件备份tar -czf $BACKUP_DIR/web_$DATE.tar.gz /var/www/html# 删除7天前的备份find $BACKUP_DIR -name "*.sql" -mtime +7 -deletefind $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
五、进阶优化:提升服务效能
-
TCP参数调优
编辑/etc/sysctl.conf优化网络性能:net.ipv4.tcp_syncookies = 1net.ipv4.tcp_max_syn_backlog = 2048net.core.somaxconn = 2048net.ipv4.tcp_tw_reuse = 1
生效配置:
sudo sysctl -p。 -
文件系统优化
对频繁写入的目录(如数据库存储路径)挂载时添加noatime选项,减少元数据更新:sudo vi /etc/fstab# 示例:/dev/vdb1 /data xfs defaults,noatime 0 0
-
自动化运维
使用Ansible或SaltStack批量管理多台服务器。示例Ansible Playbook更新软件包:- hosts: alltasks:- name: Update all packagesyum:name: '*'state: latestwhen: ansible_os_family == "RedHat"- name: Update all packages (Debian)apt:upgrade: distwhen: ansible_os_family == "Debian"
总结
新建Linux云服务器后,需按“初始化→安全加固→环境搭建→监控维护→性能优化”的流程逐步配置。关键动作包括:禁用root远程登录、配置防火墙、定期更新系统、实施备份策略、监控资源使用情况。通过标准化操作和自动化工具,可显著提升服务器的安全性、稳定性和可维护性,为业务开展提供坚实基础。