博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
七周四次课(11月30日) 10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用...
阅读量:6800 次
发布时间:2019-06-26

本文共 2757 字,大约阅读时间需要 9 分钟。

hot3.png

10.15 iptables filter表小案例

 

iptables小案例

需求

把80端口,22端口,21端口放行。但是22端口指定IP段访问

vi /usr/local/sbin/iptables.sh   加入如下内容

#!/bin/bash

ipt="/usr/sbin/iptables"  定义变量,目的为了以后加载它

$ipt -F    :首先清空规则

$ipt -P INPUT DROP  : 定义策略行为       DROP 阻断

$ipt -P OUTPUT ACCEPT :定义策略行为  ACCEPT 放行

$ipt -P FORWARD ACCEPT :定义策略行为  ACCEPT  放行

加入新规则

ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT     加该条命令是为了通信更顺畅

指定状态,针对这些状态放行。ESTABLISHED=保持连接 RELATED=两个机器通信完,还继续保持一些额外的通信。

ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT

指定端口,网段数据包放行

ipt -A INPUT -p tcp --dport 80 -j ACCEPT  放行指定端口

ipt -A INPUT -p tcp --dport 21 -j ACCEPT  放行指定端口

163447_YCAg_3708811.png

icmp 示例

icmp  会产生一个效果,ping外面的网络会通,但是ping本机不通,只是禁ping。

iptables -I INPUT -p icmp --icmo-type 8 -j DROP

163452_37xj_3708811.png

 

10.16 iptables nat表应用(上)(中)(下)

nat表应用

A机器两块网卡 ens33(192.168.133.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

需求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 --to192.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

虚拟机上操作

有两个虚拟机

在虚拟机A上先添加一块网卡,默认选项

163503_sTG0_3708811.png

然后在新添加网卡的右侧选择LAN 区段。

 LAN 相当于把网卡连到内网交换机上去,是真机连不上的。

163508_Y3Hb_3708811.png

在虚拟机B上也要添加一块网卡,把本来的禁用掉。然后在选择LAN的时候要选择同一个区段

163512_EHEy_3708811.png

 

需求1的流程

 

启动AB 两机器

查看A机器 给新增加的网卡增加ip

163516_Sz9S_3708811.png

可以通过ifconfig 命令来手动命令直接设置,但是重启就没有了。如果要永久 就要更改配置文件新创建一下

语法 ifconfig ens37 IP/端口

给A机器ens37 设置为192.168.100.1

163521_eu66_3708811.png

163525_Rymb_3708811.png

给B机器设置ip 192.168.100.100

163531_JKBe_3708811.png

之后互相ping一下。ping通,说明准备工作完成了。B机器处于不能连接外网。A机器处于可以连接外网

之后把A机器 打开路由转发,改下内核配置

/proc/sys/net/ipv4/ip_forward  默认是0 关闭状态

163535_2fJS_3708811.png

之后通过命令

echo "1">/proc/sys/net/ipv4/ip_forward 启动路由转发

163541_fcUp_3708811.png

之后在A机器上增加一条natfilter规则,有了这条规则就可以实现上网了

iptables -t nat -A POSTROUTING -S 192.168.100.0/24 -o ens33 -j MASQUERADE

就是想让100.0 IP 可以上网,做一个伪装

163715_9orf_3708811.png

163720_PpPE_3708811.png

之后在B机器上做一个网关为,192.168.100.1

可以通过 route 命令设置网关

route -n 查看当前网关

route add default gw 网关IP

163736_iDP9_3708811.png

之后B机器去ping A机器连接外网的网卡 192.168.133.130。发现能通,就意味着B机器可以跟外网通信了。

163746_HQXf_3708811.png

我们设置下DNS 

编辑/etc/resolv.conf  能ping通,就说明可以上外网了。

163755_ANW2_3708811.png

163757_2YNl_3708811.png

163800_2Ms5_3708811.png

但是其他机器还是连不上B机器。只能通过A机器连B机器。等于A机器起到一个路由器的功能

 

需求2 流程

通过A机器跳转到B机器。 端口映射 

把100.100的端口映射出来,映射成其它的端口

第一步 打开A机器的路由转发功能

echo "1">/proc/sys/net/ipv4/ip_forward 启动路由转发

给网卡增加IP 已有可忽略

增加两条规则

第一条

出去进入B机器的包

iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100

 DNAT 转发行为  进入到 192.168.133.130/1122 的数据包 转发到 192.168.100.100/22 

163812_MDKb_3708811.png

第二条

B机器返回A机器的包

iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130

把B机器192.168.100.100发出的包伪装由 192.168.133.130 ip发出  因为Windows源ip只识别与它可以通信的ip

163815_u3ue_3708811.png

 

给B机器要设置网关

163819_DPvi_3708811.png

之后远程连接B机器,

写的IP 需要A机器的IP 端口也是

163822_Vwsz_3708811.png

163827_rtOv_3708811.png

也是可以跟外网通信的。

163829_nUWi_3708811.png

可以通过w查看源IP

163832_KTj6_3708811.png

转载于:https://my.oschina.net/u/3708811/blog/1582251

你可能感兴趣的文章
Java:集合类的区别详解
查看>>
linux 内核库函数 【转】
查看>>
asp.net 判断是否是日期格式,判断是否是长日期格式,短日期格式,时间判断,日期判断,全部格式...
查看>>
理解 OpenStack Swift (3):监控和一些影响性能的因素 [Monitoring and Performance]
查看>>
聚会留念
查看>>
iOS:在使用Cocoapods安装shareSDK时出现的link路径错误
查看>>
Asp.net防止页面被多次提交
查看>>
ASP.NET MVC5+EF6+EasyUI 后台管理系统(29)-T4模版
查看>>
敏捷的 "道"
查看>>
ZigBee On Windows Mobile--1.背景和结构
查看>>
这两天说到的苹果软件中毒是个什么情况?
查看>>
IOS的消息传递机制,使用NSNotificationCenter进行通信,很实用
查看>>
开始使用Emacs
查看>>
Qt Creator + MinGW 在windows 下的调试
查看>>
sql server中filegroup与partition解析
查看>>
转 Spring.NET 与 NHibernate 的整合
查看>>
TNS-01190故障的处理
查看>>
C++ Exercises(十)
查看>>
《kali linux 渗透测试初级教程》免费下载
查看>>
[Oracle]PDB Clone 方法
查看>>