一、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. 【c++ primer, 5e】定义类相关的非成员函数

    练习 7.6 & 7.7 #include <iostream> #include <string> using namespace std; // Sales_dat ...

  2. [翻译]理解CSS模块方法

    在这个前端发展日新月异的世界,能够找到有所影响的概念相当困难,而将其准确无误的传达,让人们愿意尝试,更是难上加难. 拿CSS来看,在我们写CSS时,工具侧最大的变化,也就是CSS处理器的使用,如:可能 ...

  3. Elasticsearch Server,2nd Edition pdf 翻译 中文

    很偶然的机会,就需要接触到搜索,入门就是google trend已然超过solr的ES.在入门的时候找书的时候发现没有中文版的.于是自己开始翻译Elasticsearch Server,2nd Edi ...

  4. 自学Java测试代码二String, StringBuffer

    2017-08-23 10:38:01 writer:pprp package test; import java.util.*; public class test2 { public static ...

  5. Class 的继承

    简介 Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多. class Point { } class ColorPoint extends P ...

  6. 【转发】Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  7. git bash 出显错误不能用,怎么解决

    解决方法: 好像就是64的会出问题,其实32位的git也可以安装在64位的系统上. 将你64位的git卸掉了后,下载一个32位的git安装,就可以正常使用了, 当然,你的32位的出了错,卸了后也这样处 ...

  8. mysql外键理解

    一个班级的学生个人信息表: 什么是外键 在设计的时候,就给表1加入一个外键,这个外键就是表2中的学号字段,那么这样表1就是主表,表2就是子表. 外键用来干什么 为了一张表记录的数据不要太过冗余. 这和 ...

  9. hdu4009最小树形图

    多建一个根,连到每一个点,然后花费是建水井的钱 然后跑一边最小树形图即可,这题必定有解,因为可以从根开始到每一点,可以不用判无解的情况 #include<map> #include< ...

  10. LM3S之boot loader学习笔记-2

    LM3S之boot loader学习笔记-2 彭会锋 () 上一篇中介绍了bootloader的基础知识,对于bootloader的作用和如何编写bootloader也有了大概的了解了,这一篇主要讲解 ...