前言
京东云服务器上线前的安全设置是保障业务稳定运行的关键环节。据统计,超过60%的服务器安全事件都与基础安全配置不当有关。本文将系统性地梳理京东云服务器的必要安全设置,帮助你在上线前构建完善的安全防护体系。
SSH安全配置
SSH是管理京东云服务器最常用的方式,但默认配置往往存在安全隐患。合理的SSH安全配置可以有效降低被暴力破解的风险。
启用密钥认证
传统的密码认证容易被暴力破解,而SSH密钥认证提供了更高的安全性。建议优先使用RSA 4096位密钥。
# 生成SSH密钥对
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 上传公钥到服务器
ssh-copy-id user@your-server-ip
修改SSH端口
默认的22端口是攻击者重点扫描的目标。修改为随机高位端口可降低约80%的自动化扫描攻击。
# 编辑SSH配置文件
sudo vi /etc/ssh/sshd_config
# 修改端口号(例如改为22222)
Port 22222
# 禁止root用户远程登录
PermitRootLogin no
# 禁用密码认证(确保密钥已配置)
PasswordAuthentication no
重启SSH服务使配置生效:
sudo systemctl restart sshd
配置访问限制
通过hosts.allow和hosts.deny文件限制SSH访问来源:
# /etc/hosts.allow
sshd: 192.168.1.100
sshd: 10.0.0.0/8
# /etc/hosts.deny
sshd: ALL
设置连接超时
为防止会话劫持,建议设置合理的超时时间:
# /etc/ssh/sshd_config
ClientAliveInterval 300
ClientAliveCountMax 2
安全组配置
京东云安全组是服务器的第一道网络防线,用于控制进出服务器的流量。正确配置安全组可以阻止99%的未授权访问尝试。
配置原则
遵循"最小权限原则",仅开放必要的端口:
| 服务 | 端口 | 协议 | 说明 |
|---|---|---|---|
| SSH | 22222 | TCP | 远程管理(限制源IP) |
| HTTP | 80 | TCP | Web服务 |
| HTTPS | 443 | TCP | 加密Web服务 |
| MySQL | 3306 | TCP | 数据库(仅内网) |
创建安全组规则
- 登录京东云控制台
- 进入"云服务 > 云服务器 > 安全组"
- 创建安全组并配置规则
- 将安全组绑定到云服务器实例
入站规则配置示例
# 允许HTTP访问
协议:TCP
端口范围:80
源IP:0.0.0.0/0
策略:允许
# 限制SSH访问(仅允许特定IP)
协议:TCP
端口范围:22222
源IP:你的办公IP
策略:允许
系统防火墙配置
除了安全组,服务器内部的系统防火墙提供了第二层防护。建议同时启用安全组和系统防火墙。
firewalld配置(CentOS/RHEL)
# 开启防火墙
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 开放HTTP端口
sudo firewall-cmd --permanent --add-port=80/tcp
# 开放HTTPS端口
sudo firewall-cmd --permanent --add-port=443/tcp
# 重新加载配置
sudo firewall-cmd --reload
# 查看已开放端口
sudo firewall-cmd --list-all
iptables配置(通用)
# 允许HTTP/HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 允许SSH(自定义端口)
sudo iptables -A INPUT -p tcp --dport 22222 -j ACCEPT
# 允许已建立的连接
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 拒绝其他入站连接
sudo iptables -P INPUT DROP
# 保存规则
sudo service iptables save
用户权限管理
创建普通用户替代root操作,降低安全风险。
创建管理员用户
# 创建新用户
sudo useradd -m deploy
# 设置密码
sudo passwd deploy
# 添加到sudo组
sudo gpasswd -a deploy sudo
# 切换到新用户
su - deploy
禁用root登录
# 编辑SSH配置
sudo vi /etc/ssh/sshd_config
# 设置禁止root登录
PermitRootLogin no
# 重启SSH服务
sudo systemctl restart sshd
系统更新与漏洞修复
及时更新系统和软件是防止漏洞被利用的关键。
配置自动安全更新
# Ubuntu/Debian
sudo apt update
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
# CentOS/RHEL
sudo yum install yum-cron
sudo systemctl enable yum-cron
手动更新系统
# 更新软件包列表
sudo apt update
# 升级所有软件包
sudo apt upgrade -y
# 仅安装安全更新
sudo apt install unattended-upgrades
漏洞扫描
# 使用Nmap扫描端口
nmap -sV -sC your-server-ip
# 检查开放端口
sudo netstat -tuln
数据备份策略
有效的数据备份可以将安全事件的影响降低90%以上。
3-2-1备份原则
- 3份副本:至少保留3份数据副本
- 2种介质:使用2种不同的存储介质
- 1份异地:至少1份存放在异地
配置系统快照
在京东云控制台为云硬盘创建快照:
# 创建快照(通过京东云CLI)
jdcloud-cli --region cn-north-1 cbs CreateSnapshot \
--volumeId vol-xxxxxxxx \
--snapshotName "pre-launch-backup"
数据库备份脚本
#!/bin/bash
# backup.sh - 数据库备份脚本
BACKUP_DIR="/home/backup"
DATE=$(date +%Y%m%d_%H%M%S)
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份MySQL数据库
mysqldump -u root -p'password' --all-databases > $BACKUP_DIR/mysql_$DATE.sql
# 压缩备份文件
gzip $BACKUP_DIR/mysql_$DATE.sql
# 保留最近7天的备份
find $BACKUP_DIR -name "*.gz" -mtime +7 -delete
设置定时备份
# 编辑crontab
crontab -e
# 每天凌晨2点执行备份
0 2 * * * /home/deploy/backup.sh
登录认证增强
启用多因素认证(MFA)可以大幅提升账户安全性。
配置Google Authenticator
# 安装Google Authenticator
sudo apt install libpam-google-authenticator
# 配置PAM
sudo vi /etc/pam.d/sshd
# 添加:auth required pam_google_authenticator.so
# 编辑SSH配置
sudo vi /etc/ssh/sshd_config
# 设置:ChallengeResponseAuthentication yes
# 重启SSH
sudo systemctl restart sshd
创建用户认证配置
# 切换到目标用户
su - deploy
# 运行配置命令
google-authenticator
# 按提示完成配置
日志监控与审计
完善的日志监控可以帮助及时发现安全威胁。
配置日志收集
# 安装日志分析工具
sudo apt install rsyslog
# 启动日志服务
sudo systemctl enable rsyslog
sudo systemctl start rsyslog
监控SSH登录
# 查看SSH登录日志
sudo tail -f /var/log/auth.log
# 查看失败的登录尝试
sudo grep "Failed password" /var/log/auth.log
# 统计IP登录失败次数
sudo grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn
配置fail2ban防暴力破解
# 安装fail2ban
sudo apt install fail2ban
# 创建配置文件
sudo vi /etc/fail2ban/jail.local
# 添加SSH防护规则
[sshd]
enabled = true
port = 22222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
总结
京东云服务器的安全设置是一个系统工程,需要从多个层面进行防护。建议按照本文的顺序逐步完成配置,确保服务器在上线前达到安全要求。
重点关注以下核心配置:
- SSH安全:启用密钥认证、修改默认端口、禁止root登录
- 网络防护:正确配置安全组和系统防火墙
- 系统加固:及时更新系统、配置自动安全更新
- 数据保护:实施3-2-1备份策略、定期测试恢复流程
- 监控审计:启用日志监控、配置入侵检测
通过以上安全设置,可以有效降低京东云服务器的安全风险,为业务稳定运行提供可靠保障。