iptables防火墙简介

Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的安全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制。特别是它可以在一台非常低的硬件配置下跑的非常好

Iptables是Linux2.4及2.6内核中集成的服务。提供近400人的上网服务丝毫不逊色企业级专业路由器防火墙,其功能与安全性比其ipfwadm,ipchains强大的多,iptables主要工作在OSI七层的二、三、四层,如果重新编译内核,iptables也可以支持7层控制(squid代理+iptables)

 

iptables 名词和术语

容器:包含和被包含的关系

iptables是表的容器

iptables包含表 (4张表)表是链的容器,每个表都包含若干个链

链是规则的容器,真正过滤规则是属于链里面的

级别介绍

iptables国家

表省

链 市

规则 县

iptables工作流程

iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则来进行匹配是否可以进入到主机。

数据包的流向是从左向右的

匹配规则

iptables工作流程小结

1.防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。

2.如果匹配上规则,即明确表是阻止还是通过,此时数据包就不在向下匹配新规则了。

3.如果所有规则中没有明确是阻止还是通过这个数据包,也就是没有匹配上新规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过

4.防火墙iptables的默认规则是对应链的所有规则执行完才会执行的。

iptables表(tables)和链(chains)

iptables根据功能和表的定义划分包含三个表,filter,nat,mangle,其每个表又包含不同的操作链(Chains)

Filter表是真正的防火墙功能

INPUT进服务器 OUTPUT出服务器 FORWARD 流经服务器

Nat表 负责数据包改写 网关共享上网、IP和端口映射

OUTPUT

PREROUTING

POSTROUTING

Mangle表 路由标记 用的不多

####所有链全有

RAW 表 用处很少和Mangle一样

我们可以通过man iptables 来获取

表介绍

filter标签

不指定哪张表就会使用默认filter表

filter表的核心功能:主机防火墙

强调:对于filter表的控制是我们实现本机防火墙的重要手段,特别是对INPUT链的控制

NAT表

NAT表的核心功能:IP和端口映射转换

负责网络地址转换,即来源与目的ip地址和port的转换。

应用:和主机本身无关。一般用于局域网共享上网或者特殊的端口转换服务相关。

NAT功能一般企业工作场景

1.用于做企业路由(zebra)或网关(iptables),共享上网(POSTROUTING)

2.做内部外部ip地址一对一映射(dmz),通过使用iptables防火墙映射ip到内部服务器,ftp服务。(PREROUTING)

3.单个端口的映射,例如:映射80端口(PREROUTING)

这个表定义了三个链(Chains),nat功能就相当于网络的ACL控制。和网络交换机、路由器ACL类似。

iptables表和链工作流程图

NAT功能:

企业案例:

1)局域网上网共享(路由和网关)使用NAT的 POSTROUTING链

2)端口映射: 外部IP和端口映射为内部IP和端口(DMZ功能),使用NAT的 PREROUTING链

Filter功能,即防火墙FILTER INPUT FORWARD

企业案例:主要应用于服务器防火墙

linux iptables 防火墙简介的更多相关文章

  1. 15.linux iptables防火墙规则vsftp服务

    一.服务所开启的端口号.          dhcp 67       samba 139 445       http 80  https 443       mysql 3306         ...

  2. Linux iptables防火墙

    查找安装包yum list | grep iptables 安装iptables yum install iptables-services 重启防火墙使配置文件生效 systemctl restar ...

  3. Linux iptables 防火墙

    内容摘要 防火墙 防火墙定义 防火墙分类 netfilter/iptables netfilter 设计架构 iptables 简述 iptables 命令详解 命令语法 table 参数 comma ...

  4. CentOS Linux iptables 防火墙

    快速安装,配置,启动,检查 - 关闭 5002 - 5011 端口开放所有其它 yum install iptables iptables -F iptables -X iptables -Z ipt ...

  5. Linux iptables 防火墙详解

    0x00 iptables介绍 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成. netfilter 组件也称为内核空间,是内核的一部分,由一些 ...

  6. iptables防火墙简介

    原文地址:http://drops.wooyun.org/tips/1424 一.iptables介绍 linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组 ...

  7. Linux iptables 防火墙设置

    1.查看防火墙iptables -L -niptablesb -L -n --line-number  显示规则行号看到 INPUT ACCEPT, FORWARD ACCEPT , OUTPUT A ...

  8. LINUX IPTABLES 防火墙配置

     0.iptables(ACL)的匹配原则: 与cisco等一致,从上到下依次匹配. 1.iptables的基本用法:. (1)命令格式 iptables [–ttable] command [mat ...

  9. Linux iptables 防火墙常用规则

    iptables 安装 yum install iptables iptables 规则清除 iptables -F iptables -X iptables -Z 开放指定的端口允许本地回环接口(即 ...

随机推荐

  1. Java基础(四)线程快速了解

    开始整理线程之前,之前有个命令忘记整理了,先整理一下jar命令的使用 Jar包 其实可以理解是java的压缩包方便使用,只要在classpath设置jar路径即可数据库驱动,ssh框架等都是以jar包 ...

  2. Git入门到高级系列1-git安装与基础命令

    视频课程地址 腾讯课堂 为什么要进行项目文件的版本管理 代码备份和恢复 团队开发和协作流程 项目分支管理和备份 git 是什么? git是一个分布式的版本控制软件.版本控制是一种记录一个或若干文件内容 ...

  3. Matlab信号处理基础

    一. 简介 离散傅立叶.离散余弦和离散小波变换是图像.音频信号常用基础操作,时域信号转换到不同变换域以后,会导致不同程度的能量集中,信息隐藏利用这个原理在变换域选择适当位置系数进行修改,嵌入信息,并确 ...

  4. js this 引起的祸

    注意:这里的 this 指向已经改变了. 所以不能再次使用 this 需在上面自定义变量. 那些年踩过的坑,记录一下.

  5. ROS工作空间和程序包创建

    预备工作后面操作中我们将会用到ros-tutorials程序包,请先安装: $ sudo apt-get install ros-<distro>-ros-tutorials 将 < ...

  6. tomcat 配置 使用综合

    [参考]Tomcat 7.0安装与配置 [参考]tomcat 控制台日志(startup.bat)输出到指定文件中 [参考]将Java web应用部署到Tomcat 及部署到Tomcat根目录 的三种 ...

  7. Python学习笔记(一):Python代码的打包与发布

    在python程序中,一个.py文件被当作一个模块,在各个模块中定义了不同的函数.当我们要使用某一个模块中的某一个函数时,首先须将这个模块导入,否则就会出现函数未定义的情况. 下面记录的是打包及安装包 ...

  8. composer lavarel 安装

    一:packagist库:https://packagist.org/packages/laravel/laravel 二:composer安装 // 安装到laravel文件夹 composer c ...

  9. Oracle 10G 安装文档

    Oracle 10G安装指导 1. 解压文件10201_database_win32.zip,并双击解压目录下的setup.exe,出现安装界面,如下: 2. 输入口令和确认口令,如:password ...

  10. BackboneJS 源码注释

    Backbone 作者在源码中做了很好的注释,这里只是锦上添花,补充一些个人的理解而已. // Backbone.js 1.2.3 // (c) 2010-2015 Jeremy Ashkenas, ...