linux操作系统自身可以充当交换机,还可以当路由器,也就是说linux多网卡之间拥有互相转发数据包的能力,这种能力的实现主要依靠的是防火墙的功能进行数据包的转发和入站。
路由选择点,就是在一个点分辨出事转发还是入站,在路由选择点之前的路叫路由选着前,出站之后的路叫路由选择后
存储链的表示filter 和nat
filter里村的是入站出站,和转发
nat存的是路由前,路由后和出站。

入站叫INPUT

出站叫OUTPUT

转发叫FORWARD

入站前叫PREROUTING

出站叫之后叫POSTROUTING

保存防火墙规则的配置文件/etc/sysconfig/iptables

导出备份的命令

iptables-save > 文件路径

导入还原命令

iptables-restore < 文件路径

iptables的命令用法和参数

iptables -t 【表名】 选项 【链名】 【条件】 【-j控制类型】

注意事项:

不指定表名时:默认的是filter表

不指定链名时:默认是表内所有的链

除非设置链的默认匹配,否则必须知道匹配条件

选项、链名、控制类型使用大写字母、其余的均为小写

控制类型常用的参数

ACCEPT:允许通过

DROP:直接丢包,不给出任何的回应

REJECT:拒绝通过 ,必要时会给出提示

LOG:记录日志信息,然后传给下一条规则继续匹配

选项类的参数

-A:在链的末尾追加一条规则,

-I:在链的开头(或指定序号)插入一条规则

查看表规则参数。

-L:列出所有的规则条目

-n:以数字形式显示地址,端口等信息

-v:以更详细的方式显示规则信息

--line-numbers:查看规则时,显示规则的序号。--line与之同效

删除清空规则的参数

-D:删除链内指定序号(或内容)的一条规则

-F:清空所有的规则

iptables -D INPUT
删除input链上的序号是3的规则

修改、替换规则

-R:修改替换规则

修改链规则

-P:修改链的规则

iptables -P FORWARD -j DROP
所有的转发链都丢包

通用匹配参数

-p:协议匹配,指定协议

-s:来源地址匹配,指定来源

-d:目标地址匹配,指定目标

-i:指定入站的网卡匹配

-o:指定出站的网卡匹配

隐含的匹配

隐含的匹配需要在有通用的匹配后才能使用,--开头

--sport:来源端口,需要指定协议后才能匹配

--dport:目标端口,需要指定协议后才能匹配

iptables -A INPUT -s 192.168.200.0/ -p tcp --sport : -dport  -j ACCEPT
例句的意思是在input链上追加一条,来源ip为200网段的tcp协议,来源端口是22~21,目标端口是53的都同一通过

--tcp-flags:检查范围被设置的标记

iptables -I INPUT -i eth1 -p tcp --tcp-flags SYN,RST,ADK,SYN -j DROP
例句的意思是在input链上插入一条从eth1网卡进来的tcp协议,被标记的syn等包都丢掉

icmp协议的隐含匹配

--icmp-type 类型

8 Echo request 请求包

0 Echo reply 应答包

3 错误回显

iptables -A INPUT -p icmp --icmp-type  -j DROP
例句的意思是最近一条规则在input链,所有的icmp协议的请求包都丢掉

状态匹配 -m state --state 连接状态

常见的连接状态

NEW:新连接

ESTABLISHED:响应请求,或已经建立连接的

RELATED:与已连接有相关性的,如ftp数据连接

iptables -A INPUT -p tcp --dport  -m state --state ESTABLISHED,RELATED,NEW -j DROP
命令的意思是在input链上追加一条tcp规则已经连接和有关联的连接新的连接都拒绝

SNAT将来源的ip转换成自己设定的ip

iptables -t nat -A POSTROUTING -s 192.168.200.0/ -o eth1 -j SNAT --to-source 192.168.100.100
例句的意思是指定nat表最近一条针对出站后的链来源ip是200网段的从eth1出的,统统把来源ip换成192.169.100.100

DNAT将目标ip转换成自己设定的ip

iptables -t nat -A PREROUTING -i eth0 -d 192.168.100.100 -p tcp --dport  -j DNAT --to-destination 192.168.200.88:
例句的意思是将nat表 入站前 从eth网卡来的目标ip是192.168.100. 端口是80来的tcp协议都改成目标ip为192.168.200.88端口是8080

网路防火墙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 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...

随机推荐

  1. 由SOAP说开去 - - 谈谈WebServices、RMI、RPC、SOA、REST、XML、JSON

    引子: 关于SOAP其实我一直模模糊糊不太理解,这种模模糊糊的感觉表述起来是这样: 在使用web服务时(功能接口),本来我就可以通过安卓中固有的http类(使用http协议),来发送http请求,并且 ...

  2. matplotlib-折线图、散点图

    (一)折线图小结 1.设置图片大小(想要一个高清无码大图) # 图大小 plt.figure(figsize=(20, 8), dpi=80) 2.保存到本地 # 设置图片大小 plt.figure( ...

  3. python 面向对象 isinstance

    查看某个对象是否 这个类实例 是返回True 否则返回False class Foo(object): pass obj = Foo() class Boo(object): pass print(i ...

  4. android读取通讯录和使用系统通讯录

    第一步:注册权限 <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <us ...

  5. go-005-变量、常量

    概述 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念.变量可以通过变量名访问. Go 语言变量名由字母.数字.下划线组成,其中首个字母不能为数字. 声明变量的一般形式是使用 var 关 ...

  6. WMS学习笔记:2.WMS解析

    WMS 定义了三个操作,分别是:GetCapabilities,GetMap和GetFeatureInfo.其中,GetFeatureInfo是可选的.本条款规定了在超文本传输协议(HTTP)分布式计 ...

  7. java static成员变量方法和非static成员变量方法的区别

    这里的普通方法和成员变量是指,非静态方法和非静态成员变量首先static是静态的意思,是修饰符,可以被用来修饰变量或者方法. static成员变量有全局变量的作用       非static成员变量则 ...

  8. lvs原理及各种调度算法详解

    LVS原理详解 LVS原理详解 LVS简介 LVS结构与工作原理 一.LVS的结构 二.LVS内核模型 三.LVS的包转发模型 1.NAT模型: 2.DR模型: 3.TUN模型: 四.LVS的调度算法 ...

  9. fatal error C1010: unexpected end of file while looking for precompiled header directive

    在编译VS时候,出现fatal error C1010: unexpected end of file while looking for precompiled head. 问题详细解释:致命错误C ...

  10. php之isset empty is_null的区别

    isset:当前变量没有设置(即不存在),或者变量设置为null的时候,返回true,设置为“”或者0 都是返回的true empty:变量不存在,设置值为null,设置为“”,设置为0 都返回tru ...