一、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. Django学习笔记之Models与ORM操作

    一.ORM增加 from django.db import models class Publisher(models.Model): name = models.CharField(max_leng ...

  2. Java学习笔记之对象的复制和克隆

    假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short, ...

  3. Android中C可执行程序编译问题

    make:进入目录'/opt/FriendlyARM/tiny4412/android/android-4.1.2'make: *** 没有规则可以创建“out/target/product/gene ...

  4. CSS控制滚动条的样式

    到今天(2018年10月25日)为止, 这还是chrome上的一个实验性特性: ::-webkit-scrollbar{width:4px;height:4px;} ::-webkit-scrollb ...

  5. python sklearn.cross_validation 模块导入失败

    参考链接: https://blog.csdn.net/Jae_Peng/article/details/79277920 解决办法: 原来在 cross_validation 里面的函数都放在 mo ...

  6. 爬虫之urllib2库的基本使用

    urllib2库的基本使用 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 在Python中有很多库可以用来抓取网页,我们先学习urllib2. urllib2 是 P ...

  7. C和C#两种方式实现邮件的简单接收

    本文的主要内容是通过两种方式实现简单邮件的接收,一种方式是通过C语言实现,另一种是通过C#实现的, 两种方式在实现上有许多的不同之处,但是本质上都是一样的. 一,C语言实现方式 C语言接收邮件的步骤: ...

  8. NumPy教程目录

    NumPy Ndarray对象 NumPy数组属性 NumPy数据类型 NumPy数组创建例程 NumPy来自现有数据的数组 NumPy来自数值范围的数组 NumPy切片和索引 NumPy - 高级索 ...

  9. thinkphp getField("xxxxx", true); 得到一个字段所有值组成的的数组

    很多时候我们只需要一张表里某个字段的值,组成的数组 $Channel = D('channel');$channelList = $Channel->order('user_name')-> ...

  10. 解决maven项目Cannot change version of project facet Dynamic web module to 3.0/3.1

    解决maven项目Cannot change version of project facet Dynamic web module to 3.0 1.打开项目所在目录下的.settings文件夹 打 ...