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. 提高工作效率-window热键

    一.虚拟桌面 Ctrl win D          创建另一个桌面 Ctrl win  左右箭头     来回切换桌面 Ctrl win  F4     关闭当前虚拟桌面 二.窗口 win  M  ...

  2. Linux系统mysql使用(二)

    一.查看某数据库的表 # 假设此时数据库名为hiveuse hive; show tables;

  3. Docker : Tomcat Clustering with Load Balancer (Tomcat and Nginx)

    Tomcat Clustering Series Part 5 : NginX as Load Balancer - Ramki Technical Bloghttps://www.ramkitech ...

  4. c# Mongodb两个字段不相等 MongoDB原生查询

    var document = new BsonDocument{ { "$where","this.StarTime!=this.EndTime"}, { }, ...

  5. 工程下CmakeLists.txt

    2.工程下Cmake 本小节的任务是让上一小结的程序更像一个工程: 为工程添加一个子目录 src,用来放置工程源代码 : 添加一个子目录doc,用来放置这个工程的文档 hello.txt: 在工程目录 ...

  6. picker-view 组件 的value失效问题

    首先检查是不是漏了绑定关系 组件内 组件引用 如过还不行就用下面的方法,顺序问题 在给暂时列表赋值之后再对value赋值

  7. day 7-21 pymysql模块

    一.安装的两种方法 第一种: #安装 pip3 install pymysql 第二种: 二.链接,执行sql,关闭(游标) import pymysql user = input("use ...

  8. python之路--subprocess,粘包现象与解决办法,缓冲区

    一. subprocess 的简单用法 import subprocess sub_obj = subprocess.Popen( 'dir', #系统指令 shell=True, #固定方法 std ...

  9. Percona-xtrabackup 使用详解与原理

    现在有个需求需要对使用 innodb 的数据库进行热备.网上查了很多工具皆推荐 Percona-xtrabackup 于是就仔细了解调研一番. 我们可以前往 https://www.percona.c ...

  10. WPF中元素拖拽的两个实例

    今天结合之前做过的一些拖拽的例子来对这个方面进行一些总结,这里主要用两个例子来说明在WPF中如何使用拖拽进行操作,元素拖拽是一个常见的操作,第一个拖拽的例子是将ListBox中的子元素拖拽到ListV ...