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

Linux防火墙的iptables命令示例与详细解释

‌iptables:Linux下的强大防火墙工具‌

iptables是Linux下一个非常强大的防火墙工具,它主要用于控制防火墙,禁止或允许某个IP访问,也可以用于请求转发等多种场景。通过精心配置iptables规则,系统管理员可以灵活地管理网络流量,确保系统的安全。

‌一、Linux防火墙体系概述‌

Linux防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制。它属于典型的包过滤防火墙(也称网络层防火墙),通过检查数据包的头信息来决定是否允许该数据包通过。这种防火墙技术的优点是效率较高,对系统资源的占用较少。

‌二、iptables的基本功能‌

iptables提供了丰富的功能,包括但不限于:

‌查看信息‌:可以查看当前的IP规则表,以及带编号的规则表,方便管理员进行规则的添加、删除等操作。
‌禁止访问‌:可以禁止某个IP或IP网段访问系统,也可以禁止某个IP访问某个特定端口,或者禁止某个端口的访问。此外,还可以禁止其他主机ping此服务器。
‌允许访问‌:与禁止访问相反,iptables也可以允许某个IP或IP网段的访问,或者仅允许来自特定网段的用户连接某个服务(如ssh)。
‌限制连接‌:iptables可以限制最大的连接数,防止CC攻击等网络威胁。同时,也可以限制单个IP的并发访问。
‌流量均衡‌:通过iptables的规则配置,可以将访问流量分流至内网的多台主机,实现流量的负载均衡。
‌三、iptables的示例与详细解释‌

‌查看信息‌

查看当前的IP规则表:iptables -L -n
查看带编号的IP规则表:iptables -L -n --line-numbers
‌禁止访问‌

禁止某个IP访问:iptables -I INPUT -s 192.168.0.232 -j DROP
禁止某个IP网段访问:iptables -I INPUT -s 192.168.0.0/24 -j DROP(注意:原示例中的/240子网掩码可能是一个笔误,这里更正为/24)
禁止某个IP访问某个端口(如8501):iptables -I INPUT -s 192.168.0.232 -p tcp --dport 8501 -j DROP
禁止某个端口访问(如8501):iptables -I INPUT -p tcp --dport 8501 -j DROP
禁止其他主机ping此服务器:需要同时添加两条规则,分别针对ICMP请求的输入和输出。
‌允许访问‌

允许某个IP访问:iptables -I INPUT -s 192.168.0.232 -j ACCEPT
仅允许来自特定网段的用户连接ssh服务:iptables -I INPUT -s 172.27.8.0/22 -p tcp --dport 22 -j ACCEPT,并拒绝其他所有ssh连接请求:iptables -A INPUT -p tcp --dport 22 -j REJECT
‌限制连接‌

当访问80端口的连接数达到100后,开始限制为最多允许每分钟25个链接:iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
限制单个ip的并发访问(如限制并发访问85端口的数量不超过10个):iptables -I INPUT -p tcp --dport 85 -s 192.168.1.8 -m connlimit --connlimit-above 10 -j REJECT
‌流量均衡‌

将访问流量分流至内网三台不同主机:通过配置PREROUTING链的DNAT规则实现。例如,将访问80端口的流量按三分之一的比例分流到172.27.8.10、172.27.8.20和172.27.8.30。这里需要注意的是,原示例中的规则配置可能存在一些问题(如使用了相同的计数器参数),实际配置时需要根据具体情况进行调整。
‌保存配置‌

将iptables配置写入文件:sudo iptables-save > /etc/iptables.rules
在网卡启动和关闭时自动加载和保存配置:编辑/etc/network/interfaces文件,添加相应的pre-up和post-down脚本。但需要注意的是,不同的Linux发行版可能使用不同的网络配置文件和脚本机制(如systemd下的network-scripts或NetworkManager配置)。
‌四、iptables的语法与选项‌

iptables的语法结构相对复杂,但掌握其基本语法和常用选项对于高效配置防火墙至关重要。iptables的语法格式如下:

iptables [-t table] COMMAND [chain] CRITERIA -j ACTION

其中:

-t table:指定要操作的表(filter、nat、mangle、raw)。
COMMAND:指定要执行的操作(如-A添加规则、-D删除规则等)。
chain:指定要操作的链(如INPUT、OUTPUT、FORWARD等)。
CRITERIA:指定匹配条件(如协议、源地址、目的地址、端口等)。
-j ACTION:指定要执行的动作(如ACCEPT接受、DROP丢弃、REJECT拒绝等)。
iptables提供了丰富的选项和匹配条件,使得管理员可以根据实际需求灵活配置防火墙规则。例如:

-p:指定协议(tcp/udp/icmp等)。
-s:指定源地址。
-d:指定目的地址。
–sport:指定源端口。
–dport:指定目的端口。
-i:指定入口网卡。
-o:指定出口网卡。
–to-source:指定SNAT转换后的地址(用于NAT表)。
-m:使用扩展模块进行数据包匹配(如multiport、tcp、state等)。
此外,iptables还支持多种隐含匹配和显式匹配条件,如TCP标记匹配、ICMP类型匹配、多端口匹配、IP范围匹配、MAC地址匹配和状态匹配等。这些匹配条件可以单独使用或组合使用,以满足复杂的网络流量控制需求。

‌五、iptables的链与规则顺序‌

iptables中有五个内置的链:PREROUTING、INPUT、FORWARD、OUTPUT和POSTROUTING。这些链按照特定的顺序处理数据包:

入站数据包首先经过PREROUTING链,然后根据目的地址决定是进入INPUT链还是FORWARD链。
出站数据包首先经过OUTPUT链

相关文章:

  • deepseek v3-0324实现数学方程式绘制曲线功能
  • Redis-14.在Java中操作Redis-Spring Data Redis使用方式-操作列表类型的数据
  • 西门子TCP通讯过程中硬件连接突然断开
  • 轻帆云智能ITSM应用最佳实践,助力IT共享服务中心高效运营
  • Redis:集群
  • 广告推荐算法:COSMO算法与A9算法的对比
  • 如何让AI帮你做用户运营:用户消费偏好分层和洞察
  • Java之JDBC数据库连接技术
  • git 操作记录
  • 多账号安全登录与浏览器指纹管理的实现方案
  • 基于AvgPool与自编码器的语音识别
  • 去中心化自治组织(DAO):革新未来治理的下一站
  • 2021-07-05 C,C++定义结构体变量按年龄进行升序排序
  • Adam优化器
  • talant---决策分析软件产品介绍
  • 10. 七大排序(含四种版本快排及优化) ******
  • Docker学习--本地镜像管理相关命令--docker tag 命令
  • Linux 清理缓存详解
  • Android 小组件
  • DeepSeek-R1 模型现已在亚马逊云科技上提供
  • 共绘“彩色上海”,IP SH艺术共创沙龙首期圆满举办
  • 史学巨擘的思想地图与学术路径——王汎森解析梁启超、陈寅恪、傅斯年
  • 美的集团一季度净利增长38%,库卡中国机器人接单增超35%
  • 年轻人的事业!6家上海人工智能企业畅想“模范生”新征程
  • 新华每日电讯:从上海街区经济看账面、市面、人面、基本面
  • 赛力斯拟赴港上市:去年扭亏为盈净利59亿元,三年内实现百万销量目标