iptables 详解(11)iptables的扩展动作2与最后总结

除了ACCEPT 、DROP  、REJECT 、LOG

认识几个新动作

SNAT 、DNAT 、MASQUERADE、REDIRECT

使用场景可能会是以下的场景:

<场景1>

网络内部有10台主机,有各自的地址,网络内部的主机与其他网络中的主机通讯时,会暴露自己的ip地址,如果我们要隐藏这些地址可以这样做:

当网络内部的主机向网络外部主机发送报文,

报文===>防火墙或者路由器,将报文的源 IP修改为防火墙或者路由器的 IP地址,源端口也映射为某个端口,路由器维护一张NAT表(内部主机+端口)

其他网络中的主机收到这些报文,显示的源地址就变成是防火墙或者路由器的地址,给出回应时,路由器收到后再根据当前的NAT表发给指定主机, 准确地说是用到了NAPT功能。

Network Address Port Translation。

从路由器的角度 这样的 ip转换过程一共发生了2次

SNAT  内部网络报文  出去的时候 报文源 ip 被转换成目标路由器ip,Source Network Address Translation

DNAT  外部网络报文响应时 响应报文的目标路由器ip会再次被修改为之前发出来的源ip,Destinationnetwork address translation

除了 隐藏网络内部主机ip地址,还能让 局域网内的主机共享公网ip,使私网ip也能访问互联网。

公司共用一个公网ip出口,10台电脑都配上各自的私网 ip,并进行端口映射。

<场景2>

如果要NAT功能能够正常使用需要开启linux主机的核心转发功能

[email protected]:~# echo 1 >/proc/sys/net/ipv4/ip_forward
[email protected]:~# cat /proc/sys/net/ipv4/ip_forward
1

SNAT相关操作

配置SNAT 可以隐藏往内主机的 ip 地址,也可以共享公网ip,如果只是共享ip的话,只配置如下的SNAT规则即可 

 iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -j SNAT --to-source + 公网ip

  

如果公网ip是动态获取的 不是固定的,则可以使用MASQUERADE进行动态的SNAT操作,如下命令表示将10.1网段的报文的源IP修改为eth0网卡中可用的地址

iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -o eth0 -j MASQUERADE

DNAT相关操作

配置DNAT 可以通过公网 IP 访问局域网内的服务,理论上来说,只要配置DNAT规则,不需要对应的SNAT规则即可以达到DNAT的效果

但是在测试DNAT的时候,SNAT也要配置才能正常DNAT,可以先尝试添加DNAT规则 如果无法正常DNAT 则尝试SNAT,SNAT规则配置一条即可,

DNAT规则则需要根据实际情况配置不同的DNAT规则。

iptables -t nat -I PREROUTING -d 公网ip -p tcp --dport 公网端口 -j DNAT  --to-destination 私网ip:端口号iptables -t nat -I PREROUTING -d 公网ip -p tcp --dport 8080 -j DNAT --to-destination 10.1.0.1:80iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -j SNAT --to-source 公网ip

在本机进行目标端口映射时 可使用REDIRECT动作

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 

  配置完上述规则后,其他机器访问本机的80的端口时,才会被映射到8080端口

  

================================================最后总结===============================================

1、规则的顺序非常重要

如果报文已经被前面的规则匹配到 则iptables会对报文执行对应动作(如ACCEPT 或者 REJECT)

2、规则中多个匹配条件,条件之间默认存在“与”关系。

一条规则如果包含多个匹配条件,那么报文必须同时满足这个规则中的所有匹配条件,报文才能被这条规则匹配到。

3、不考虑1的情况下,将匹配次数更多,频率更高的规则放置在前面

比如你写了两条规则,一条是针对sshd服务,一条是针对web服务,假设一天之内有20000个请求访问web服务,200个请求访问sshd服务

那么针对web服务的规则应该放在前面,针对sshd的规则放在后面,因为web的请求频率更高

否则就会造成每次访问都要经过sshd的规则,耗费更多资源。

4、iptables所在主机作为网络防火墙时,在配置规则时,要着重考虑方向性,双向的都要考虑,从外到内,从内到外

5、在配置iptables白名单时,往往会将链的默认策略设置为ACCEPT,通过在链的最后设置REJECT实现白名单机制,而不是将链的默认策略设置为DROP,如果将链的默认策略设置为DROP 则当链中规则被清空时,管理员的请求也会被DROP掉。

原文地址:https://www.cnblogs.com/chenxiaomeng/p/12384598.html

时间: 2024-11-17 00:35:39

iptables 详解(11)iptables的扩展动作2与最后总结的相关文章

iptables详解之filter

iptables详解之filter iptables令很多小伙伴脑阔疼,下面我们来说说如何使用iptables. 一.iptables格式 1.1.iptables 帮助 通过iptables --help查看一下iptables用法 [[email protected] ~]# iptables --help iptables v1.4.21 Usage: iptables -[ACD] chain rule-specification [options] iptables -I chain

iptables 详解

Iptables 详解 Iptables的历史 历史版本 与Linux内核各版本集成的防火墙历史版本: 2.0.X内核:ipfwadm 2.2.X内核:ipchains 2.4.X内核:iptables iptables的工作原理 iptables由用户空间的命令行程序和位于内核中的tcp/ip协议栈的报文处理框架两部分组成.工作在用户空间中,定义规则,让在内核空间当中的netfilter来读取,并且实现让防火墙工作.而放入内核的地方必须是tcp/ip的协议栈经过的地方.而这个tcp/ip协议栈

iptables详解加实战

iptables 组件是一种工具,也称为用户空间(userspace),它使插入.修改和除去信息包过滤表中的规则变得容易.分为四个表和五个链,其中表是按照对数据包的操作区分的,链是按照不同的Hook点来区分的,表和链实际上是netfilter的两个维度. 4个表:filter,nat,mangle,raw,默认表是filter(没有指定表的时候就是filter表).表的处理优先级:raw>mangle>nat>filter. filter:一般的过滤功能,如不-t指定表,则默认filte

linux中iptables详解

linux中iptables详解 一.通用基础知识 1.基本概念 什么是防火墙? 所谓防火墙指的是工作于主机或网络的边缘,对于进出的报文根据事先定义的规则作检查,将那些能够被规则所匹配到的报文作出相应处理的组件. 防火墙是由软件和硬件设备组合而成.在内部网和外部网之间.专用网与公共网之间的界面上构造的保护屏障,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入. 防火墙主要由服务访问规则.验证工具.包过滤和应用网关4个

CentoOS iptables详解

一.防火墙.iptables和netfilter简介 防火墙(Firewall):是由软件和硬件设备组合而成的一种隔离技术,它工作于网络或主机的边缘(通信报文的进出口),对于进出本网络或主机的数据包根据事先定义的检测规则进行匹配检测,允许或是限制传输的数据包通过. netfilter:是内核的一部分,由一些数据包过滤表组成,这些表包含内核用来控制数据包过滤处理的规则集. iptables:是用来插入.修改和删除数据包过滤表中的规则的管理工具. 二.iptables详解 该图片来自于网络 报文流向

iptables详解--转

出处:http://yijiu.blog.51cto.com/433846/1356254 iptables详解 基本概念: 1.防火墙工作在主机边缘:对于进出本网络或者本主机的数据报文,根据事先设定好的检查规则对其检查,对形迹可疑的报文一律按照事先定义好的处理机制做出相应处理 对linux而言tcp/ip协议栈是在内核当中,意味着报文的处理是在内核中处理的,也就是说防火墙必须在工作在内核中,防火墙必须在内核中完成tcp/ip报文所流进的位置,用规则去检查,才真正能工作起来. iptables用

Linux网络安全模型及iptables详解(1)

Linux网络安全模型及iptables详解 基本概念 Firewall:工作在主机或网络边缘,对进出的报文按事先定义的规则进行检查, 并且由匹配到的规则进行处理的一组硬件或软件,甚至可能是两者的组合 硬件防火墙:在硬件级别实现部分功能的防火墙:另一个部分功能基于软件实现 软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙: 主机防火墙:工作于主机边缘,只能对一台主机起到保护作用 网络防火墙:工作于网络边缘,对多台主机起到保护作用(定向规则) iptables:防火墙规则编写工具,位于用

iptables详解(12):iptables动作总结之一

前文一直在介绍iptables的匹配条件,并没有对动作进行过总结,那么此处,我们就来总结一下iptables中的动作. 之前的举例中已经用到了一些常用动作,比如ACCEPT.DROP.REJECT等. 其实,"动作"与"匹配条件"一样,也有"基础"与"扩展"之分. 同样,使用扩展动作也需要借助扩展模块,但是,扩展动作可以直接使用,不用像使用"扩展匹配条件"那样指定特定的模块. 之前用到的ACCEPT与DRO

iptables详解和练习

防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP.数据进行检测. 目前市面上比较常见的有3.4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关. 对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的防火墙会在这层对源地址和目标地址进行检测.但是对于七层的防火墙,不管你

转:iptables详解

一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP.数据进行检测. 目前市面上比较常见的有3.4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关. 对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的防火墙会在这层对源地址和目标地址进行检测.但是对于七层的防火