MASQUERADE同样是做源地址转换,只不过防火墙会根据该策略自动查找可用的公网IP地址,适应变化的情况
•若接口使用ppp+,表示匹配ppp0、ppp1……中任意可用的拨号连接
•若需要演示操作,可以针对前一个SNAT策略的例子进行改写(因没有ADSL连接,接口仍然使用eth0):
先执行“iptables -t nat -F”清空nat表
再添加规则“iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE”

•讲解应用DNAT策略的基本步骤,其中涉及到的相关操作
•同样可适当强调:外网测试机并不需要将默认网关地址设为该Linux网关主机的IP地址
•确认路由功能状态时,可以执行sysctl命令查看:
[root@gateway ~]# sysctl -a | grep "ip_forward"
net.ipv4.ip_forward = 1

执行 “elinks http://218.29.30.29” 或者“lynx http://218.29.30.29”均可以进行测试
[root@localhost ~]# tail -f /var/log/httpd/access_log
218.29.30.29 - - [04/Jun/2009:14:35:53 +0800] "GET / HTTP/1.1" 200 15 "-" "ELinks/0.11.1 (textmode; Linux; 80x25-2)"

NAT转换
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 218.29.30.31
先执行“iptables -t nat -F”清空nat表
再添加规则“iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE”
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
[root@gateway ~]# sysctl -a | grep "ip_forward" net.ipv4.ip_forward = 1
iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.6
[root@localhost ~]# iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 2222 -j DNAT --to-destination
192.168.1.5:22
--------------------------理解ESTABLISHED
vm1
# iptables -P INPUT DROP
ping 192.168.56.201
ssh 192.168.56.201

全部失败
# iptables -A INPUT -p all -m state --state ESTABLISHED -j ACCEPT
ping 192.168.56.201
ssh 192.168.56.201
全部成功

vm2关闭防火墙
成功穿越反向防火墙。
tracerout 192.168.56.201 失败 ,原因看下面

--------------------------理解RELATE
vm1
# iptables -P INPUT DROP
# iptables -F
# iptables -A INPUT -p all -m state --state RELATED -j ACCEPT
tracerout 192.168.56.201 成功。由第一个包产生的其他回包都属于RELATE状态。

--------------------------理解NEW
vm1
OUTPUT默认策略为DROP。其他策略为ACCEPT
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT DROP
# iptables -F
ping 192.168.56.201
ssh 192.168.56.201
全部失败
# iptables -A OUTPUT -p all -m state --state ESTABLISHED,NEW -j ACCEPT

--------------------------理解INVALID
他需要特殊的第一条黑客工具产生,所以这里面紧急下面的用法。
通常应用在INPUT表的第一条。
# iptables -A INPUT -p all -m state --state INVALID -j DROP

--------------------------SNAT-内网访问外网
-------外网 --------------------网关防火墙-------------------内网PC1 192.168.56.202
10.0.100 eth0 eth1
10.0.1.200 192.168.56.200
内网:yum install elinks lynx -y
网关防火墙
# iptables -t nat -A POSTROUTING -s 192.168.56.202 -o eth0 -j SNAT --to-source 10.0.1.200
外网:httpd
# tailf /var/log/httpd/access_log

--------------------------DNAT-对外发布端口
外网:yum install elinks lynx -y
网关防火墙:
# iptables -t nat -A PREROUTING -i eth0 -d 10.0.1.200 -p tcp --dport 2345 -j DNAT --to-destination 192.168.56.202:80
内网:httpd
# tailf /var/log/httpd/access_log
内核模块存放位置
# ls /lib/modules/2.6.32-431.el6.x86_64/kernel/net/ipv4/netfilter/ //ipv4支持
# ls /lib/modules/2.6.32-431.el6.x86_64/kernel/net/ipv6/netfilter/ //ipv6支持
# ls /lib/modules/2.6.32-431.el6.x86_64/kernel/net/netfilter/ //同时支持
lsmod 查看当前的模块

iptables(2)的更多相关文章

  1. iptables

    一.在服务器上打开 22.80.9011端口: iptables -A INPUT -p tcp --dport 9011 -j ACCEPT iptables -A OUTPUT -p tcp -- ...

  2. 浅谈iptables 入站 出站以及NAT实例

    --------------本文是自己工作上的笔记总结,适合的可以直接拿去用,不适合的,适当修改即可!--------------- iptbales默认ACCEPT策略,也称通策略,这种情况下可以做 ...

  3. Failed to stop iptables.service: Unit iptables.service not loaded.

    redhat 7 [root@lk0 ~]# service iptables stop Redirecting to /bin/systemctl stop iptables.service Fai ...

  4. CentOS7安装iptables防火墙

    CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables st ...

  5. linux iptables常用命令之配置生产环境iptables及优化

    在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...

  6. CentOS系统配置 iptables防火墙

    阿里云CentOS系统配置iptables防火墙   虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FO ...

  7. /etc/sysconfig/下找不到iptables文件解决方法

    时间:2014-12-19 01:17来源:csdn 作者:大智 举报 点击:5639次 本想做些防火墙策略.防火墙策略都是写在/etc/sysconfig/iptables文件里面的.可我发现我也没 ...

  8. docker通过iptables修改或新增镜像映射端口

    443 8088 22 端口是初始映射端口 [root@SERVER ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAM ...

  9. lnmp 预设iptables设置

    「LNMP」iptables初始配置   首先使用命令iptables -P INPUT ACCEPT允许所有连接,否则容易把自己关在外边.然后使用iptables -F;iptables -X;ip ...

  10. 关闭SELinux和iptables防火墙

    1.关闭SELinux: 编辑SELinux配置文件: [root@Redis selinux]# vim /etc/selinux/config 修改SELINUX配置项为disable SELIN ...

随机推荐

  1. PAT L3-010 是否完全二叉搜索树

    https://pintia.cn/problem-sets/994805046380707840/problems/994805049870368768 将一系列给定数字顺序插入一个初始为空的二叉搜 ...

  2. MySQL :: Fatal error: Can't change to run as user 'mysql'. Please check that the user exists!

    Fatal error: Can't change to run as user 'mysql'. Please check that the user exists! MySQL :: Fatal ...

  3. SQL server 生成数据字典

    Set nocount on ), ) DECLARE Tbls CURSOR FOR ),isnull(g.[value],'-')) AS TABLE_COMMENT FROM INFORMATI ...

  4. Java 中的String、StringBuilder与StringBuffer的区别联系(转载)

    1 String 基础 想要了解一个类,最好的办法就是看这个类的源代码,String类源代码如下: public final class String implements java.io.Seria ...

  5. WebSocket推送

    本篇博客只是记录websocket在自己的项目中的应用,只是记录,不做说明(后来替换为GoEasy了). /** * 握手的设置,这其实是为了获取session */ public class Get ...

  6. Sigma Function

    做完这道题,我明白了人生的一个巨大道理,那就是: 其他题研究两下,做出来几百行.数论码字前研究半天,做出来十几二十行.做完特别没有成就感... 首先说下这题题意:首先,定义一个函数f[n],即为他所有 ...

  7. 安装 Tesserocr (填坑)

    参考: https://www.imooc.com/article/45278?block_id=tuijian_wz

  8. @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})

    @EnableAutoConfiguration 作用:Spring Boot会自动根据你jar包的依赖来自动配置项目. 例如当你项目下面有HSQLDB的依赖时,Spring Boot会创建默认的内存 ...

  9. 莫烦theano学习自修第一天【常量和矩阵的运算】

    1. 代码实现如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ # 导入numpy模块,因为numpy是常用的计算模块 import numpy as ...

  10. 《Tensorflow从入门到精通》

    第一 开发环境搭建 1. tensorflow的环境搭建 windows下安装cpu版tensorflow: pip install tensorflow 在ubuntu上安装gpu版tensorfl ...