京东云服务器上线必要安全设置完整指南

分类:建站教程

前言

京东云服务器上线前的安全设置是保障业务稳定运行的关键环节。据统计,超过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 数据库(仅内网)

创建安全组规则

  1. 登录京东云控制台
  2. 进入"云服务 > 云服务器 > 安全组"
  3. 创建安全组并配置规则
  4. 将安全组绑定到云服务器实例

入站规则配置示例

# 允许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备份策略、定期测试恢复流程
  • 监控审计:启用日志监控、配置入侵检测

通过以上安全设置,可以有效降低京东云服务器的安全风险,为业务稳定运行提供可靠保障。