云服务器安全配置与系统管理笔记

一、云服务器选购与性能考量

1.1 地域选择

选择服务器地域时,网络延迟是影响访问速度的关键因素。物理距离越近,网络延迟越低,访问体验越好。建议选择最靠近用户所在地的地域。

1.2 系统选择

为最大化可用资源,推荐选择纯净轻量的Linux发行版:

  • Debian:默认内存占用低,是资源节约型首选
  • Alpine Linux:极致轻量,适合容器化场景
  • TencentOS:腾讯云自研,针对云环境优化

避免选择带图形界面或预装大量软件的镜像。

1.3 Swap空间配置

对于2核2G内存的服务器,Swap空间建议配置为2GB至4GB,作为物理内存不足时的应急缓冲。

配置Swap文件的方法:

# 创建2GB Swap文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 设置开机自动挂载
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

1.4 vm.swappiness参数

该参数控制系统使用Swap的倾向程度,范围0-200:

  • 低数值(如10):尽可能使用物理内存,Swap仅作最后手段
  • 默认值(60):均衡设置
  • 中等数值(30-40):云服务器常用优化值
  • 高数值(100-200):积极使用Swap

对于2核2G服务器,建议设置为30而非10,避免内存紧张时CPU过度消耗在内存回收上。

# 临时调整
sudo sysctl vm.swappiness=30
# 永久调整:将 vm.swappiness=30 添加到 /etc/sysctl.conf

二、SSH服务安全配置

2.1 sshd_config常用配置项解析

配置项含义安全影响
PermitRootLogin允许root通过SSH登录yes允许;no禁止;prohibit-password仅允许密钥
PasswordAuthentication密码认证开关no可防御暴力破解
KbdInteractiveAuthentication键盘交互认证no可关闭密码认证的旁路
PubkeyAuthentication公钥认证开关yes启用密钥登录
MaxAuthTries最大认证失败次数默认6次,超过后断开连接
X11ForwardingX11图形转发no可减少攻击面

2.2 Too many authentication failures错误处理

该错误表示认证尝试次数超过服务器允许的最大值。常见原因是SSH客户端自动尝试本地多个密钥文件,累加后触发了MaxAuthTries限制。

解决方法:

  1. 强制指定密钥登录

    ssh -o PubkeyAuthentication=yes -o PasswordAuthentication=no -o IdentitiesOnly=yes -i ~/.ssh/私钥文件 用户@IP
  2. 在~/.ssh/config中配置

    Host myserver
     HostName IP地址
     User 用户名
     IdentityFile ~/.ssh/私钥文件
     IdentitiesOnly yes
     PubkeyAuthentication yes
     PasswordAuthentication no
  3. 通过VNC控制台进入服务器,临时调大MaxAuthTries或修复密钥配置

2.3 PermitRootLogin各取值含义

  • yes:允许root使用密码或密钥登录
  • no:禁止root通过任何方式登录
  • prohibit-password:禁止root密码登录,但允许密钥登录
  • without-password:旧写法,同prohibit-password

三、Linux用户与权限管理

3.1 查看系统用户的方法

# 查看所有用户
cat /etc/passwd

# 只显示用户名列表
cut -d: -f1 /etc/passwd

# 只显示普通用户(UID>=1000)
awk -F: '$3 >= 1000 {print $1}' /etc/passwd

# 查看当前登录用户
whoami
who
w

# 查看用户所属组
groups 用户名

3.2 创建新用户并配置密钥登录

# 创建用户
adduser 用户名

# 切换到新用户
su - 用户名

# 创建.ssh目录
mkdir ~/.ssh
chmod 700 ~/.ssh

# 添加公钥
vi ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

3.3 sudo权限配置

/etc/sudoers文件控制sudo权限,必须用visudo命令编辑。

visudo与vi/vim的区别:

  • visudo:专门编辑sudoers文件,保存时自动检查语法,防止配置错误导致sudo失效
  • vi/vim:通用文本编辑器,编辑sudoers文件无语法保护

visudo的常用操作:

# 编辑主配置文件
visudo

# 编辑自定义碎片文件
visudo -f /etc/sudoers.d/文件名

# 检查语法是否正确
visudo -c

# 查看当前sudo配置
cat /etc/sudoers
cat /etc/sudoers.d/文件名

3.4 sudoers配置语法解析

用户/组 主机=(以谁的身份) 命令

示例说明:

  • lighthouse ALL=(ALL) NOPASSWD: ALL:用户lighthouse可在本机以任何用户身份免密码执行任何命令
  • %sudo ALL=(ALL) ALL:sudo组的成员可在本机以任何用户身份执行任何命令(需要密码)
  • %google-sudoers ALL=(ALL:ALL) NOPASSWD: ALL:google-sudoers组成员可在本机以任何用户/组身份免密码执行任何命令

要点:

  • %前缀表示用户组,无前缀表示单个用户
  • NOPASSWD:表示执行sudo时不需要输入密码
  • 括号中的ALL表示可以以任何用户身份执行
  • 最后的ALL表示可以执行任何命令

四、云服务商默认安全策略

4.1 Google Cloud Platform

  • 默认禁止root SSH登录(PermitRootLogin no)
  • 强制创建普通用户进行日常操作
  • 用户加入google-sudoers组,配置NOPASSWD
  • 通过sudo提权执行管理命令,操作有日志审计

4.2 腾讯云轻量应用服务器

  • 默认创建lighthouse用户
  • lighthouse用户配置NOPASSWD权限
  • 支持Web控制台一键登录(基于内置密钥)
  • 控制台入口归属于用户账号,非后台人员随意访问通道

五、X11转发相关提示处理

登录时出现 /usr/bin/xauth: file /home/用户名/.Xauthority does not exist 是信息提示而非错误。

该文件用于管理X11图形界面的认证信息。云服务器通常不需要图形界面,该文件缺失不影响服务器运行。

如需消除提示,可创建空文件:

touch ~/.Xauthority
chmod 600 ~/.Xauthority

或在本地SSH配置中禁用X11转发:

ForwardX11 no

六、最佳实践总结

6.1 安全配置清单

  1. 创建普通用户用于日常操作
  2. 配置SSH密钥登录
  3. 关闭密码登录(PasswordAuthentication no)
  4. 根据场景设置PermitRootLogin为no或prohibit-password
  5. 为普通用户配置sudo权限
  6. 保留VNC控制台作为紧急救援通道

6.2 风险提示

  • 修改sshd_config前务必确认密钥登录可用
  • 始终保持至少一个已连接的SSH会话,用于测试新配置
  • 禁止root登录前确保普通用户可用
  • 所有sudo操作均有日志记录(/var/log/auth.log)

6.3 禁用密码登录的全局配置

# 编辑SSH配置文件
sudo vi /etc/ssh/sshd_config

# 修改配置
PasswordAuthentication no

# 重启服务
sudo systemctl restart sshd

标签: none

添加新评论