当前位置: 首页 > 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.lryc.cn/news/591059.html

相关文章:

  • Linux内核网络栈深度剖析:inet_connection_sock.c的服务器端套接字管理
  • 【算法训练营Day13】二叉树part3
  • 华为P30/pro (ELE-AL00) 鸿蒙4.2降级 EMUI 9
  • 服务器数据恢复—raid5磁盘阵列崩溃如何恢复数据?
  • 集群聊天服务器各个类进行详解
  • Cookie 与 Session概述
  • 【神经网络在MATLAB中是如何实现的?】
  • 构建可扩展的测试体系,从设计、优化到持续维护
  • 2D视觉系统标定流程与关键要求
  • VSCODE调教
  • 《前端基础核心知识笔记:HTML、CSS、JavaScript 及 BOM/DOM》
  • yolov8-pos/yolov11-pos 训练
  • 6、docker network
  • UE5 lumen
  • Linux搭建LAMP环境(CentOS 7 与 Ubuntu 双系统教程)
  • FastAdmin系统框架通用操作平滑迁移到新服务器的详细步骤-优雅草卓伊凡
  • lua(xlua)基础知识点记录二
  • STM32上移植Lua解析器
  • Android15系统实现刷机防呆功能
  • 【JVM】深入理解 JVM 类加载器
  • MySQL如何解决事务并发的幻读问题
  • JVM 内存分配与垃圾回收策略
  • macOS 字体管理全攻略:如何查看已安装字体及常见字体格式区
  • 网络编程7.17
  • JAVA中的Collection集合及ArrayList,LinkedLIst,HashSet,TreeSet和其它实现类的常用方法
  • MyBatis延迟加载(Lazy Loading)之“关联查询”深度解析与实践
  • 【44】MFC入门到精通——MFC 通过Button按钮添加控件变量实现:按下 按钮变色 (比如开关 打开关闭状态) MFC更改button控颜色
  • 数据结构-2(链表)
  • 基于STM32闭环步进电机控制系统设计说明
  • Leaflet地图交互:实现图形与点的同时高亮效果