iptables filter表案例和iptables nat表的应有

iptables filter表案例:

 iptables小案例  vi /usr/local/sbin/iptables.sh //加入如下内容 #! /bin/bash ipt="/usr/sbin/iptables"            =  定义一个变量 $ipt -F                                 =  清空之前的默认规则 $ipt -P INPUT DROP            = 把进入的数据包拒绝掉     INPUT=进入的数据包 $ipt -P OUTPUT ACCEPT      =把转发出去的数据包放行   OUTPUT=本机出去的数据包 $ipt -P FORWARD ACCEPT    =默认放行FORWARD  $ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  =指定放行的状态    $ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT    = 指定放行的端口 $ipt -A INPUT -p tcp --dport 80 -j ACCEPT     = 放行80端口 $ipt -A INPUT -p tcp --dport 21 -j ACCEPT      =   放行21端口  icmp示例  iptables -I INPUT -p icmp --icmp-type 8 -j DROP

写完脚本后并且执行脚本,然后查看脚本的规则。

iptables -I INPUT -p icmp --icmp-type 8 -j DROP    (可以ping外网,但是禁止别人ping本机)

nat表的应用:

  • A机器两块网卡ens33(192.168.202.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。

需求1:可以让B机器连接外网

  • A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward
  • A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
  • B上设置网关为192.168.100.1

实现:

  1. 首先准备两台机器(若是怕实验失败,可先快照下)
  2. 在虚拟机hf上在添加一块网卡(已添加过一块虚拟网卡)

3.然后默认的是NAT模式,然后点击完成

4.在选择添加的网卡,并在右侧,选择LAN区段

选择LAN区段,就相当于我们给网卡连接到了内网的一个交换机上,这个交换机,用windows机器是无法连接的,这样这台机器和那台机器连上同一个内网的交换机,它们两者之间通信即可。

5.然后选择LAN区段中,刚设置的名称为“内网”

6.最后点击确定

7.选择克隆的虚拟机hf-02,并添加网卡——>在这台虚拟机上本身有一块网卡,因为已经编辑过IP,所以我们可以直接禁掉这个网卡

8.然后hf-02添加一块网卡,和hf添加网卡步骤一样相同,并选择LAN区段,中的“内网”,并确认

9.重启两台虚拟机

  • hf-02虚拟机中没有了windows所能连接的IP,所以就无法远程连接hf-02

10.打开hf虚拟机,输入ifconfig命令,会看到添加了一个网卡eno33554984

11.这里会看到eno33554984网卡,并没有IP,并设置IP(新建那个当私网IP,你可以跟跟视频中的一样,也可以自己设置)

设定IP有两种方法:

  • 1.可以命令行添加IP
    • 命令行ifconfig ens36 192.168.100.1/24
  • 2.也可以设置配置文件,设置配置文件和设置虚拟网卡一样的步骤
    • 将eno16777736网卡配置文件复制成eno33554984,并修改里面的IP和NETMASK即可其他都不需要管

12.执行命令行ifconfig ens36 192.168.100.1/24,然后运行ifconfig命令,会看到eno33554984网卡有了IP

   手动命令行ifconfig ens36 192.168.100.1/24,设置IP

13.但是eno33554984网卡的IP,在虚拟机一重启,那么IP就会没了——>若想永久生效,就去编辑配置文件,但默认配置文件是不存在的,需要拷贝eno16777736网卡的配置文件,然后更改其中的内容

14.因为hf-02虚拟机无法远程,所以只能在虚拟机上操作

15.用ifconfig命令查看hf-02虚拟机的网卡,会发现也没有IP地址

16.这里若想完全禁掉eno16777736网卡,可执行ifdown eno16777736命令(这一步可省略,若一直失败的话,只要在设置好IP,两个私网IP互通即可)

但有时会提示MAC地址不对,这时候进网卡配置文件中

  • 方法一:注释掉HWADDR参数
  • 方法二:看是否存在DEVICE参数。若没有,则增加上DEVICE参数——>(自己的是没有的)
  • 方法三:直接删除之前的网卡,新建虚拟网卡

17.给eno33554984网卡设置IP地址,命令行ifconfig ens36 192.168.100.100/24

18.然后用ifconfig命令,查看新建的网卡IP地址

19.这里会看到hf-02虚拟机中的eno16777736网卡,但是是无法ping通的——>若为了保险这里可以执行命令ifdown eno16777736

20.这里会看到hf-02虚拟机中的eno16777736网卡,但是是无法ping通的——>若为了保险这里可以执行命令ifdown eno16777736

21.这时候,两台虚拟机中新建网卡的IP互相尝试互相ping通

22.这时hf机器上需要打开路由转发 ——>想使用nat表,使用网络的转发,必须修改内核参数

  • 默认/proc/sys/net/ipv4/ip_forward这个文件为0——>这个文件为0,表示这个文件没有开启内核转发

23.将文件/proc/sys/net/ipv4/ip_forward默认改为1,打开端口转发

  • 要想实现nat应用,必须打开端口转发

24.在hf虚拟机上增加一条规则iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

25.实现100.0网段可以上网,做一个欺骗

26.给hf-02设置网关(数据包过去,从hf到hf-02,从hf-02到hf,设置好默认网关)

27.然后hf-02尝试是否能ping通192.168.202.130,这就意味着可以和外网通信了

28.设置DNS,在/etc/resolv.conf中设置,添加nameserver 119.29.29.29

29.这时候就可以ping通外网了——>但物理机还是无法ping通hf-02的虚拟机IP地址

30.需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口

  • A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward
  • A上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
  • A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130
  • B上设置网关为192.168.100.1

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏落花落雨不落叶

canvas画简单电路图

60311
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4828
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6738
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2142
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2516
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2707
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

31210
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5356
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4828
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

3985

扫码关注云+社区