服务器如何配置防火墙规则开放/关闭端口?

配置服务器防火墙规则(开放/关闭端口)是服务器安全管理的基础操作,不同操作系统和防火墙工具的配置方式有所不同。以下是主流系统的详细操作指南:


一、Linux系统(iptables/firewalld/UFW)

1. iptables(传统方式)
复制代码
# 查看当前规则
sudo iptables -L -n

# 开放端口(如80/TCP)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 关闭端口(如3306/TCP)
sudo iptables -A INPUT -p tcp --dport 3306 -j DROP

# 保存规则(CentOS/RHEL)
sudo service iptables save
# 或(Ubuntu/Debian)
sudo iptables-save > /etc/iptables.rules
2. firewalld(CentOS/RHEL 7+)
复制代码
# 开放端口
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

# 关闭端口
sudo firewall-cmd --zone=public --remove-port=3306/tcp --permanent
sudo firewall-cmd --reload

# 查看已开放端口
sudo firewall-cmd --list-ports
3. UFW(Ubuntu/Debian简化工具)
复制代码
# 启用UFW
sudo ufw enable

# 开放端口
sudo ufw allow 22/tcp    # SSH
sudo ufw allow 80/tcp    # HTTP

# 关闭端口
sudo ufw deny 3306/tcp   # MySQL

# 查看规则
sudo ufw status numbered

二、Windows系统

1. 通过防火墙图形界面
  1. 打开 控制面板 > Windows Defender 防火墙 > 高级设置

  2. 选择 入站规则 > 新建规则

  3. 选择 端口 > TCP/UDP,输入端口号(如80)

  4. 选择 允许/阻止连接,设置作用域(公用/私有/域)

  5. 命名规则并保存

2. 通过PowerShell命令

powershell

复制代码
# 开放端口(如80/TCP)
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow

# 关闭端口(如3389/TCP)
Remove-NetFirewallRule -DisplayName "Remote Desktop"

三、云服务器(安全组配置)

1. 莱卡云/腾讯云/AWS
  1. 登录云控制台,进入 安全组管理

  2. 添加规则:

    • 协议类型:TCP/UDP/ICMP

    • 端口范围:单个(80)或范围(8000-9000)

    • 授权对象:0.0.0.0/0(开放公网)或指定IP

  3. 绑定到目标服务器实例

2. 快速命令示例(AWS CLI)
复制代码
aws ec2 authorize-security-group-ingress \
  --group-id sg-xxxxxx \
  --protocol tcp \
  --port 22 \
  --cidr 203.0.113.0/24

四、关键注意事项

  1. 最小权限原则

    • 仅开放必要端口(如Web服务:80/443,SSH:22)。

    • 避免开放高危端口(如135-139、445、3389)。

  2. 端口伪装(安全增强)

    复制代码
    # 修改SSH默认端口(Linux)
    sudo sed -i 's/#Port 22/Port 2222/g' /etc/ssh/sshd_config
    sudo systemctl restart sshd
  3. 日志监控

    复制代码
    # 查看防火墙拦截记录(Linux)
    sudo grep DROP /var/log/syslog
  4. 多工具冲突

    • 避免同时启用iptablesfirewalld,可能导致规则混乱。

五、常用端口对照表

端口 服务 风险等级 建议操作
22 SSH 改端口+IP白名单
80 HTTP 开放
443 HTTPS 必须开放
3306 MySQL 限制内网访问
3389 RDP 极高 仅VPN访问

通过以上步骤,您可以灵活控制服务器端口的开放与关闭。建议首次配置后使用工具(如telnetnmap)测试端口状态:

复制代码
nmap -p 80,443 your-server-ip
相关推荐
fanged2 分钟前
Linux的DD命令
linux·运维·服务器
华清远见成都中心1 小时前
FreeRTOS事件组(Event Group)的工作机制分析
服务器·网络·网络协议
张洛闻Eren1 小时前
MySQL 管理复制拓扑【MySQL第四课】
linux·运维·数据库·mysql
Meya11271 小时前
RFID 机房资产管理系统:告别手工台账,实现资产全流程自动管控
大数据·服务器
西安景驰电子1 小时前
《PTP精确时间协议系列》第二篇:工程部署、调试与性能优化
运维·服务器·网络·数据库·windows·性能优化
xiaohua10092 小时前
Linux-JVM线程查询
linux·jvm
Aision_2 小时前
代码安全学习手记(二):SCA 软件成分分析原理与 OWASP Dependency-Check 集成实战
运维·人工智能·学习·安全·web安全·网络安全
虹科网络安全2 小时前
从33.2%降至4.2%:KnowBe4 2026报告揭示持续培训如何重塑企业安全防线
安全
blueSatchel2 小时前
u-boot启动过程(bootROM到SPL到u-boot)
linux·u-boot
是隼人3 小时前
buuctf-pwn bjdctf_2020_babystack2题解 整数溢出(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门