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 条评论
登录 后参与评论

相关文章

来自专栏偏前端工程师的驿站

CentOS6.5菜鸟之旅:安装VirtualBox4.3

一、下载VirtualBox的RHEL软件库配置文件               cd /etc/yum.repos.d wget http://downloa...

1677
来自专栏bboysoul

记载一次删除mysql的默认数据库mysql的过程

今天终于尝到了什么叫删库跑路,妈的真的悲剧,早上想在树莓派里安装个wordpress,想放点街舞视频给大家分享一下,突然发现数据库里面还有一个以前的论坛数据库,...

613
来自专栏kangvcar

Git - 如何修改开源项目并推送给作者 / 克隆远程仓库到本地

1072
来自专栏云计算教程系列

如何在Centos系统上安装Wordpress

WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。Alexa排行前100万的网站中...

1233
来自专栏魏艾斯博客www.vpsss.net

lnmp 添加-列出-删除虚拟主机相关命令

772
来自专栏分布式系统和大数据处理

linux上配置ssh实现免密登录

当有多台服务器彼此进行通信时,可以通过使用ssh来免去输入密码的步骤。这篇文章将以两台服务器作为范例,演示如何通过ssh进行登录。

932
来自专栏惨绿少年

ssh密钥创建分发(端口号非22)&脚本实现自动创建分发密钥

1.1 服务端端口号变化了,如何基于秘钥连接 1.1.1 环境准备 实验环境: [root@test ~]# cat /etc/redhat-release C...

2120
来自专栏IT可乐

VMware 克隆多台Linux机器并配置IP

1、查看并分配虚拟网络   我们首先要知道 VMware 三种网络模式的区别。   ①、Bridged(桥接模式):就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥...

2278
来自专栏黒之染开发日记

centos安装mysql时未设置root密码,导致无法登录

昨天给公司内网开发用服务器装系统,然后装mysql居然花了一天,昨天一天都是启动mysql时提示:The server quit without updatin...

814
来自专栏王小雷

VirtualBox NAT host-only高级网络配置

概述:VirtualBox NAT host-only高级网络配置,虚拟机既可以相互通信也可以上网。同时,添加NAT方式让虚拟机上网,添加host-only方式...

34210

扫码关注云+社区