首页app攻略linux防火墙增加端口 linux防火墙配置基本步骤

linux防火墙增加端口 linux防火墙配置基本步骤

圆圆2025-08-16 21:01:46次浏览条评论

linux防火墙配置的核心在于设定规则,主要使用iptables和firewalld两个工具。1. iptables直接操作内核netfilter框架,规则链式排列,功能强大但复杂;firewalld则提供更高层的动态管理接口,通过区域(zones)简化配置。2. 配置iptables时需按顺序添加规则,确保ssh等关键服务开放,否则可能导致自身被锁;规则保存依赖netfilter-persistent或iptables-services等机制。3. firewalld通过--permanent参数实现规则持久化,并通过--reload应用更改,管理更便捷。4. 选择工具时,firewalld适合现代系统,iptables适合需底层控制的场景。5. 防火墙最佳实践包括默认拒绝、最小权限、日志记录、连接速率限制、ipv6考虑及定期审查,确保安全性和灵活性。

Linux防火墙配置实战_Linux iptables与firewalld设置教程

配置Linux防火墙,本质上就是在为你的服务器网络进出数据设定一套规则。这事儿听起来好像有点复杂,但说白了,就是决定哪些数据包能进来、哪些能出去,以及哪些应该被直接丢弃。我们通常会用到两个核心工具:底层的

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制和更高层抽象的
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制。理解它们的工作方式,并能灵活运用,是确保服务器安全的第一步,也是最重要的一步。毕竟,网络世界里,裸奔可不是什么好主意。

Linux防火墙配置实战_Linux iptables与firewalld设置教程解决方案

Linux防火墙的配置,无论是基于传统的

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制还是现代的
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制,其核心都是围绕“规则”展开。
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制直接操作内核的Netfilter框架,规则是链式的,非常底层且强大。
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制则在其之上提供了一个更友好的动态管理接口,通过区域(zones)的概念来简化配置。

使用

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制 配置防火墙

Linux防火墙配置实战_Linux iptables与firewalld设置教程

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制 的规则是按顺序处理的,一旦数据包匹配到一条规则,通常就会执行相应的动作(ACCEPT、DROP、REJECT等)。它有INPUT、OUTPUT、FORWARD等链,分别对应流入、流出和转发的数据包。

查看当前规则:
sudo iptables -L -n -v
登录后复制允许SSH(22端口)连接:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
登录后复制允许HTTP/HTTPS(80/443端口)连接:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
登录后复制
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
登录后复制允许已建立的连接及相关连接通过:
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
登录后复制拒绝所有其他传入连接(默认策略):
sudo iptables -P INPUT DROP
登录后复制这步操作前务必确保允许了SSH,否则你可能会把自己锁在外面!保存规则(不同系统有不同方法,例如使用
netfilter-persistent
登录后复制登录后复制):
sudo apt-get install netfilter-persistent
登录后复制 (Debian/Ubuntu)
sudo systemctl enable netfilter-persistent
登录后复制登录后复制
sudo netfilter-persistent save
登录后复制登录后复制或者对于CentOS/RHEL 7+,安装
iptables-services
登录后复制登录后复制并启用:
sudo yum install iptables-services
登录后复制登录后复制
sudo systemctl enable iptables
登录后复制登录后复制
sudo systemctl start iptables
登录后复制登录后复制
sudo iptables-save > /etc/sysconfig/iptables
登录后复制登录后复制

使用

firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制 配置防火墙

Linux防火墙配置实战_Linux iptables与firewalld设置教程

firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制 是Red Hat系发行版(如CentOS 7+、Fedora)的默认防火墙管理工具。它引入了“区域”(zones)的概念,你可以根据网络接口或源IP将连接分配到不同的区域,每个区域有自己的规则集。

启动和启用
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制:
sudo systemctl start firewalld
登录后复制
sudo systemctl enable firewalld
登录后复制查看当前状态和默认区域:
sudo firewall-cmd --state
登录后复制
sudo firewall-cmd --get-default-zone
登录后复制查看特定区域(例如public)的规则:
sudo firewall-cmd --zone=public --list-all
登录后复制允许SSH服务(永久生效):
sudo firewall-cmd --zone=public --add-service=ssh --permanent
登录后复制允许HTTP服务(永久生效):
sudo firewall-cmd --zone=public --add-service=http --permanent
登录后复制登录后复制允许HTTPS服务(永久生效):
sudo firewall-cmd --zone=public --add-service=https --permanent
登录后复制允许特定端口(例如8080/tcp):
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
登录后复制重新加载
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制 使永久规则生效:
sudo firewall-cmd --reload
登录后复制登录后复制登录后复制移除服务或端口:
sudo firewall-cmd --zone=public --remove-service=ssh --permanent
登录后复制
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
登录后复制
sudo firewall-cmd --reload
登录后复制登录后复制登录后复制iptables和firewalld:我应该选择哪一个?

这确实是个老生常谈的问题,但它背后的考量至今仍有价值。说实话,我个人觉得,对于大多数现代Linux发行版,尤其是基于RHEL/CentOS的系统,

firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制是更推荐的选择。它提供了一种更抽象、更动态的管理方式,这在云环境和容器化日益普及的今天显得尤为重要。

firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制的“区域”概念是个亮点。你可以根据网络接口(比如eth0连接公网,eth1连接内网)或者源IP地址,把它们划分到不同的安全区域,比如
public
登录后复制(公共)、
internal
登录后复制(内部)、
trusted
登录后复制(信任)等等。每个区域有自己独立的规则集。这样一来,管理起来就清晰多了,你不需要像
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制那样,面对一长串扁平化的规则列表。而且,
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制支持运行时动态修改规则,而不会中断现有连接,这是
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制在不借助额外脚本或工具时很难做到的。

但话说回来,

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制依然是Linux防火墙的基石。
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制本身就是基于
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制(以及
nftables
登录后复制)实现的。如果你需要非常精细、底层的控制,或者在一些资源受限、追求极致性能的环境(比如嵌入式设备),
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制的直接操作能力是无可替代的。它的语法虽然复杂,但一旦掌握,你几乎可以实现任何你想要的过滤逻辑,包括复杂的包状态跟踪、NAT转换等等。

我的建议是:如果你是新手,或者主要使用RHEL/CentOS/Fedora这类系统,直接上手

firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制会让你更舒服。它的命令行工具
firewall-cmd
登录后复制登录后复制设计得也比较人性化。但如果你想深入理解Linux网络栈,或者在一些特殊场景下需要极致的灵活性,那么投入时间学习
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制绝对是值得的,毕竟那才是真正的“硬核”操作。很多时候,出了问题,你可能还得回过头来用
iptables -L
登录后复制看看底层到底发生了什么。

如何确保防火墙配置在系统重启后依然生效?

这是一个非常关键的问题,我记得有一次,就是因为忘记了这一步,重启服务器后所有服务都对外暴露了,那真是惊出一身冷汗。无论是

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制还是
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制,都需要特定的机制来确保规则的持久化。

对于

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制,你直接在命令行输入的规则,默认只在当前运行时生效。系统一重启,这些规则就烟消云散了。为了让它们“活下来”,你需要把它们保存到一个文件里,并在系统启动时重新加载。

基于Debian/Ubuntu的系统,通常会使用
netfilter-persistent
登录后复制登录后复制这个服务。你安装它之后,它会自动接管
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制规则的保存和加载。
sudo apt install netfilter-persistent
登录后复制
sudo systemctl enable netfilter-persistent
登录后复制登录后复制当你配置好新的
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制规则后,执行
sudo netfilter-persistent save
登录后复制登录后复制,它就会把当前内存中的规则写入到
/etc/iptables/rules.v4
登录后复制和
/etc/iptables/rules.v6
登录后复制文件中。系统启动时,这个服务会自动读取这些文件并加载规则。基于Red Hat/CentOS的系统,过去常用
iptables-services
登录后复制登录后复制包。
sudo yum install iptables-services
登录后复制登录后复制
sudo systemctl enable iptables
登录后复制登录后复制
sudo systemctl start iptables
登录后复制登录后复制配置完规则后,使用
sudo iptables-save > /etc/sysconfig/iptables
登录后复制登录后复制来保存IPv4规则(IPv6则是
ip6tables-save > /etc/sysconfig/ip6tables
登录后复制)。系统启动时,
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制服务会自动加载这些文件。

对于

firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制,情况就简单多了,它天生就是为持久化设计的。当你使用
firewall-cmd
登录后复制登录后复制命令时,默认的操作是针对“运行时”(runtime)的规则,这些规则在
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制服务重启或系统重启后会丢失。要让规则永久生效,你只需要在命令后面加上
--permanent
登录后复制登录后复制参数。

例如:

sudo firewall-cmd --zone=public --add-service=http --permanent
登录后复制登录后复制

这条命令会将HTTP服务的允许规则写入

firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制的永久配置中(通常在
/etc/firewalld/zones/public.xml
登录后复制等文件里)。但请注意,
--permanent
登录后复制登录后复制参数只是把规则写进了文件,并没有立即应用到当前的运行状态。要让这些永久规则立即生效,你需要执行:
sudo firewall-cmd --reload
登录后复制登录后复制登录后复制这个命令会重新加载
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制的配置,将永久规则应用到运行时,并且不会中断现有连接,这非常方便。所以,
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制的持久化管理比
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制要省心不少。

防火墙配置的最佳实践与安全考量

配置防火墙,可不仅仅是开放几个端口那么简单,它更像是一门艺术,需要深思熟虑。这块儿说起来简单,做起来嘛,往往因为疏忽或缺乏整体安全观而留下隐患。

1. 默认拒绝(Default Deny)原则:这是防火墙配置的黄金法则。意思是:除非你明确允许,否则一切流量都应该被拒绝。

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制中可以通过设置链的默认策略为
DROP
登录后复制来实现(
iptables -P INPUT DROP
登录后复制)。
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制的区域也默认是拒绝未明确允许的服务的。采用这个原则,即使你不小心漏掉了一些规则,系统也依然是相对安全的,而不是默认开放。

2. 最小权限原则:不要为了方便而开放过多的端口或服务。比如,如果你的SSH服务只应该从你办公室的IP地址访问,那就明确指定源IP:

sudo iptables -A INPUT -s 203.0.113.42 -p tcp --dport 22 -j ACCEPT
登录后复制
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="203.0.113.42" port port="22" protocol="tcp" accept' --permanent
登录后复制只允许必要的服务从必要的源访问,大大缩小了攻击面。

3. 启用日志记录:防火墙不仅是防御工具,也是审计工具。记录被拒绝的连接,可以帮助你发现潜在的攻击尝试,或者排查规则配置错误。

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制可以通过
LOG
登录后复制目标来实现:
sudo iptables -A INPUT -j LOG --log-prefix "IPTABLES_DROP: " --log-level 7
登录后复制
sudo iptables -A INPUT -j DROP
登录后复制这样,所有被这条规则拒绝的流量都会记录到系统日志中(通常是
/var/log/messages
登录后复制或
syslog
登录后复制)。定期检查这些日志,你会发现很多有趣的东西。

4. 限制连接速率(Rate Limiting):对于像SSH这样的服务,暴力破解是常见的攻击手段。你可以限制在一定时间内来自同一IP的连接尝试次数。

sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
登录后复制
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
登录后复制这条
iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制规则的意思是:如果一个IP在60秒内尝试连接SSH超过4次,就把它丢弃。这能有效缓解暴力破解攻击。

5. 考虑IPv6:别忘了IPv6!很多系统现在都是双栈的,如果你的防火墙只配置了IPv4规则,那么IPv6的流量可能就畅通无阻了。

iptables
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制对应的IPv6工具是
ip6tables
登录后复制,而
firewalld
登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制登录后复制则会同时管理IPv4和IPv6的规则。

6. 定期审查和更新:服务器环境和服务会不断变化,防火墙规则也应该随之更新。新增的服务需要开放端口,不再使用的服务应该关闭端口。定期审查你的防火墙规则,确保它们仍然符合你的安全策略,并且没有多余的、不必要的开放。

防火墙配置不是一劳永逸的事情,它是一个持续的过程。保持警惕,并不断学习新的安全实践,才能真正保护好你的系统。

以上就是Linux防火墙配置实战_Linux iptables与firewalld设置教程的详细内容,更多请关注乐哥常识网其它相关文章!

Linux防火墙配置
Clipfly怎样制作慢动作视频?时间重映射技巧
相关内容
发表评论

游客 回复需填写必要信息