欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Linux学习笔记:iptables命令管理

Linux学习笔记:iptables命令管理

2024/10/25 2:21:25 来源:https://blog.csdn.net/m0_63605354/article/details/140921290  浏览:    关键词:Linux学习笔记:iptables命令管理

1、iptables简介

其实iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables。真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。

语法格式:iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION

  • -t:指定需要维护的防火墙规则表 filter、nat、mangle或raw。在不使用 -t 时则默认使用 filter 表。
  • COMMAND:子命令,定义对规则的管理。
  • chain:指明链表。
  • CRETIRIA:匹配参数。
  • ACTION:触发动作。

“四表五链”:
1. filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包 内核模块:iptables_filter
2. Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
3. Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle
4. Raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw

规则表之间的优先顺序:raw > mangle > nat > filter

参考来自:Linux iptables命令详解-CSDN博客

iptables全面详解(图文并茂含命令指南)_iptables命令详解-CSDN博客


2、NAT表

IPtables中可以灵活的做各种网络地址转换(NAT),网络地址转换主要有两种:SNAT和DNAT。

在路由模式下,包从路由器的lan侧出去的时候,会经过nat表的POSTROUTING链,去做SNAT,然后才能发送至外网。MASQUERADE的作用是,从服务器的网卡上,自动获取当前ip地址来做NAT。

参考来自:Linux防火墙配置工具iptables中MASQUERADE的含义_iptables masquerade-CSDN博客(总结版)

iptable端口重定向 MASQUERADE[通俗易懂]-腾讯云开发者社区-腾讯云 (tencent.com)(详细版)


3、Filter表

动作区别:iptables drop与reject 的区别-CSDN博客,里面还提及了用tcpdump抓包、time nmap查看端口耗时。

nc可以监听端口,还可以像telnet一样查看某IP的端口是否可用。

iptables 之 REJECT 与 DROP 对比_iptables drop reject-CSDN博客


4、具体操作

首先安装:yum install iptables-services

注意:iptables-services 和 iptables 是不一样的,iptables 一般自带会有,但是安装了 services 才有/etc/sysconfig/iptables。

1、查看所有规则,以排序方式列出,可以看见行号

 [root@centos7 ~]# iptables -L --line-number

2、替换某条规则,需要用到这个行号

3、删除规则,需要用到这个行号

[root@centos7 ~]# iptables -D INPUT 1 -s 10.7.0.0/16 -p icmp -j REJECT

[root@centos7 ~]# iptables -D INPUT 1

有时需要删除的规则较长,删除时需要写一大串的代码,这样比较容易写错,这时可以先使用 -line-number 找出该条规则的行号,再通过行号删除规则。

这里尝试了一下好像-s是删不掉的,还是直接使用行号删除吧。

4、添加规则

使用 -A 选项添加防火墙规则会将该规则追加到整个链的最后,而使用 -I 选项添加的防火墙规则则会默认插入到链中作为第一条规则。

允许源IP地址为192.168.0.0/24网段的包流进(这里没有加-p,就包括了所有的协议。这里也可以指定单个IP)

[root@centos7 ~]# iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
5、调整规则顺序

可以在添加规则时,指定新增规则的编号,这样我们就能在任意位置插入规则了,只需要把刚才的命令稍作修改即可,这里举例子示范了一下:

仍然使用-I选项进行插入规则操作,-I INPUT 2表示在INPUT链中新增规则,新增的规则的编号为2。


5、使规则永久生效

当你删除、添加规则后,这些更改并不能永久生效,这些规则很有可能在系统重启后恢复原样。为了让配置永久生效,根据平台的不同,具体操作也不同。下面进行简单介绍:

1、保存现有的规则

保存在默认文件夹中(保存防火墙规则):# iptables-save > /etc/sysconfig/iptables

【CentOS 7 系统中防火墙规则默认保存在 /etc/sysconfig/iptables 文件中】

保存在其他位置(备份防火墙规则):# iptables-save > 文件名称

2、保存iptables规则

iptables-save 

service iptables save

注意:可以修改/etc/sysconfig/iptables-config 将里面的IPTABLES_SAVE_ON_STOP=”no”, 这一句的”no”改为”yes”这样每次服务在停止之前会自动将现有的规则保存在 /etc/sysconfig/iptables 这个文件中去。】

3、重启iptables服务

systemctl restart iptables

4、查看当前规则

cat  /etc/sysconfig/iptables-config

iptables --list

iptables -nvL或iptables -L 

5、列出XX表的规则内容

iptables-save -t nat

iptables-save -t filter

iptables -t nat --list

6、清空规则

清空所有的规则:iptables -F

清空所有自定义的规则链:iptables -X

清空指定链 INPUT 上面的所有规则:iptables -F INPUT

清除iptables nat表规则:iptables -F -t nat

详细版参考:linux之iptables基础_iptables代理-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com