linux之iptables 网络型防火墙(二)

iptables  网络型防火墙

Linux主机扮演为网络防火墙(需要开启网络转发

 

 

 

 

 

1.网络转发forward 准备三台虚拟机 内网10.10 网关(防火墙)10.11  20.11   外网20.20

1.在网关路由器 (转发),检查是否安装ipatbles  解覆盖

rpm -qa | grep iptables

yum -y install iptables  iptables-services安装

firewall转为iptables:

systemctl  unmask  iptables---解覆盖,即显现iptables

systemctl  mask  firewalld ---覆盖firewalld

systemctl  stop  firewalld

systemctl  disable  firewalld

systemctl  restart  iptables

systemctl  enable  iptables

或者写一个bash     vim  iptables   把这六条写进去即可

bash iptables               执行

 

 

 

 

2.网关路由添加网卡,开启路由转发 三台机器设置ip地址,网关    iptables  -F 清空

在虚拟机增加网络适配器

cp ifcfg-ens33  ifcfg-ens38          网关IP  10.11    20.11

vim  ifcfg-ens38              修改四项name uuid  ip  gw

 

 

 

 

 

 

 

 

 

 

 

开启路由转发:

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

sysctl -p

或者开启永久转发

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

 

 

 

 

 

 

 

 

 

 

iptables  -F 清空防火墙

 

并设置客户端192.168.10.10ip地址以及网关, 20.10httpd服务器同理

增加 GATEWAY=192.168.10.11                GATEWAY=192.168.20.21

3.在 外网设置ip20.10 安装httpd,设置网页首页,启动httpd服务

vim /etc/sysconfig/network-scripts/ifcfg-ens33          --设置ip

 

yum -y install  httpd

vim /var/www/html/index.html

cat index.html

 

 

 

 

 

 

 

4.在  网关 执行iptables -F,在内网192.168.10.10上查看网页

curl 192.168.20.10      可查看到20.10首页

 

 

 

 

5.在  网关 设置FORWARD默认策略为 DROP拒绝, 也不可远程连接

iptables -P FORWARD DROP         拒绝路由转发

10.10上curl 192.168.20.20       不可查看到首页

6.在  网关设置规则FORDWARD转发

iptables -I FORWARD -s 192.168.10.10 -d 192.168.20.20 -p tcp --dport 80 -j ACCEPT

filter表 forward链第一行插入 来源10.10 目的地址20.20  tcp协议  80端口  通过

iptables -A FORWARD -s 192.168.20.20 -d 192.168.10.10 -p tcp --sport 80 -j ACCEPT

filter表 forward链最后加入 来源10.20 目的地址20.10  tcp协议  80端口  通过

 

 

 

 

7.在192.168.10.10内网上  curl 192.168.20.10查看外网的网页

curl 192.168.20.10            查看外网分享的网页    

 

 

 

 

2.)SNAT 源地址转换  应用环境  工作原理示意图

SNAT策略的典型应用环境

局域网主机共享单个公网IP地址接入Internet

 

 

 

 

SNAT策略的原理

源地址转换,Source Network Address Translation

修改数据包的源地址

 

 

 

 

 

 

 

过程

1.局域网用户10.10主机发送数据   源地址10.10   目的地址22.33.44.55

2.经过网关   网关通过目的地址ip辨别路由  开始修改源地址改为网关外网的IP地址10.11

3.网关做映射  记录信息 如果有信息发给10.11  那么直接发给用户10.10 因为SNAT做了两者的对应关系  经过路由防火墙直接发送给内网客户端  

4.源地址已改 为网关对外网的ip10.11  目标地址为外网web服务器  发送成功

5.当外网返回信息给内网客户端  依据之前对应关系(路由映射)直接发给内网客户端

1.)确认三台主机IP  内网默认网关  网关路由器开启路由转发功能

内网IP 192.168.10.10    下一跳网关192.168.10.11

网关路由器IP 192.168.10.11     192.168.20.21

外网 ip 192.168.20.10       下一跳网关 192.168.20.11

 

保留内网的GW去掉外网的ens33 中GW网关       

内网10.10                         外网20.10

 

 

 

 

开启永久转发

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

 

 

 

 

 

 

2.)网关服务器设置POSTROUTING选择后处理   源地址转换    (外网ip固定)

 

 

 

 

iptables  -F  清空

 

iptables -t nat -I POSTROUTING -s 192.168.10.0/24 -o ens39 -j SNAT --to-source 192.168.20.11

nat 表的 postrouting链  数据包来源内网网段10.0  通过外网ens39网卡ip出去   那么源地址 转换为 20.11     可写多个网段 空格隔开

 

 

 

 

来字10.0网段的数据包    到任何地方   把原地址改为20.11

 

内网检测

curl 192.168.20.10

 

 

 

 

查看日志

cd /var/log/httpd/

cat access_log                         --查看

 

 

 

 

小结:

 

 

 

 

第一个为  通过 ens37网卡出去  源地址  都伪装 218.29.30.31

第二个为  通过 ens37网卡出去  源地址  都改为 218.29.30.31

3.)地址伪装MASQUERADE                    源地址转换    (外网ip不固定)

MASQUERADE —— 地址伪装

适用于外网IP地址非固定的情况

对于ADSL拨号连接,接口通常为 ppp0、ppp1

SNAT规则改为MASQUERADE即可

 

Iptables  -F  清空 或删除

iptables -t nat -D POSTROUTING 1    --删除nat表 postrouting 第一条

iptables -t nat -D POSTROUTING 2

 

 

 

 

 

iptables -t nat -I POSTROUTING -s 192.168.10.0/24 -o ens39 -j MASQUERADE

nat表 postrouting转发链  数据包来自10.0网段   通过外网ens39网卡ip出去   那么源地址 伪装为 20.11  

 

3.)DNAT  PREROUTING路由选择之前   地址转换  应用环境  工作原理示意图

DNAT策略的典型应用环境

Internet中发布位于   企业局域网内的服务

 

 

 

 

DNAT策略的原理

目标地址转换,Destination Network Address Translation

修改数据包的目标地址

 

 

 

 

1.外网的客户机访问内网  会经过网关防火墙, 在网关上设置防火墙规则

2.网关 在路由判断之前  之前目的地址20.11  然后修改目标地址为10.10

3.DNAT也做记录信息  有了对应关系

4.内网回复信息 依据对应关系 封装成报文  直接把数据发出去

(外网客户机访问内网,只能看到外网路由端口)

 

前提条件内网能够访问外网  内外网设置ip 并指向网关 网关服务端开启路由转发

内网IP 192.168.10.10    下一跳网关192.168.10.11

网关路由器IP 192.168.10.11     192.168.20.21

外网 ip 192.168.20.10       下一跳网关 192.168.20.11

 

内网指向网关外网指向网关

内网10.10                         外网20.10

 

 

 

 

 

 

 

 

开启永久转发

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

 

 

 

 

 

 

 

2.)内网安装httpd 写一个测试网页   外网curl 查看内网

yum -y install httpd

vim /var/www/html/index.html           --在网页根路径下写测试网页

 

 

 

 

 curl 192.168.10.10

 

 

 

 

3.)网关 服务器设置   目标地址转换   端口

 

 

 

 

iptables  -F  清空

iptables -t nat -A PREROUTING -i ens39 -d 192.168.20.11 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.10

nat表 PRErouting路由转发之前   连接外网的ip网卡39  目的地址20.11 tcp协议 80端口  -jDNAT目标地址转换      转换的内网IP地址10.10

 

iptables -t snat -A PREROUTING -i ens39 -d 192.168.20.11 -p tcp --dport 808 -j DNAT --to-destination 192.168.10.10:80

nat表 PRErouting路由转发之前   连接外网的ip网卡39  目的地址20.11 tcp协议 访问808端口(不存在)  -jDNAT目标地址转换      则转换为访问内网IP地址10.10:80    (访问10.10的80端口)

 

 

 

 

4.)外网访问内网测试

curl 192.168.20.11

 

 

 

 

 

4.TCP Wrappers

TCP Wrappers概述

 

 

 

 

1.)保护机制的实现方式

●方式1 :通过tcpd主程序对其他服务程序进行包装

●方式2 :由其他服务程序调用libwrap.so.*链接库

2.)Idd命令, 确定是否支持模块libwrap.so, 只有支持的才能通过/etc/hosts.allow deny  两个文件进行访问控制

●例如: Idd  $(which vsftpd)  代表 把这个括号里命令执行结果放到ldd

which sshd                --查看sshd  服务的主程序

ldd $(which sshd)          --查看sshd是否支持模块libwrap.so,

 

 

 

 

ldd $(which sshd) | grep wrap    --查看依赖的wrap函数库

 

 

 

 

3.)设置访问策略应用  控制策略的配置文件/etc/hosts.allow   应用顺序 优先级

1.配置文件位置

/etc/hosts.allow     --允许

/etc/hosts.deny          --拒绝

2.策略的应用顺序

检查hosts allow, 找到匹配则允许访问

否则检查hosts.deny,找到则拒绝访

两个文件中均无匹配策略,则默认允许访问

两个文件中均有匹配策略,则默认允许访问

 

3.设置访问控制策略

策略格式服务列表:客户机地址列表

服务列表      

多个服务以逗号分隔,ALL表示所有服务

客户机地址列表:

多个地址以逗号分隔,ALL表示所有地址

允许使用通配符?和*

网段地址,如192.168.4.或者192.168.4.0/255.255.255.0

区域地址,如.ujiuye.com.

 

策略应用示例

仅允许从以下地址访问sshd服务

主机61.63.65.67

网段192.168.2.0/24

禁止其他所有地址访问受保护的服务

vim /etc/hosts.allow     --允许访问的服务 和ip

vim /etc/hosts.deny    --禁止访问 的访问和 ip

尽允许20.11可以访问 sshd服务

 

 

 

 

所有人都不允许访问sshd服务  除了allow表的ip外

 

 

 

posted @ 2020-08-01 16:20  浅唱I  阅读(384)  评论(0编辑  收藏  举报