iptables nat 表应用

1、iptables nat 表应用

上图的操作,说白了就是要做一个路由器,路由器可以上网,电脑就可以上网。
先操作一下前期准备,打开虚拟机,将两个Linux窗口打开,然后分别拍一张快照,命名为“iptables 小实验前”。此举是方便实验过程出现不可挽回的错误,可以通过快照恢复,然后重新做实验。lyslinux-02 是之前克隆的虚拟机。

右击上图红色框框 “编辑虚拟机设置” 的位置 ,跳出弹框,选择“添加”,网络适配器,下一步,见下图,

保持默认,点击“完成”,见下图,

接着按下图箭头指示操作,见下图,

这边选择“LAN 区段”,相当于给这个网卡连到了一个内网的交换机上,Windows机器和这个交换机是连不上的。这样的话,这台机器和另一台的机器连上同一个内网的交换机,它们两者之间就可以通信了。
接着在“LAN 区段”上选择刚刚设置的区段,见下图,

这个机器的网卡就添加好了。
接着操作另一台机器的网卡,右击上图红色框框 lyslinux-02 的位置 ,选择“设置”,跳出弹框,选择“添加”,网络适配器,下一步,见下图,

操作完毕,点击“完成”,见下图,

然后往下操作,选择“网络适配器2”,在“LAN 区段”这边选择刚刚设置的 LYS ,再点击“确定”,见下图,

以上操作就是为了让这两台机器,选择同一个交换机。
准备工作做好了,下面就是启动这两台机器。启动完成之后,使用 PuTTY 远程登录lyslinux-01,输入命令 ifconfig ,回车,见下图,

上图红色框框的内容,就是刚刚增加的网卡,现在要给 ens37 这个网卡配置一个 IP。我们可以通过命令行给 ens37 添加 IP ,也可以设置配置文件,设置配置文件和设置虚拟网卡的步骤是一样的。将 ens33 的网卡配置文件复制一份到 ens37 里面,然后进入配置文件修改 IP、NETMASK 就可以,不用设置 DNS 和网关这些。更改配置文件的方式比较复杂,这边演示比较简单的方法,输入命令 ifconfig ens37 192.168.100.1/24 ,回车,见下图,

可以看到,成功的给网卡 ens37 配置了 IP 。当然这个 IP 一重启就会失效,要想 IP 永久生效,就需要编辑配置文件。
对于另一台机器,因为刚刚把网络连接关闭了,无法远程登录,所以要回到虚拟机上操作,见下图,

使用 ifconfig 命令还可以看到 ens33 这个网卡的 IP,它虽然在,但还是不能连接网络的,为了保险起见,使用命令 ifdown ens33 来关闭掉,见下图,

这样就看不到 ens33 的 IP 了。同样的方法,现在给这台机器的 ens37 网卡设置 IP,见下图,

IP 设置成功。现在来测试一下,连接一下lyslinux-01 这台机器的网络,输入命令 ping 192.168.100.1 ,回车,见下图,

上图显示网络没有连接成功,应该是 lyslinux-01 这台机器的网络有点问题,回到 PuTTY 上查看一下,见下图,

发现 ens37 的IP地址又不见了,这时候要重新给它配置 IP ,见下图,

然后再回到虚拟机上去连接网络,见下图,

可以看到网络连接成功了。
接着去 lyslinux-01 这台机器上连接 lyslinux-02的网络,输入命令 ping 192.168.100.100 ,回车,见下图,

也可以连接网络了。
现在总结一下,这个nat表应用的准备工作:
01机器两块网卡 ens33(192.168.218.128)、ens37(192.168.100.1),ens33 可以上外网,ens37仅仅是内部网络,02机器只有ens37(192.168.100.100),和01机器ens37可以通信互联。
现在来检查一下,Windows 的 cmd 能不能连接这两个 IP,见下图,

可以看到,都是不能连接的。现在来看一下 lyslinux-02 机器不能连接 192.168.218.128,也不能连接 192.168.218.1 ,也不能上外网,见下图,

可以看到也都是不行的。
为了实现需求1:可以让02机器连接外网。
在01机器上操作,这个文件 /proc/sys/net/ipv4/ip_forward 里面的内容,默认是 0,表示它没有开启内核转发,需要改成 1 。打开路由转发,输入命令 echo "1">/proc/sys/net/ipv4/ip_forward ,回车,即可将文件更改为 1 。见下图,

以上操作叫做打开端口转发。
接着在01机器上增加一条规则,执行命令 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE ,回车,见下图,

有了这条规则,才可以实现 192.168.100.0 这个网段上网。
接下来在02机器上设置网关为 192.168.100.1 ,输入命令 route add default gw 192.168.100.1,回车,见下图,

设置完成后,也可以实现连接 192.168.218.1 这个网卡。这意味02机器可以跟外网相通了。

接着设置一下 DNS,看看能不能联网,输入命令 vi /etc/resolv.conf ,回车,见下图,

输入上图红色框框的内容,保存后退出。119.29.29.29 是公共的 DNS,然后来看一下能不能连接,见下图,

发现是可以连接的,也可以连接外网。
到这边,我们的目的就达到了,让02机器也可以连接外网。现在在Windows上面使用cmd来查看一下,见下图,

发现Windows还是不能连接 192.168.100.100 。这边可以将01机器理解为路由器,02机器是手机、电脑等可以联网的机器。

需求2:03机器只能和01机器通信,让03机器可以直接连通02机器的22端口。这步操作叫 端口映射。
目前为止,02机器还只能在虚拟机上操作,不能远程登录。现在来实现02机器的远程登录,01机器上打开路由转发,同样的, echo "1">/proc/sys/net/ipv4/ip_forward 这个命令上面已经操纵过,所以这一步省略。接着往下操作,我们需要把之前的规则删除掉,以免影响到后面的操作,输入命令 iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE ,回车,见下图,

接着在01机器上增加两条规则,执行命令 iptables -t nat -A PREROUTING -d 192.168.218.128 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22,回车。这个命令做一个端口转发,将目标IP 192.168.218.128 和端口 1122,转到IP 192.168.100.100 和端口 22,这边操作的是进去的包。还有一个回来的包,执行命令 iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.218.128 ,回车。这个命令将原IP 192.168.100.100 改成目标IP 192.168.218.128 。见下图,

以上操作完成之后,还需要在02机器上设置网关为 192.168.100.1,这一步前面也操作过了,这边也可以省略。
以上操作完成之后,就可以通信了。现在来验证一下,新建一个PuTTY回话窗口,具体操作见下图,

作为测试的窗口,其他地方就不做设置了。接着打开新的PuTTY窗口 test100,见下图,

这边选择“是(Y)”,接着登录上去,查看IP,见下图,

可以看到ens37的IP是 192.168.100.100 ,接着看看能不能连接外网,见下图,

此时的Windows还是不能连接 192.168.100.100 ,见下图,

2、iptables 规则备份和恢复

正常情况下,使用命令 service iptables save ,会把规则保存到 iptables 的配置文件中 /etc/sysconfig/iptables 。如果不想保存在配置文件中,可以使用重定向命令,将规则重定向到一个文件中,文件名可以随意命名。见下图,输入命令 iptables-save > /tmp/ipt.txt ,回车,

上面保存成功之后,可以看到nat表里面才有规则,filter表里面是空的。
先将规则清除掉,输入命令 iptables -t nat -F,回车,见下图,

恢复刚才的备份,使用命令 iptables-restore < /tmp/ipt.txt ,restore 和 save 正好是相反的。
要想重启系统之后,就能马上加载规则,最好还是把规则保存在配置文件 /etc/sysconfig/iptables 中。

原文地址:http://blog.51cto.com/13503302/2095630

时间: 2024-10-02 00:52:25

iptables nat 表应用的相关文章

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 扩展 iptables应用在一个网段 http://www.aminglinux.com/bbs/thread-177-1-1.html sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html iptables限制syn速率 http://www.aminglinux.com/bbs/thre

10.15-10.18 iptables filter表案例 iptables nat表应用

七周四次课(3月22日) 10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 扩展1. iptables应用在一个网段  http://www.aminglinux.com/bbs/thread-177-1-1.html2. sant,dnat,masquerade   http://www.aminglinux.com/bbs/thread-7255-1-1.html3. iptables限制syn速率  http://www.

七周四次课 iptables filter表案例以及iptables nat表应用

iptables小案例将80端口,22端口和21端口放行,22端口需要指定IP段,只有指定IP段访问才可以.其他段一概拒绝.我们可以用一个脚本来实现. #!/bin/bashipt="/usr/sbin/iptables"ipt是定义了一个变量,如果要执行命令,要写全局绝对路径,这样在脚本当中才不会因为环境变量问题导致命令无法执行.所以以后路写shell脚本时一定要写全局绝对路径.我们来定义一个变量,目的就是后面有许多的地方要加载它,如果写很长一段命令会很繁琐.所以我们要定义一个变量,

Linux学习笔记(三十二)iptables filter表案例、 iptables nat表应用

一.iptables filter表案例 需求:将80.20.21端口放行,对22端口指定特定的ip才放行 以下为操作方法: vim  /usr/local/sbin/iptables.sh    //加入如下内容 #! /bin/bashipt="/usr/sbin/iptables"   //定义一个变量,写iptables的绝对路径 $ipt -F                //清空规则 $ipt -P INPUT DROP        //添加默认的INPUT规则 $ip

三十二、iptables filter表小案例、iptables nat表应用

一.iptables filter表小案例 需求:只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后针对192.168.188.0/24开通22端口,对所有网段开放80端口,对所有网段开放21端口. 这个需求写一个脚本,内容如下: # vi /usr/local/sbin/iptables.sh #! /bin/bash ipt="/usr/sbin/iptables"      //ipt:定义了一个变量,应写绝对路径. $ipt -F $ipt -P

iptables filter表案例及iptables nat表应用

iptables小案例: 只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后针对192.168.1.0/24开通22端口,对所有网段开放80端口,对所有网段开放21端口. 由于这个需求有多条规则,所以最好写成脚本的形式,操作示例如下: vi /usr/local/sbin/iptables.sh 加入如下内容,保存退出. 脚本内容: ipt="/usr/sbin/iptables" $ipt -F $ipt -P INPUT DROP $ipt -P OU

Linux centos7iptables filter表案例、iptables nat表应用

一.iptables filter表案例 vim /usr/local/sbin/iptables.sh 加入如下内容 #! /bin/bash ipt="/usr/sbin/iptables" $ipt -F $ipt -P INPUT DROP $ipt -P OUTPUT ACCEPT $ipt -P FORWARD ACCEPT $ipt -A INPUT -m state --state ERLATED,ESTABLISHED -j ACCEPT $!ipt -A INPUT

十(4)iptables语法、iptables filter表小案例、iptables nat表应用

                                    iptables语法 filter表: INPUT链:作用于进入本机的包 OUTPUT链:作用于送出本机的包 FORWARD链:作用于和本机无关的包 nat表: PREROUTING链:作用是包在刚刚到达防火墙时改变包的目标地址 OUTPUT链:改变本地产生的包的目标地址 POSTROUTING链:作用是在包将离开防火墙时改变包源地址 1.查看iptables规则 iptables -nvL  (此时默认查看filter表,

iptables nat表转发

1.上外网 环境 nat表具有转发的功能,让服务器具有路由器的功能. 两台机器A和B. A有两块网卡,网卡a:192.168.88.130   网卡b:192.168.100.2 B有一块网卡,网卡c:192.168.100.2 192.168.88.130是可以上外网的,网卡c只能连通网卡b,并不能上网. 1.1 目标: 让机器B通过机器A转发,达到可以上网的功能. 1.2  nat转发 上外网 1.给两台机器都添加1块网卡,自定义lan段 2.设置机器A新网卡的IP地址 # ifconfig