iptables&NAT/DNAT小实验

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

安装iptables服务

iptables&NAT/DNAT小实验_第1张图片

iptables&NAT/DNAT小实验_第2张图片

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

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

systemctl stop firewalld

开启iptables

systemctl start iptables

加入开机启动项

systemctl enable iptables

iptables&NAT/DNAT小实验_第3张图片

 


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

iptables&NAT/DNAT小实验_第4张图片

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

iptables&NAT/DNAT小实验_第5张图片

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

iptables&NAT/DNAT小实验_第6张图片

iptables&NAT/DNAT小实验_第7张图片

iptables&NAT/DNAT小实验_第8张图片

命令 (注意大小写)

iptables -P INPUT DROP

image.png

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

iptables&NAT/DNAT小实验_第9张图片

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

iptables&NAT/DNAT小实验_第10张图片

apache网页无法访问

iptables&NAT/DNAT小实验_第11张图片

ssh也不行

iptables&NAT/DNAT小实验_第12张图片

 

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

命令

iptables -I INPUT -p icmp -j ACCEPT

image.png

iptables&NAT/DNAT小实验_第13张图片

iptables  -L查看到一下内容

iptables&NAT/DNAT小实验_第14张图片

可以ping通

iptables&NAT/DNAT小实验_第15张图片

ssh及apache网页依旧不能访问

image.png

iptables&NAT/DNAT小实验_第16张图片

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

命令

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

iptables  -L查看

iptables&NAT/DNAT小实验_第17张图片

发现可以ssh了

iptables&NAT/DNAT小实验_第18张图片

 

iptables&NAT/DNAT小实验_第19张图片

iptables&NAT/DNAT小实验_第20张图片

允许访问80端口

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

iptables -L查看

iptables&NAT/DNAT小实验_第21张图片

可以进入apache网页了

iptables&NAT/DNAT小实验_第22张图片

 

1、如何标出顺序?

iptables -L  --line

image.png

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

假设53端口

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

iptables&NAT/DNAT小实验_第23张图片

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

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

iptables&NAT/DNAT小实验_第24张图片

注意:

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

使用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(仅主机模式) ---------   

iptables&NAT/DNAT小实验_第25张图片

   ( 192.168.192.134)         

iptables&NAT/DNAT小实验_第26张图片

 

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

iptables&NAT/DNAT小实验_第27张图片

iptables&NAT/DNAT小实验_第28张图片

------桥接(192.168.123.72)

iptables&NAT/DNAT小实验_第29张图片

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

百度的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通,

iptables&NAT/DNAT小实验_第30张图片

Windows 7无访问外网

iptables&NAT/DNAT小实验_第31张图片

确保Linux虚拟机能访问外网

iptables&NAT/DNAT小实验_第32张图片

 

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

 

关闭firewalld。

systemctl stop firewalld

iptables  -F   清除规则

iptables -L   查看规则


iptables&NAT/DNAT小实验_第33张图片

systemctl start iptables开启iptables

systemctl status  iptables查看状态是否开启

iptables&NAT/DNAT小实验_第34张图片

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

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

 

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

image.png

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

iptables&NAT/DNAT小实验_第35张图片

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

image.png

使用

sysctl -p

立刻生效

image.png

配置NAT

默认情况下,nat表为空

 

iptables -L -t nat

iptables&NAT/DNAT小实验_第36张图片

由于需要通过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 查看

iptables&NAT/DNAT小实验_第37张图片

 

保存iptables状态

service iptables save

image.png

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

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

dns添加114.114.114.114

8.8.8.8

iptables&NAT/DNAT小实验_第38张图片

ping测试

iptables&NAT/DNAT小实验_第39张图片

访问网页测试

iptables&NAT/DNAT小实验_第40张图片

 

DNAT部分

(安装apache)

yum install httpd  

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

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

(仅主机模式)  ( 192.168.192.135)    

iptables&NAT/DNAT小实验_第41张图片

自动获取!

iptables&NAT/DNAT小实验_第42张图片

 

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

            iptables&NAT/DNAT小实验_第43张图片

桥接自动获取到的ip

iptables&NAT/DNAT小实验_第44张图片                

仅主机自动获取到的ip

iptables&NAT/DNAT小实验_第45张图片

互联网(192.168.123.16) 

iptables&NAT/DNAT小实验_第46张图片

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

image.png

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


     DocumentRoot  /var/www/html/www
     ServerName  www.mamublog.com
 
         AllowOverride None
         Require all granted
 
 

     DocumentRoot  /var/www/html/mamublog
     ServerName  mamublog.com
 
         AllowOverride None
         Require all granted
 
 

iptables&NAT/DNAT小实验_第47张图片

在/var/www/html目录下

iptables&NAT/DNAT小实验_第48张图片

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

image.png

image.png

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

iptables&NAT/DNAT小实验_第49张图片

iptables&NAT/DNAT小实验_第50张图片

更改hosts

vim /etc/hosts

iptables&NAT/DNAT小实验_第51张图片

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也可以看到网页

iptables&NAT/DNAT小实验_第52张图片

 

你可能感兴趣的:(Linux)