×
登录
我已经注册了,直接登录
注册
我还没有注册用户,现在注册
  • 请输入手机号码

  • 请输入密码

  • 点击刷新验证码

云服务器命令行安全设置指南

2025-10-24 02:29:45 来源:紫云

云服务器命令行安全设置指南
云服务器命令行是运维管理的核心入口,其安全性直接决定服务器整体安全。以下是针对命令行访问的关键安全设置步骤,覆盖访问控制、身份认证、日志监控等核心环节:

1. 修改默认SSH端口

默认SSH端口(22)是暴力破解的高频目标,修改为非标准端口可显著降低被扫描的风险。操作步骤:

  • 编辑SSH配置文件:sudo vim /etc/ssh/sshd_config
  • 找到#Port 22行,取消注释并修改为自定义端口(如Port 2200,建议选择1024-65535之间的未使用端口)
  • 保存退出后重启SSH服务:sudo systemctl restart sshd
  • 若使用云平台安全组,需同步放行新端口。

2. 禁用root直接登录

root账户权限过高,直接登录易被攻击。建议新建普通用户并通过sudo提权:

  • 新建用户(如adminuser):sudo adduser adminuser
  • 赋予sudo权限(将用户加入wheel组,Ubuntu为sudo组):sudo usermod -aG wheel adminuser
  • 编辑SSH配置文件:sudo vim /etc/ssh/sshd_config,将PermitRootLogin yes改为PermitRootLogin no
  • 保存退出并重启SSH服务:sudo systemctl restart sshd

3. 启用SSH密钥认证(禁用密码登录)

密钥认证比密码更安全,能有效防止暴力破解。操作步骤:

  • 本地生成密钥对(Windows用ssh-keygen,Linux/Mac用终端):ssh-keygen -t rsa -b 4096(按提示保存密钥,默认路径~/.ssh/id_rsa
  • 将公钥上传至服务器:ssh-copy-id -i ~/.ssh/id_rsa.pub adminuser@your_server_ip -p 2200(替换为实际端口和用户名)
  • 编辑SSH配置文件:sudo vim /etc/ssh/sshd_config,设置PubkeyAuthentication yes(启用密钥认证)、PasswordAuthentication no(禁用密码认证)
  • 保存退出并重启SSH服务:sudo systemctl restart sshd
  • 测试密钥登录:ssh -i ~/.ssh/id_rsa adminuser@your_server_ip -p 2200

4. 限制SSH登录IP范围

通过防火墙或SSH配置限制可访问的IP地址,减少非法访问风险。

  • 云平台安全组:登录云控制台,进入安全组规则,添加入方向规则,仅允许管理员IP访问SSH端口(如2200),策略设为“允许”,优先级高于其他规则。
  • 本地防火墙(以CentOS firewalld为例):sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="管理员IP" port port="2200" protocol="tcp" accept',然后sudo firewall-cmd --reload
  • hosts.allow文件:编辑/etc/hosts.allow,添加sshd: 管理员IP(如sshd: 192.168.1.100),仅允许指定IP登录。

5. 配置失败登录锁定策略

通过fail2ban工具自动封禁多次登录失败的IP,防止暴力破解。操作步骤:

  • 安装fail2ban:sudo apt install fail2ban -y(Ubuntu/Debian)、sudo yum install fail2ban -y(CentOS/RHEL)。
  • 配置fail2ban:复制默认配置文件sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local,编辑jail.local,找到[sshd]部分,修改以下参数:
enabled = true
maxretry = 3  # 允许的最大失败次数
bantime = 3600  # 封禁时间(秒,如1小时)
findtime = 600  # 检测时间窗口(秒,如10分钟)
  • 重启fail2ban服务:sudo systemctl restart fail2ban

6. 控制命令行访问权限

通过hosts.allowhosts.deny文件细化访问控制,限制命令行服务的访问来源。

  • 编辑/etc/hosts.allow,添加允许的IP或IP段(如sshd: 192.168.1.0/24,允许192.168.1网段访问SSH)。
  • 编辑/etc/hosts.deny,添加拒绝规则(如sshd: ALL,拒绝所有未在hosts.allow中列出的IP访问SSH)。

7. 定期更新系统与软件

及时修补系统漏洞是防范攻击的基础。操作步骤:

  • Ubuntu/Debian:sudo apt update && sudo apt upgrade -y(更新软件包列表并升级所有可升级的软件)。
  • CentOS/RHEL:sudo yum update -y(升级所有软件包)。
  • 配置自动安全更新(Ubuntu示例):sudo dpkg-reconfigure -plow unattended-upgrades,开启自动安装安全更新。

8. 配置日志监控与告警

通过日志记录命令行操作,及时发现异常行为。

  • 启用SSH日志:SSH日志默认记录在/var/log/auth.log(Ubuntu/Debian)或/var/log/secure(CentOS/RHEL),可通过tail -f /var/log/auth.log实时查看登录记录。
  • 集中日志管理:使用rsysloglogrotate将日志转发至ELK(Elasticsearch+Logstash+Kibana)、Loki等集中式日志平台,便于分析和告警。
  • 设置告警规则:通过Prometheus+Alertmanager或云平台监控服务,配置SSH登录失败次数、异常IP访问等告警阈值,及时通知管理员。

以上设置需根据服务器实际环境调整(如端口、IP范围、软件版本),建议定期复查配置有效性,确保命令行访问安全。

开始使用我们的产品

销售客服
售后技术支持