一、iptables的说明及环境安装

(1)理论基础:当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程序处理,若发现目的不是自身,则会将包丢弃或进行转发。

    (2)iptables实现防火墙功能的原理是:在数据包经过内核的过程中有五处关键地方,分别是PREROUTING、INPUT、 OUTPUT、FORWARD、POSTROUTING,称为钩子函数,iptables这款用户空间的软件可以在这5处地方写规则,对经过的数据包进行 处理,规则一般的定义为“如果数据包头符合这样的条件,就这样处理数据包”。
iptables中定义有表,分别表示提供的功能,有filter表(实现包过滤)、nat表(实现网络地址转换)、mangle表(实现包修改)、 raw表(实现数据跟踪),这些表具有一定的优先级:raw–>mangle–>nat–>filter。

若为本地数据的传输,则数据进来内核的接口为input;出去的时候接口为output;

若目的地址不是本地时,数据传输的时候没有经过内核而出去的接口为postouting;响应的时候出去的接口叫做preouting.

(3)修改实验环境:

1、首先关闭firewalld火墙

systemctl  stop   firewalld.server

systemc   mask   firewalld.server

2、安装iptables火墙

yum   install  iptables-services.x86_64

systemctl   start  iptables

 二、 iptables的用法
    1)iptables的主配置文件:/etc/sysconfig/iptabls 
    2)iptables  -F                   ##刷新
         iptables  -nL                 ##查看iptables中的策略(默认为filter表)
         iptanles  -t  nat -nL       ##查看nat表中的策略;-t 指向表名
         service iptables  save    ##保存已有的策略(会保存在iptables的主配置文件中)

iptables -N  xniu          ##添加自定义链名

         iptables  -X  xniu         ## 删除自动链

iptables  -A INPUT -s  172.25.254.21  -p  tcp  --dport 22 -j REJECT    ##-A为添加一条策略到INPUT表;-s源地址;-p协议;--dport目的端口;-j 执行拒绝

在21端口进行测试:

iptables -D INPUT  -s 172.25.254.21  -p  tcp  --dport 22 -j REJECT              ##删除已有的策略

iptables  -I INPUT 2 -s  172.25.254.21  -p  tcp  --dport 22 -j REJECT            ##-I为插入,位置为INPUT表的第二个位置
        iptables  -P  INPUT  DROP                                                                         ## 修改input表的状态为drop

iptables -R INPUT 2 -s 172.25.254.21 -p tcp --dport 22 -j DROP                        ## 修改第二条的记录,把REJECT修改为DROP

3 ) 常用操作命令:

       -A 在指定链尾部添加规则
       -D 删除匹配的规则
       -R 替换匹配的规则
       -I 在指定位置插入规则

三、网络地址转换

       SNAT(源地址转换)是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机
       DNAT(目标地址转换),就是指数据包从网卡发送出去的时候,修改数据包中的目的IP,表现为如果你想访问A,可是因为网关做了DNAT,把所有访问A的数据包的目的IP全部修改为B,那么,你实际上访问的是B

示例一:添加策略不同端口执行不同规则:
         iptables  -F                      ##首先清空
         iptables -nL                     ##查看
         iptables  -A INPUT  -m state  --state RELATED,ESTABLISHED -j ACCEPT
         iptables  -A INPUT  -m state  --state new  -i  lo  -j  ACCEPT
         iptables  -A INPUT  -m state  --state new  -p  tcp  --dport 22  -j  ACCEPT
         iptables  -A INPUT  -m state  --state new  -p  tcp  --dport 80  -j  ACCEPT

iptables  -A INPUT  -m state  --state new  -i  lo  -j  ACCEPT

示例二:目的地址的转换 (在nat表上)

          iptables -t  nat -A  PREROUTING -i eth0  -j  DNAT  --to-dest  192.168.0.111                 ##当连接的时候,使用接口转换为目的地址为111的主机

测试结果:

示例三:源地址的转换(在nat表上)

1、 首先把服务端要有两个物理网卡。ip分别为eth0:172.25.254.121 、eth1:192.168.0.2

iptables -t  nat -A POSTROUTING  -o eth0 -j  SNAT  --to-source 172.25.254.121                      ##此时eth0为172.25.254.121

iptables -t filter  -F                    ##刷新filter表

              iptables -t  filter -nL                  ##进行查看(此时为空)

2、 在192.168.0.111主机上测试结果如下:

防火墙---iptables的更多相关文章

  1. CentOS防火墙iptables的配置方法详解

    CentOS系统也是基于linux中的它的防火墙其实就是iptables了,下面我来介绍在CentOS防火墙iptables的配置教程,希望此教程对各位朋友会有所帮助. iptables是与Linux ...

  2. [转] Linux下防火墙iptables用法规则详及其防火墙配置

    from: http://www.cnblogs.com/yi-meng/p/3213925.html 备注: 排版还不错,建议看以上的链接. iptables规则 规则--顾名思义就是规矩和原则,和 ...

  3. Linux防火墙(Iptables)的开启与关闭

    Linux防火墙(iptables)的开启与关闭 Linux中的防火墙主要是对iptables的设置和管理. 1. Linux防火墙(Iptables)重启系统生效 开启: chkconfig ipt ...

  4. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  5. Linux防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  6. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  7. 【iptables】linux网络防火墙-iptables基础详解(重要)

    一:前言   防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防 ...

  8. 转:linux关闭防火墙iptables

    ref:https://jingyan.baidu.com/article/066074d64f433ec3c21cb000.html Linux系统下面自带了防火墙iptables,iptables ...

  9. Linux防火墙iptables学习

    http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...

  10. Linux下防火墙iptables用法规则详及其防火墙配置

    转:http://www.linuxidc.com/Linux/2012-08/67952.htm iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国法,家有家规 ...

随机推荐

  1. FFmpeg 入门(2):输出视频到屏幕

    本文转自:FFmpeg 入门(2):输出视频到屏幕 | www.samirchen.com SDL 我们这里使用 SDL 来渲染视频到屏幕.SDL 是 Simple Direct Layer 的缩写, ...

  2. 【c++ primer, 5e】函数指针

    简单的示例: #include <iostream> using namespace std; int sum(int x, int y) { return x + y; } int ma ...

  3. FIRST GAME.

    -Doragon Kuesuto(.c) Doragon Kuesuto 1.0 Doragon Kuesuto 1.15 Doragon Kuesuto 1.6

  4. jqGrid('setSelection',rowid)报Cannot read property 'multiple' of undefined

    项目组非要上jeeweb框架,用jqgrid+大量iframe做为前端框架,臃肿不堪. 今天上午,在进行选定操作jqGrid('setSelection',rowid)报Cannot read pro ...

  5. 20145327 《Java程序设计》第六周学习总结

    20145327 <Java程序设计>第六周学习总结 教材学习内容总结 父类中的方法: 流(Stream)是对「输入输出」的抽象,而「输入输出」是相对程序而言的. 标准输入输出: Syst ...

  6. 谈谈let与const

    let 命令 let命令用于声明变量,但是与传统var命令的不同之处在于拥有以下特性: 使用let命令声明的变量只在let命令所在的代码块内有效(我将之称为变量绑定): 不存在变量提升: 存在暂时性死 ...

  7. linux下nano中复制粘贴剪切的快捷键是什么

    答: 1.复制:alt+6 2.剪切:ctrl+k 3.粘贴:ctrl+u 4.自由剪切: ctrl+6指定起始剪切位置,按上下左右键来选中内容,然后按下ctrl+k即可自由剪切 5.撤销: alt+ ...

  8. 混合开发的大趋势之一React Native之页面跳转

    转载请注明出处:王亟亟的大牛之路 最近事情有点多,没有长时间地连贯学习,文章也停了一个多礼拜,愧疚,有时间还是继续学习,继续写! 还是先安利:https://github.com/ddwhan0123 ...

  9. Asp.Net MVC 缓存设计

    Asp.Net MVC 缓存: 1. 可以直接在Controller,Action上面定义输出缓存OutputCache,如下,第一次请求这个Index的时候,里面的代码会执行,并且结果会被缓存起来, ...

  10. Asp.Net MVC 请求原理分析

    分析Asp.Net MVC的请求过程,我们从以下几方面看: 配置:IIS网站的配置可以分为两个块:全局 Web.Config 和本站 Web.Config . Asp.Net Routing属于全局性 ...