当前位置: 首页 > news >正文

云服务器如何设置防火墙和安全组规则?

一、安全组(Security Group)设置

安全组是云平台提供的虚拟防火墙,用于控制 入站(Ingress)和出站(Egress)流量

1. 基本安全组规则(推荐)

协议端口源IP用途是否必需
TCP22你的IP或公司IPSSH远程管理✅ 是
TCP3389你的IP或公司IPWindows RDP✅(仅Windows需要)
TCP800.0.0.0/0HTTP网站访问✅(Web服务器需要)
TCP4430.0.0.0/0HTTPS安全访问✅(Web服务器需要)
TCP3306你的IP或内网IPMySQL数据库❌(仅数据库服务器需要)
TCP6379你的IP或内网IPRedis❌(仅缓存服务器需要)
ICMP-你的IPPing测试❌(可选,用于调试)

2. 设置步骤(以莱卡云为例)

  1. 登录云控制台 → ECS实例 → 安全组

  2. 点击 配置规则 → 添加安全组规则

    • 规则方向:入方向(Ingress)或出方向(Egress)。

    • 授权策略:允许(Allow)或拒绝(Deny)。

    • 协议类型:TCP/UDP/ICMP 等。

    • 端口范围:如 22(SSH)、80(HTTP)、443(HTTPS)。

    • 授权对象

      • 特定IP:192.168.1.100/32(仅允许该IP访问)。

      • 全部开放:0.0.0.0/0(不推荐,除非必要)。

  3. 保存规则,并绑定到目标服务器。

3. 最佳实践

  • 最小权限原则:只开放必要的端口,如 22(SSH)仅限管理IP。

  • 禁止默认全开放:避免 0.0.0.0/0 开放高危端口(如 33066379)。

  • 多层级防护:结合 安全组 + 系统防火墙 双重保护。


二、系统防火墙设置(iptables / firewalld)

安全组是云平台层面的防护,而系统防火墙(如 iptables/firewalld)提供 操作系统级防护

1. 使用 iptables(Linux 传统防火墙)

# 查看当前规则
iptables -L -n# 允许SSH(22端口)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 允许HTTP(80)、HTTPS(443)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT# 允许Ping(ICMP)
iptables -A INPUT -p icmp -j ACCEPT# 默认拒绝所有其他入站流量
iptables -P INPUT DROP
iptables -P FORWARD DROP# 允许已建立的连接和回环接口
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT# 保存规则(CentOS 6/7)
service iptables save

2. 使用 firewalld(CentOS 7+/RHEL 8+)

# 启动并设置开机自启
systemctl start firewalld
systemctl enable firewalld# 开放端口
firewall-cmd --zone=public --add-port=22/tcp --permanent  # SSH
firewall-cmd --zone=public --add-port=80/tcp --permanent  # HTTP
firewall-cmd --zone=public --add-port=443/tcp --permanent # HTTPS# 允许Ping
firewall-cmd --add-icmp-block=echo-request --permanent# 重新加载防火墙
firewall-cmd --reload# 查看开放端口
firewall-cmd --list-ports

3. 使用 ufw(Ubuntu/Debian 推荐)

# 启用UFW
ufw enable# 开放SSH、HTTP、HTTPS
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp# 允许Ping
ufw allow icmp# 查看规则
ufw status

三、高级安全防护

1. 更改默认SSH端口(防止暴力破解)

# 修改SSH配置文件
vim /etc/ssh/sshd_config# 更改端口(如 2222)
Port 2222# 重启SSH服务
systemctl restart sshd# 防火墙开放新端口
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

2. 使用 Fail2Ban 防暴力破解

# 安装 Fail2Ban
apt install fail2ban  # Debian/Ubuntu
yum install fail2ban  # CentOS/RHEL# 配置SSH防护
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
vim /etc/fail2ban/jail.local# 修改如下配置
[sshd]
enabled = true
port = 22  # 或自定义SSH端口
maxretry = 3  # 尝试3次后封禁
bantime = 3600  # 封禁1小时# 重启Fail2Ban
systemctl restart fail2ban

3. 关闭不必要的服务

# 查看运行中的服务
systemctl list-units --type=service# 禁用不必要的服务(如telnet)
systemctl stop telnet.socket
systemctl disable telnet.socket

四、总结

防护层级工具/方法作用
云平台层安全组(Security Group)控制入站/出站流量
系统层iptables / firewalld / ufw操作系统级防火墙
应用层Fail2Ban / 更改SSH端口防暴力破解
运维管理定期审计日志发现异常访问

推荐方案:

  1. 安全组 仅开放必要端口(如 2280443)。

  2. 系统防火墙 进一步限制访问(如 iptables 或 firewalld)。

  3. Fail2Ban 防止SSH暴力破解。

  4. 定期检查日志/var/log/auth.log/var/log/secure)。

http://www.dtcms.com/a/285061.html

相关文章:

  • Java EE进阶3:SpringBoot 快速上手
  • 【Linux】Makefile(二)-书写规则
  • 【原创】【图像算法】高精密电子仪器组装异常检测
  • 力扣119:杨辉三角Ⅱ
  • Cursor出现This model provider doesn’t serve your region解决方案
  • 【调度算法】
  • javaScript中数组常用的函数方法
  • 洛谷 P1601 A+B Problem(高精)
  • 重构比特币在 Sui DeFi 中的角色
  • Redis中什么是看门狗机制
  • 解决leetcode第3614题用特殊操作处理字符串II
  • 魔术公式轮胎simulink模型建立及参数拟合
  • 实现atm提款简易代码
  • ​​孤儿进程:当父进程先离开时会发生什么?
  • LeetCode|Day17|242. 有效的字母异位词|Python刷题笔记
  • 云服务器的数据如何备份和恢复?
  • Leetcode刷题营第二十八题:二叉树的前序遍历
  • CSS关键字:initial、revert、unset傻傻分不清
  • 打造智慧园区新生态
  • Au速成班-乐理知识补充+网页下载音乐
  • 分层图最短路径算法详解
  • 大模型领域主流向量模型相似度算法、架构及指标对比
  • centos 新加磁盘分区动态扩容
  • 服务器数据恢复—raid5磁盘阵列崩溃如何恢复数据?
  • C 语言基础第 08 天:数组与冒泡排序
  • 测试学习之——Pytest Day3
  • Maven详细解
  • Helm-k8s包管理工具(一)核心概念、helm工作目录
  • 搞清MVCC
  • SpringMVC @ResponseBody注解详解