首页教摄影linux防火墙允许ip段访问 linux防火墙怎么关闭

linux防火墙允许ip段访问 linux防火墙怎么关闭

圆圆2025-09-06 12:00:33次浏览条评论
答案:iptables是Linux防火墙核心工具,通过规则链控制数据包流动。首先清空旧规则,设置默认策略为拒绝入站、允许出站。接着允许本地回环和已建立连接,开放SSH、HTTP、HTTPS等必要端口,可屏蔽特定IP。规则需用netfilter-persistent或iptables-save保存以实现重启生效。相比firewalld等封装工具,iptables直接操作内核netfilter,提供更细粒度控制,支持连接限速、日志记录、SYN Flood防御、NAT转发等高级安全功能,是构建系统安全基石。

如何在linux下设置防火墙规则?使用iptables保护系统安全的完整指南

在Linux系统上设置防火墙规则,核心就是利用

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制这个强大的工具集。它允许我们精细地控制进出服务器的每一个数据包,通过定义一套规则链,决定哪些流量可以通过,哪些必须被拦截,从而为系统构建一道坚固的数字屏障。这东西用好了,能把你的服务器保护得滴水不漏,但用不好,也可能把自己锁在门外,所以理解它的工作原理和最佳实践至关重要。

解决方案

说实话,第一次接触

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制,你可能会觉得它有点像在玩乐高,只不过这些乐高积木是各种复杂的规则和参数。但一旦你掌握了它的基本逻辑,你会发现它提供的控制力是其他高级防火墙工具难以比拟的。我们来一步步构建一个基础且安全的防火墙配置。

首先,为了避免旧规则的干扰,我们通常会先清空所有现有的

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制规则。这就像是把画板擦干净,准备重新创作。

sudo iptables -F # 清空所有规则链中的规则sudo iptables -X # 删除所有用户自定义的链sudo iptables -Z # 将所有链的计数器归零
登录后复制

接下来,我们得设定默认策略。这就像是给你的房子安上默认的门锁:对于所有未明确允许的连接,我们选择拒绝。这是一个“白名单”策略,安全性最高。

sudo iptables -P INPUT DROP    # 默认拒绝所有进入的连接sudo iptables -P FORWARD DROP   # 默认拒绝所有转发的连接 (如果服务器不作路由器,这个很重要)sudo iptables -P OUTPUT ACCEPT  # 默认允许所有发出的连接 (方便我们自己操作,可以根据需求收紧)
登录后复制

然后,我们需要允许一些基础且必要的流量通过。首先是本地回环接口,这玩意儿是系统内部通信的基础,不能断。

sudo iptables -A INPUT -i lo -j ACCEPT
登录后复制

再来就是允许已经建立的连接和相关连接。这非常关键,它确保了你发出的请求能收到回复,比如你访问一个网站,网站的响应数据包能顺利回来。

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
登录后复制

现在,我们可以开始开放一些必要的服务端口了。比如,如果你需要通过SSH远程管理服务器,那就得把22端口打开。

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
登录后复制

如果你的服务器提供Web服务,比如HTTP(80端口)和HTTPS(443端口),也得把它们放行。

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
登录后复制

有时候,你可能想阻止某个特定的IP地址访问你的服务器,这也很简单。

sudo iptables -A INPUT -s 192.168.1.100 -j DROP # 阻止来自192.168.1.100的所有连接
登录后复制

所有这些规则都配置好后,最重要的一步就是保存它们,否则系统一重启,你的辛辛苦苦设定的规则就全没了。在Debian/Ubuntu系中,我们通常使用

iptables-persistent
登录后复制登录后复制登录后复制或
netfilter-persistent
登录后复制登录后复制登录后复制登录后复制登录后复制。

# 安装 iptables-persistent (如果尚未安装)sudo apt install iptables-persistent# 保存当前规则sudo netfilter-persistent save
登录后复制

对于RHEL/CentOS系,虽然也有类似的机制,但

netfilter-persistent
登录后复制登录后复制登录后复制登录后复制登录后复制通常是更现代和推荐的做法。

# 安装 netfilter-persistent (如果尚未安装)sudo yum install netfilter-persistent # 或者 dnf install netfilter-persistent# 保存当前规则sudo netfilter-persistent save
登录后复制

保存后,下次系统启动时,这些规则就会自动加载。

为什么在Linux下,iptables仍然是不可或缺的防火墙工具?

你可能会想,现在都有

firewalld
登录后复制登录后复制登录后复制和
ufw
登录后复制登录后复制登录后复制这些更“人性化”的防火墙管理工具了,为什么还要折腾
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制这种看起来有些原始的命令行工具呢?说实话,我个人觉得,
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制之所以不可或缺,恰恰在于它的“原始”和直接。它不是一个抽象层,而是直接与Linux内核的
netfilter
登录后复制登录后复制框架交互,这意味着它提供了无与伦比的粒度控制和灵活性。

firewalld
登录后复制登录后复制登录后复制和
ufw
登录后复制登录后复制登录后复制固然方便,它们本质上都是
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制或
nftables
登录后复制(
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制的下一代,但
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制仍然广泛使用)的封装。它们把复杂的
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制命令包装成更易读的区域(zones)、服务(services)和应用配置文件,这对于日常管理来说确实大大降低了门槛。但当你需要处理一些非常规的、复杂的网络场景时,比如精细的NAT转发、特定的数据包修改(mangle)、或者深入到数据包的每个字节进行匹配时,
firewalld
登录后复制登录后复制登录后复制或
ufw
登录后复制登录后复制登录后复制的抽象层反而可能成为限制。

腾讯交互翻译 腾讯交互翻译

腾讯AI Lab发布的一款AI辅助翻译产品

腾讯交互翻译62 查看详情 腾讯交互翻译

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制的强大在于它直接暴露了
netfilter
登录后复制登录后复制的四个表(filter, nat, mangle, raw)和五个链(PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING)的全部能力。这使得高级用户可以编写出任何他们能想象到的规则,从简单的端口开放到复杂的负载均衡、流量整形,甚至是最底层的包头篡改。它就像一把瑞士军刀,虽然用起来需要一点技巧,但功能全面,能应对各种复杂情况。理解
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制,就像是理解了防火墙的“母语”,这对于任何想要深入掌握Linux网络安全的工程师来说,都是一块绕不开的基石。

如何确保iptables规则在系统重启后依然有效?持久化配置的几种策略

这是一个非常实际的问题,毕竟谁也不想每次服务器重启后都得手动敲一遍防火墙规则。我遇到过不少新手就是因为没做持久化,结果重启后系统门户大开,或者把自己锁在了外面。幸运的是,Linux社区提供了几种成熟的策略来解决这个问题。

最现代和推荐的方法,尤其是在主流的Debian/Ubuntu和RHEL/CentOS发行版上,是使用专门的持久化服务:

iptables-persistent
登录后复制登录后复制登录后复制 (Debian/Ubuntu):这个包会安装一个服务,在系统启动时自动加载保存的
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制规则,并在关机时保存当前规则。安装过程非常简单:

sudo apt install iptables-persistent
登录后复制

安装过程中会提示你是否保存当前的IPv4和IPv6规则。选择“是”即可。如果你之后修改了规则,需要手动保存:

sudo netfilter-persistent save
登录后复制登录后复制

这个命令会将当前内存中的

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制规则写入到
/etc/iptables/rules.v4
登录后复制和
/etc/iptables/rules.v6
登录后复制这两个文件中。系统启动时,
netfilter-persistent
登录后复制登录后复制登录后复制登录后复制登录后复制服务就会读取这些文件并应用规则。

netfilter-persistent
登录后复制登录后复制登录后复制登录后复制登录后复制 (RHEL/CentOS及其他使用systemd的发行版):虽然名字相似,但其工作原理和文件位置可能略有不同。在RHEL/CentOS上,你可以这样安装和使用:

# RHEL/CentOS 7/8sudo yum install netfilter-persistent # 或者 dnf install netfilter-persistentsudo systemctl enable netfilter-persistent.servicesudo systemctl start netfilter-persistent.service
登录后复制

保存规则的命令也是:

sudo netfilter-persistent save
登录后复制登录后复制

规则通常保存在

/etc/sysconfig/iptables
登录后复制和
/etc/sysconfig/ip6tables
登录后复制。

使用

iptables-save
登录后复制和
iptables-restore
登录后复制脚本(传统方法):这是一种更通用的方法,不依赖于特定的持久化服务包。你可以手动将当前规则导出到一个文件,并在系统启动时通过自定义脚本导入。保存规则:

sudo iptables-save > /etc/iptables/rules.v4sudo ip6tables-save > /etc/iptables/rules.v6
登录后复制

然后,你需要创建一个

systemd
登录后复制服务单元或者在
/etc/rc.local
登录后复制(如果存在且被启用)中添加命令,在系统启动时执行:

sudo iptables-restore < /etc/iptables/rules.v4sudo ip6tables-restore < /etc/iptables/rules.v6
登录后复制

虽然这种方法更“手工”,但它提供了最大的灵活性,尤其是在一些非主流或定制化的Linux环境中。不过,我个人更倾向于使用

iptables-persistent
登录后复制登录后复制登录后复制或
netfilter-persistent
登录后复制登录后复制登录后复制登录后复制登录后复制,因为它们是官方推荐且经过良好测试的解决方案,减少了出错的可能。

除了基本端口开放,iptables还能如何增强系统安全性?

仅仅开放几个端口,虽然能让服务跑起来,但离真正的“安全”还有一段距离。

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制的强大之处在于它能做的远不止这些。在我看来,它更像是一个多功能的安保系统,除了开门关门,还能监控、限制、甚至迷惑潜在的入侵者。

限制连接速率,防御DDoS/暴力破解:这是非常实用的功能。比如,我们可以限制某个IP地址在短时间内尝试SSH连接的次数,有效防御SSH暴力破解。

# 允许每个IP每分钟最多进行3次新的SSH连接尝试sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH_ATTACKsudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name SSH_ATTACK -j DROP
登录后复制

这套组合拳能有效地筛选掉那些恶意扫描和暴力破解行为。

状态检测(Stateful Packet Inspection)的精细化运用:我们之前用了

ESTABLISHED,RELATED
登录后复制来允许已建立的连接。但你还可以更进一步,比如只允许内部网络发起的连接,而不允许外部网络主动发起某些特定类型的连接。这对于构建DMZ(非军事区)或内部服务特别有用。

日志记录可疑流量:当

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制拒绝一个数据包时,它可以同时将其记录到系统日志中。这对于监控潜在的攻击行为和事后分析非常重要。

# 记录所有被丢弃的输入包,并加上前缀“IPTABLES_DROP:”sudo iptables -A INPUT -j LOG --log-prefix "IPTABLES_DROP:" --log-level infosudo iptables -A INPUT -j DROP
登录后复制

这样,你就可以通过查看

/var/log/syslog
登录后复制或
journalctl
登录后复制来发现异常。

阻止特定IP范围或国家:如果你知道某些攻击源通常来自特定的IP段,或者你压根不需要与某个国家或地区的IP进行通信,可以直接将其整个IP段屏蔽掉。这通常需要一个IP地址列表,然后通过脚本动态生成

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制规则。虽然操作起来有点复杂,但对于提升特定场景下的安全性非常有效。

SYN Flood攻击防御(基础层面):SYN Flood是一种常见的DDoS攻击,通过发送大量SYN请求但不完成三次握手来耗尽服务器资源。

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制可以提供一些基础的防御措施,比如限制SYN请求的速率。

# 限制每秒钟最多接受25个新的SYN连接请求sudo iptables -A INPUT -p tcp --syn -m limit --limit 25/sec --limit-burst 100 -j ACCEPTsudo iptables -A INPUT -p tcp --syn -j DROP
登录后复制

这只是一个简单的例子,更高级的防御通常需要专门的硬件或软件解决方案。

端口转发和NAT(网络地址转换):虽然这更多是路由器的功能,但

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制的
nat
登录后复制表可以实现非常灵活的端口转发(DNAT)和源地址转换(SNAT)。比如,你可以将外部请求的80端口转发到内部服务器的8080端口,或者让内网的多台服务器通过同一个公网IP访问外部网络。

通过这些高级功能,

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制不仅仅是一个简单的门卫,它更像是一个智能安保系统,能够根据你的指令,对各种网络行为进行精细化的识别、判断和处置,从而为你的Linux系统提供一个更加健壮和安全的运行环境。

以上就是如何在Linux下设置防火墙规则?使用iptables保护系统安全的完整指南的详细内容,更多请关注乐哥常识网其它相关文章!

相关标签: linux系统 linux centos 防火墙 路由器 ubuntu 工具 网络安全 路由 dnf 防火墙配置 为什么 封装 Filter 接口 var input http https 网络安全 linux ubuntu centos ssh debian ddos 负载均衡
如何在Linux下设
平方米怎么表示 平方米怎么打出来的
相关内容
发表评论

游客 回复需填写必要信息