iptables&NAT/DNAT小实验

首先保证yum挂载及配置正常:创建本地yum仓库

安装iptables服务

image.png

image.png

iptables服务的启动、停止、重启和随系统启动

为了让iptables单独生效,建议先关闭firewalld。

systemctl stop firewalld

开启iptables

systemctl start iptables

加入开机启动项

systemctl enable iptables

image.png

 


通过命令iptables  -L可以看出,默认情况下,针对INPUT规则链,所有流量是放通(ACCEPT)的。

image.png

如果通过iptables -L看到的非清空状态,那么可以使用iptables -F INPUT进行清空。

image.png

因此可以ping通这台虚拟机,并且可以使用xshell访问,同时也能访问apache的测试页面。

image.png

image.png

image.png

命令 (注意大小写)

iptables -P INPUT DROP

image.png

此时通过iptables -L可以看出针对INPUT这个规则链的策略就已经是DROP

image.png

外部设备就无法ping通该虚拟机,并且访问该vm的所有业务全挂!!!

image.png

apache网页无法访问

image.png

ssh也不行

image.png

 

现在需要放通外部访问本虚拟机的一些功能,包括ping、SSH和Apache服务,其他禁止

命令

iptables -I INPUT -p icmp -j ACCEPT

image.png

image.png

iptables  -L查看到一下内容

image.png

可以ping通

image.png

ssh及apache网页依旧不能访问

image.png

image.png

现在允许外部访问本机的ssh业务

命令

iptables -A  INPUT -p tcp --dport  22  -j  ACCEPT

iptables  -L查看

image.png

发现可以ssh了

image.png

 

image.png

image.png

允许访问80端口

iptables -I INPUT -p tcp --dport 80  -j  ACCEPT

iptables -L查看

image.png

可以进入apache网页了

image.png

 

1、如何标出顺序?

iptables -L  --line

image.png

2、如何在中间插入某条规则?

假设53端口

iptables -I INPUT  2  -p tcp --dport 53  -j  ACCEPT

image.png

3、过滤其实关联的是filter这个表,因此之前的命令可以等同于

iptables  -t  filter  -I INPUT  2 -p  tcp --dport 53  -j  ACCEPT

image.png

注意:

防火墙策略规则是按照从上到下的顺序匹配的,因此一定要把允许动作放到拒绝动作前面,否则所有的流量就将被拒绝掉,从而导致任何主机都无法访问我们的服务。

使用iptables命令配置的防火墙规则默认会在系统下一次重启时失效,如果想让配置的防火墙策略永久生效,还要执行保存命令

services  iptables save

image.png

 

删除命令

iptables -D  -t  表  规则链(大写)  编号/原来的语句

 iptables -D -t filter  INPUT 2 

 iptables -D -t filter  INPUT  -p  tcp --dport 53  -j  ACCEPT

 

 

NAT部分

只是做过滤似乎还不够带劲,iptables还有一个很强大的功能,NAT

1、像路由器一样,iptables可以针对IP地址的源IP和目的IP均进行转换。

SNAT(Source NAT),修改源IP地址,针对POSTROUTING这个规则链生效;

DNAT(Destination NAT),修改目的IP地址,针对PREROUTING这个规则链生效。

2、关联的是nat这个表(调用NAT功能)

 

windows 7(仅主机模式) ---------   

image.png

   ( 192.168.192.134)         

image.png

 

------(仅主机模式)RHEL/CentOS 7(桥接)两张网卡  192.168.192.134)  仅主机及桥接都自动获取即可

image.png

image.png

------桥接(192.168.123.72)

image.png

为什么现在无法访问互联网?

百度的IP地址是1.1.1.1

需要通过Windows 7访问百度,那么需要构造数据包,源IP地址是172.16.1.100,目的是1.1.1.1

Win7发现访问的不是同一网段的地址,因此需要求助网关(172.16.1.1),

数据发往网关之后,网关设备(Linux服务器),查询路由表,就往外网发送。

之后通过互联网的路由可以到达百度。百度需要返回网页数据给win7

源IP地址是1.1.1.1,目的是172.16.1.100

百度没有返回172.16.1.100的路由(因为172.16.1.100是私网地址) 

有去无回!!!!

 

做完NAT

百度的IP地址是1.1.1.1

需要通过Windows 7访问百度,那么需要构造数据包,源IP地址是172.16.1.100,目的是1.1.1.1

Win7发现访问的不是同一网段的地址,因此需要求助网关(172.16.1.1),

数据发往网关之后,网关设备(Linux服务器),查询路由表,完成NAT源地址的转换,往外网发送。

源地址是192.168.124.16(公网地址),目的是1.1.1.1

此时通过互联网的路由可以到达百度。百度需要返回网页数据给win7

源IP地址是1.1.1.1,目的是192.168.124.16(公网地址)

百度有路由返回,到达Linux设备后,设备再根据NAT表象,将192.168.124.16转换成172.16.1.100

源IP地址是1.1.1.1,目的是172.16.1.100,

就可以返回给win7

 

配置Windows 7和RHEL/CentOS 7的IP地址,并且相互能够ping通,

image.png

Windows 7无访问外网

image.png

确保Linux虚拟机能访问外网

image.png

 

安装iptables,关闭firewalld,确保iptables规则为空

 

关闭firewalld。

systemctl stop firewalld

iptables  -F   清除规则

iptables -L   查看规则


image.png

systemctl start iptables开启iptables

systemctl status  iptables查看状态是否开启

image.png

开启Linux的路由存储转发功能

通过命令cat  /proc/sys/net/ipv4/ip_forward查看,当回显数值为1的时候表示开启路由存储功能。

 

但是我这里是1就不用开,可能红帽7.4默认开着,最好一起做一遍

image.png

因此需要修改文件/etc/sysctl.conf,在尾部加入,net.ipv4.ip_forward = 1

image.png

通过命令cat  /proc/sys/net/ipv4/ip_forward查看,当回显数值为1的时候表示开启路由存储功能。

image.png

使用

sysctl -p

立刻生效

image.png

配置NAT

默认情况下,nat表为空

 

iptables -L -t nat

image.png

由于需要通过NAT来访问外网,需要针对源IP地址进行修改,使用SNAT,须要在POSTROUTING规则链中配置

将源为192.168.192.0/24的地址全部转换成192.168.123.72

注意:192.168.192.0以及192.168.123.72为我电脑虚拟机的仅主机以及桥接分配的ip,请不要照抄我的,自己查看虚拟机分配的仅主机以及桥接的ip

iptables -t nat -A POSTROUTING -s 192.168.192.0/24 -j SNAT --to-source  192.168.123.72

当数据包处理到POSTROUTING这个过程(规则链)的时候(POSTROUTING),调用nat表(nat功能)(-t nat),即针对数据报文中源IP地址未172.16.1.0/24的数据(-s 192.168.192/24),将其源ip地址进行转换(-j SNAT),转换成192.168.123.72(--to-source 192.168.123.72)

image.png


通过命令 iptables -L -t nat 查看

image.png

 

保存iptables状态

service iptables save

image.png

数据发往网关之后,网关设备(Linux服务器),查询路由表,完成NAT源地址的转换,往外网发送。

win7默认网关改为iptable服务的那台仅主机网卡ip

dns添加114.114.114.114

8.8.8.8

image.png

ping测试

image.png

访问网页测试

image.png

 

DNAT部分

(安装apache)

yum install httpd  

  安装不了请查看yum仓库是否挂载:mount /dev/cdrom  /mnt

或者配置错误:点我查看配置yum仓库

(仅主机模式)  ( 192.168.192.135)    

image.png

自动获取!

image.png

 

仅主机模式)RHEL/CentOS 7(桥接两张网卡(172.16.1.1)

            image.png

桥接自动获取到的ip

image.png                

仅主机自动获取到的ip

image.png

互联网(192.168.123.16) 

image.png

vim /etc/httpd/conf/httpd.conf 编辑文件

image.png

添加以下内容,更改为你得ip及域名

<VirtualHost 192.168.192.135>
     DocumentRoot  /var/www/html/www
     ServerName  www.mamublog.com
 <Directory /var/www/html/bbs>
         AllowOverride None
         Require all granted
 </directory>
 </VirtualHost>
<VirtualHost 192.168.192.135>
     DocumentRoot  /var/www/html/mamublog
     ServerName  mamublog.com
 <Directory /var/www/html/bbs>
         AllowOverride None
         Require all granted
 </directory>
 </VirtualHost>

image.png

在/var/www/html目录下

image.png

touch 命令创建mamublog 以及www文件夹

image.png

image.png

将网站源码文件上传到这两个文件夹中

image.png

image.png

更改hosts

vim /etc/hosts

image.png

vim /etc/sysctl.conf 

加入

尾部加入:net.ipv4.ip_forward = 1

image.png

通过命令

cat  /proc/sys/net/ipv4/ip_forward

查看,当回显数值为1的时候表示开启路由存储功能。

image.png

配置DNAT

iptables -t nat -L -PREROUTING

默认情况下是没有任何策略的

image.png

iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80 -j DNAT --to-destination 192.168.192.135:80

image.png

用二号访问ip也可以看到网页

image.png

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麻木博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值