linux下利用iptables配置路由器

本文介绍了一个网络安全课程的小实验,通过配置Ubuntu虚拟机作为路由器,使Win7虚拟机能在HostOnly模式下连接互联网。实验涉及iptables配置及IP转发设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个任务其实是前段时间《网络安全》课程的一个小实验。实验的要求是在virtualbox中运行两台虚拟机,一台linux机器用作路由器(该机器配置两个网卡,一个连接到外网,一个连接到内网),一台windows机器连接到内网,通过linux的路由器功能上网。

首先配置下实验环境。实验中真机为win7系统,DNS是202.38.64.56,虚拟机为32位Ubuntu(1404)主机一台。32位win7主机一台。

虚拟机win7有一张网卡,上网模式是Host Only,ip地址是192.168.56.102(连接到内网192.168.56.0/24)。虚拟机Ubuntu有两张网卡:eth0的上网模式是NAT ,ip地址是10.0.2.15(用该ip模拟公网ip,因为它连接到外网)。eth1的上网模式是Host Only,ip地址是192.168.56.101(连接到内网192.168.56.0/24)本实验用Ubuntu主机做路由器,使虚拟机win7在Host Only模式下能上网.。

然后简单了解下iptables的基本使用:

iptables [-t表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]

几个注意事项:

不指定表名时,默认表示filter表

不指定链名时,默认表示该表内所有链

除非设置规则链的缺省策略,否则需要指定匹配条件

下面是对两个虚拟机的配置:

配置虚拟机win7:
设置ip 192.168.56.102
子网掩码 255.555.555.0
默认网关 192.168.56.101(该ip地址对应Ubuntu的eth1的host only的ip地址)
首选DNS服务器 172.17.1.6(与真机上的DNS一致)

 

配置Linux虚拟机:

以root用户执行:
modprobe ip_tables
modprobe ip_nat_ftp

在LINUX启动时,ip_tables和iptable_nat两个模块在内核中并不是默认的启动项,因此上述两条语句就是先将这两个必须的模块启动。

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

设置防火墙规则,对于输入输出和转发的包均设置为接受状态。

建立伪装和IP转发:
iptables -t nat -A POSTROUTING -o eth0 -jMASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT

参数说明:
-t nat:调用NAT表,调用这个说明遇到了产生新的连接的包。
-A POSTROUTIN:指定信息包打算离开防火墙时改变它们的规则,意即使用NAT。

-ieth1:输入接口为eth1。
-o eth0:输出接口为eth0。
-j MASQUERADE:指定进行地址伪装,意即将内网地址伪装成外接口eth0的地址进行传输。
这两条命令的意思就是将内网向外连接的数据包(从eth1接收到的数据包)的地址转换为外网接口的地址并从外接口(从eth0接口转发)转发。


修改/etc/sysctl.conf中的net.ipv4.ip_forward = 1

echo '1'>/proc/sys/net/ipv4/ip_forward

执行sysctl -p,使内核参数修改生效。


根据实验原理所述的配置方法,对Ubuntu和win7虚拟机进行相应配置,使win7虚拟机能够通过Ubuntu虚拟机开启的路由器功能连接到外网。得到实验结果如下:





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值