前言:

Linux的防护墙主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或者称为网络层防火墙)。Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和高效率。

在许多安全技术资料netfilter和iptables都用来指Linux防火墙,两者的区别如下:

Netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于“内核态”的防火墙。(内核空间)

Iptables:指的是用来管理Linux防火墙的命令程序,通常位于/sbin/iptables目录下,属于“用户态”的防火墙管理体系。(用户空间,管理工具)。

  • Iptables表、链结构

Iptables的作用是为包过滤机制的实现提供规则(或称为策略),通过各种不同的规则,告诉netfilter对来自某些源、前往某些目的的或具有某些协议特征的数据包应该如何处理。为了更加方便地组织和管理防火墙规则,iptables采用了“表”和“链”的分层结构。

其中,每个规则表相当于一个内核空间的一个容器,根据规则集的不同用途划分为默认的四个表;在每个表容器内包括不同的规则链,根据处理数据包的不同时机划分为五种链;而决定是否过滤或处理数据包的各种规则,按先后顺序放在各种规则链中。

  • 规则表:

为了从规则集的功能上有所区别,iptables管理着四个不同的规则表,其功能分别由独立的内核模块实现。这四个表的名称、包含的链及各自的用途如下:

      Filter表:filter表用来对数据包进行过滤,根据具体的规则要求决定如何处理一个数据包。Filter表对应的内核模块为iptable_filter,表内包含三个链,即INPUT、FORWARD、OUTPUT。

      nat :nat(Network  address Trstion.网络地址转换)表主要用来修改数据包的ip地址、端口号等信息。Nat表对应的模块为iptable_nat,表内包含三个链,即PREROUTING、POSTROUTNG. OUTPUT. (作地址转换)

      mangle表:mangle表用来修改数据包的TOS(服务类型)、TTL(生存周期),或者为数据包设置Mark标记,以实现流量整形、策略路由等高级应用。mangle表对应的内核模块为iptable_mangle,表内包含五个链,即PREROUTING、POSTROUTING、INPUT、 OUTPUT. FORWARD.

      raw表:raw表是自1.2.9 以后版本的iptables新增的表,主要用来决定是否对数据包进

行状态跟踪,raw表对应的内核模块为iptable_raw.表内包含两个链, 即OUTPUT、PREROUTING.

在iptables的四个规则表中mangle 表和raw表的应用相对较少。 因此这里不多介绍。

  • 规则链(容纳各种防火墙规则):

在处理各种数据包时,根据防火墙规则的不同介入时机,iptables 默认划分为五种不同的规则数据链,这五种链的名称、各自的介入时机如下:

      INPUT链:当收到访问防火墙本机地址的数据包(入站时),应用此链中的规则。

      OUTPUT链 :当防火墙本机向外发送数据包(出站)时,应用此链中的规则。

      FORWARD链:当接收到需要通过防火墙中转发送给其他地址的数据包(转发)时,应用此链中的规则。

      PREROUTING链:在对数据包做路由选择之前,应用此链中的规则。

      POSTROUTING链:在对数据包做路由选择之后,应用此链中的规则。

其中,INPUT、OUTPUT链主要用在“主机型防火墙中”,即主要针对服务器进行保护的防火墙;而FORWARD、PREROUTING、POSTROUTING链多用在“网络型防火墙中”,如使用Linux防火墙作为网关服务器,在公司内网与Internet之间进行安全控制。

1)编写防火墙规则:

Iptables基本规则:

# iptables  [-t  表名]  管理选项   [链名]  [匹配条件]  [-j  控制类型]

其中表名、链名用来指定iptables命令所操作的表和链,未指定时默认使用filter表;管理选项表示iptables规则的操作方式,如插入、增加、删除、查看等;匹配条件用来指定要处理的数据包的特征、不符合指定条件的数据包不会处理;控制类型指的是数据包的处理方式,如:允许、拒绝、丢弃等。

对于防火墙、数据包的控制类型非常关键、直接关系到数据包的放行、封堵及做相应的日志记录等。在iptables防火墙体系中,最常用的几种控制类型如下:

   ACCEPT允许数据包通过。

   DROP直接丢弃数据包,不给出任何回应信息。

   REJECT拒绝数据包通过,必要时会给数据发送一个响应信息。

   LOG在/var/log/message文件中记录日志信息,然后将数据包传递给下一条规则。防火墙规则的“匹配即停止”对于LOG操作来说是一个特例。因为LOG只是一种辅助的动作,并没有处理数据包。

2)Iptables简单使用说明:

# service  iptables  start|stop|restart|save

选项:

  • -A:在指定链的末尾添加一条新规则
  • -D:删除指定链中的某一条规则,可指定规则顺序号或具体内容
  • -I:在指定链中插入一条新的规则,未指定序号时默认作为第一条规则
  • -R:修改、替换指定链中的某一条规则,可指定规则序号或具体内容
  • -L:列出指定链中所有的规则,若未指定链名,则列出表中所有的链
  • -F:清空指定链中所有的规则,若未指定链名,则清空表中所有链
  • -P:设置指定链的默认策略
  • -n:使用数字形式显示输出结果,如显示IP地址而不是主机名
  • -v:查看规则列表时显示详细的信息
  • -h:查看命令帮助信息
  • --line-numbers:查看规则列表时,同时显示规则在链中的顺序号。

3)小韩实操营

1.查看iptables防火墙策略:

[root@hya ~]# iptables -L -n -v          默认是filter表的(结合使用时-L不要放在首位)

2.查看其它表的:

[root@hya ~]# iptables -t nat -n -v -L      如果你只希望查看特定的表,可以在 -t 参数后跟上要单独查看的表名。

3.屏蔽某个IP地址:

[root@hya ~]# iptables -A INPUT -s 192.168.253.100 -j DROP
如果你只想屏蔽 TCP 流量,可以使用 -p 参数的指定协议:
[root@hya ~]# iptables -A INPUT -p tcp -s 192.168.253.100 -j DROP

4.解封对某个IP的屏蔽:

[root@hya ~]# iptables -D INPUT -s 192.168.253.100 -j DROP

5.IPtables 关闭特定端口,阻止特定的传出连接:

[root@hya ~]# iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

6.阻止特定的传入连接:

[root@hya ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

7.使用 multiport 我们可以一次性在单条规则中写入多个端口,例如:

[root@hya ~]# iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPT
[root@hya ~]# iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT

8.在 IPtables 中 IP 地址范围是可以直接使用 CIDR 进行表示的,例如:

[root@hya ~]# iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT

9.有时我们需要将 Linux 服务器的某个服务流量转发到另一端口,此时可以使用如下命令(上述命令会将所有到达 eth0 网卡 25 端口的流量重定向转发到 2525 端口。):

[root@hya ~]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525

10.对 Linux 禁 PING 可以使用如下规则屏蔽 ICMP 传入连接:

[root@hya ~]# iptables -A INPUT -p icmp -i eth0 -j DROP

11.环回访问(127.0.0.1),建议大家都开放:

[root@hya ~]# iptables -A INPUT -i lo -j ACCEPT
[root@hya ~]# iptables -A OUTPUT -o lo -j ACCEPT

12.使用如下规则可以屏蔽指定的 MAC 地址:

 [root@hya ~]# iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP

13.要清空 IPtables 链可以使用如下命令:

[root@hya ~]# iptables -F

14.要清空特定的表可以使用 -t 参数进行指定,例如:

[root@hya ~]# iptables -t nat -F

15.使用–line-number找出该条规则的行号,再通过行号删除规则。

[root@hya ~]# iptables -nL --line-number
[root@hya ~]# iptables -D INPUT 2

小韩详解 Iptables -- 简单使用相关推荐

  1. php小程序地图处理,微信小程序 地图map详解及简单实例

    微信小程序 地图map 微信小程序map 地图属性名类型默认值说明longitudeNumber中心经度 latitudeNumber中心纬度 scaleNumber1缩放级别 markersArra ...

  2. python与golang_Golang与python线程详解及简单实例

    Golang与python线程详解及简单实例 在GO中,开启15个线程,每个线程把全局变量遍历增加100000次,因此预测结果是 15*100000=1500000. var sum int var ...

  3. [网络安全学习篇2]:IP详解及简单的DOS命令(千峰网络安全视频笔记 2 day)

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  4. 数据库中北大学第二章ppt总结和课后习题详解(小宇特详解)

    数据库中北大学第二章ppt总结和课后习题详解(小宇特详解) 第2章 数据模型与系统结构 2.1 数据模型的基本概念 现实世界--具体事物->信息世界--概念模型->机器世界--DBMS支持 ...

  5. nps内网穿透服务器搭建教程(ip显示阿里云的ip)-小宇特详解

    nps内网穿透服务器搭建教程(ip显示阿里云的ip)-小宇特详解 一共有两部分,一部分是windows安装,一部分是linux系统(使得ip显示自己的阿里云). 前期准备 1.一台云服务器 2.配置安 ...

  6. 【C语言】扫雷小游戏详解

    [C语言]扫雷小游戏详解 前言: 还记得大明湖畔的夏雨荷,电脑课上的扫雷吗? ---------------------------是 他 吗--------------------------- 没 ...

  7. java对文件的操作详解_Java 对 Properties 文件的操作详解及简单实例

    Java 对 Properties 文件的操作详解及简单实例 发布于 2020-8-7| 复制链接 摘记: Java 对 Properties 文件的操作简介在 Java 中,我们常用 java.ut ...

  8. mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例

    <MysqL教程MysqL 复制详解及简单实例>要点: 本文介绍了MysqL教程MysqL 复制详解及简单实例,希望对您有用.如果有疑问,可以联系我们. MysqL 复制详解及简单实例 主 ...

  9. mysql 实例复制_MySQL 复制详解及简单实例

    MySQL 复制详解及简单实例 主从复制技术在MySQL中被广泛使用,主要用于同步一台服务器上的数据至多台从服务器,可以用于实现负载均衡,高可用和故障切换,以及提供备份等等.MySQL支持多种不同的复 ...

最新文章

  1. 对CAS机制的理解(二)
  2. 大数据独角兽TOP10榜单发布,“内永洪,外Tableau”领跑BI领域
  3. 修改数据库文件为自动扩展以达到表空间自动扩展的目的
  4. SQLServer权限
  5. 学习Zynq-7000的入门书单
  6. BDS-HA:构建高可用、低延迟的HBase服务
  7. 中国的城市看多了,贴贴美国的城市,肯定对你的视觉产生冲击
  8. mybatis mysql 调用存储过程 多个返回值_Mysql面试知识点总结(进阶篇)
  9. 仿人机器人的实时模仿(基于Kinect)
  10. 计算机专业申请phd美国,揭秘美国大学计算机专业PHD申请难度有多大
  11. 【UVA 1589 --- Xiangqi】
  12. 【对比Java学Kotlin】类型别名
  13. aardio - 巧用字符分隔符\u0001
  14. STM32单片机开发实例 基于STM32单片机的温室大棚监测系统
  15. 音乐flac格式如何快速简单的转换为mp3格式
  16. 【数据结构与算法】单链表的插入和删除
  17. win10 C盘清理总结记录
  18. 模态分解算法 EMD、EEMD、CEEMD
  19. c++语言如何实现水仙花数(小白)
  20. 网络分布式文件系统-MFS搭建以及部署详解

热门文章

  1. 一图轻松搞懂吉利Basetech之OCC
  2. opencv光线补偿_光线补偿算法的实现
  3. 魅族手机没有插耳机却显示耳机模式解决方案
  4. 【渝粤题库】陕西师范大学202501 法语(二)作业
  5. 苹果ipad怎么用计算机来唱歌,‎App Store 上的“唱歌-教您怎么唱歌”
  6. 批量图片采集编辑压缩工具
  7. 物流围城 让今年双11商家拿什么发货?
  8. SpringBoot SSO整合
  9. 名果黑的Mac装机必备
  10. pandas数据分析常用方法总结(数据集可以自己更改)