iptables/netfilter网络防火墙实现及实战分析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
公网NAT网关,每月750个小时 15CU
简介:

前提知识

  • 任何主机若要与非同网络中的主机通信,则必须将报文发送到默认网关;

  • 对Linux而言,IP地址是属于主机(内核中)的,不属于网卡,只要属于当前主机的IP地址间,都可直接响应,不称为转发

  • 私有地址在路由器上是不允许被路由的


防火墙的类型与作用的链

  • 主机防火墙:一般使用INPUT,OUTPUT链来过滤进入和发出的报文

  • 网络防火墙:一般使用PREROUTING,FORWARD,POSTROUTING链来转发经过的报文


不同网络间主机通信的方式

路由

对于Linux主机,设定/proc/sys/net/ipv4/ip_forward的值为1,即开启了路由功能,可以作为模拟路由器使用

wKioL1M2qJDgtWVJAAGspjiVuW0909.jpg

注:但真实的路由器还应该存在生成路由表的机制,一般是基于路由协议(如RIP2,OSPF)动态学习的,在此不作讨论

NAT

工作于网络层和传输层,也可分为静态NAT和动态NAT

  • Basic NAT:静态NAT;NAT服务器上有一个外网地址池,内网连接时直接分配一个外网IP使用,很不灵活

  • NAPT:动态NAT,Network Address Port Translation,即网络端口地址转换,也可分为SNAT和DNAT

    • SNAT:源地址转换;适用于内网主机访问互联网,原理图如下:

      wKioL1M2qQjDPBwNAAS9qCPdMFQ935.jpg

    • DNAT:目标地址转换;适用于让互联网主机访问本地内网中的某主机上的服务,原理图如下:

      wKiom1M2qVPD1SQIAAVaGmF2b-Y863.jpg


iptables/netfilter基于SNAT和DNAT原理实现报文转发

  • -j SNAT --to-source SIP

    • 规则添加:在POSTROUTING链上

  • -j MASQUERADE

    • 用于外网IP是ADSL拨号上网时生成的动态IP,MASQUERADE模式能自行查找能访问互联网的外网IP,并完成SNAT

  • -j DNAT --to-destination DIP[:Port]

    • 支持端口映射

    • 规则添加:在PREROUTING链上

实例:

1
2
# 将外网对172.16.100.7:22022的访问转发至内网的192.168.20.12.22
iptables -t nat -A PREROUTING -d 172.16.100.7 -p tcp --dport 22022 -j DNAT --to-destination 192.168.20.12.22



iptables/netfilter实战解析

需求分析

wKiom1M26zqSprGfAAMmc447Atg647.jpg

架构设计

wKioL1M26y_ASnyuAALkUgZwIyc755.jpg

配置部署

DNS Server配置

网络配置

1
2
3
4
5
6
7
8
9
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE= "eth0"
BOOTPROTO= "static"
NM_CONTROLLED= "no"
ONBOOT= "yes"
TYPE= "Ethernet"
IPADDR=172.16.251.178
NETMASK=255.255.0.0
GATEWAY=172.16.251.236

DNS主配置文件:/etc/named.conf

1
2
3
4
5
6
7
8
# named.conf中需修改的部分
listen-on port 53 { 127.0.0.1; 172.16.251.178;};
allow-query     { any; };
recursion no;
#zone "." IN {
#   type hint;
#   file "named.ca";
#};

DNS辅助配置文件:/etc/named.rfc1912.zones

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
acl inter_net {
172.16.251.0 /24 ;
};
view inter_net {
match-clients { inter_net; };
         zone  "."  IN {
                 type  hint;
                 file  "named.ca" ;
         };
zone  "jason.com"  IN {
type  master;
file  "jason.com.inter_net" ;
};
};
view outer_net {
match-clients { any; };
zone  "jason.com"  IN {
type  master;
file  "jason.com.outer_net" ;
};
};

区域数据文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# vi /var/named/jason.com.inter_net
$TTL 1D
jason.com. IN SOA dns.jason.com. admin.jason.com (
2014032920 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns
dns A 172.16.251.178
www A 172.16.251.182
# vi /var/named/jason.com.outer_net
$TTL 1D
jason.com. IN SOA dns.jason.com. admin.jason.com (
2014032920 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns
dns A 172.16.251.178
www A 3.3.3.1

启动named服务

1
2
3
chown  root.named jason.com.inter_net
chown  root.named jason.com.outer_net
service named restart

Web Server配置

1
2
3
4
配置一个虚拟主机,监听端口8080
在DocumentRoot目录下创建一简单的测试文件 test .html,内容随意,如
“Hello Mageedu”
启动httpd服务即可

Firewall配置

网络配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE= "eth0"
BOOTPROTO= "static"
NM_CONTROLLED= "no"
ONBOOT= "yes"
TYPE= "Ethernet"
IPADDR=172.16.251.236
NETMASK=255.255.0.0
GATEWAY=172.16.0.1
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE= "eth1"
BOOTPROTO= "static"
NM_CONTROLLED= "no"
ONBOOT= "yes"
TYPE= "Ethernet"
IPADDR=3.3.3.1
NETMASK=255.255.255.0
DNS1=3.3.3.1

注:因为3.3.3.1和3.3.3.3都是模拟的外网IP地址,故对应的网卡应处于同一信道内,且不能和内网的通信信道一致,故在用虚拟机测试时,可将对应内网IP的网卡的网络方式改为桥接,而对应外网IP的网卡的网络方式改为自定义,如vmnet2

添加iptables规则

1
2
iptables -t nat -A PREROUTING -d 3.3.3.1 /32  -p udp --dport 53 -j DNAT --to-destination 172.16.251.178
iptables -t nat -A PREROUTING -d 3.3.3.1 /32  -p tcp --dport 8080 -j DNAT --to-destination 172.16.251.182

Inter Client配置

1
2
3
4
5
6
7
8
9
10
11
12
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE= "eth0"
BOOTPROTO= "static"
NM_CONTROLLED= "no"
ONBOOT= "yes"
TYPE= "Ethernet"
IPADDR=172.16.251.176
NETMASK=255.255.255.0
GATEWAY=172.16.251.236
DNS1=172.16.251.178
# vi /etc/resolv.conf
nameserver 172.16.251.178

Outer Client配置

1
2
3
4
5
6
7
8
9
10
11
12
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE= "eth0"
BOOTPROTO= "static"
NM_CONTROLLED= "no"
ONBOOT= "yes"
TYPE= "Ethernet"
IPADDR=3.3.3.3
NETMASK=255.255.255.0
GATEWAY=3.3.3.1
DNS1=3.3.3.1
# vi /etc/resolv.conf
nameserver 3.3.3.1

DNS解析测试

wKioL1M27yeguPY3AAEmn_6VUto674.jpg

HTTP访问测试

wKiom1M273CAf5rlAAQtUHrZog8122.jpg

大功告成,哦也!










本文转自 xxrenzhe11 51CTO博客,原文链接:http://blog.51cto.com/xxrenzhe/1386677,如需转载请自行联系原作者
目录
相关文章
|
7天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
1月前
|
机器学习/深度学习 数据采集 存储
时间序列预测新突破:深入解析循环神经网络(RNN)在金融数据分析中的应用
【10月更文挑战第7天】时间序列预测是数据科学领域的一个重要课题,特别是在金融行业中。准确的时间序列预测能够帮助投资者做出更明智的决策,比如股票价格预测、汇率变动预测等。近年来,随着深度学习技术的发展,尤其是循环神经网络(Recurrent Neural Networks, RNNs)及其变体如长短期记忆网络(LSTM)和门控循环单元(GRU),在处理时间序列数据方面展现出了巨大的潜力。本文将探讨RNN的基本概念,并通过具体的代码示例展示如何使用这些模型来进行金融数据分析。
216 2
|
4天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
26 3
|
4天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
15 2
|
8天前
|
存储 安全 网络安全
网络安全法律框架:全球视角下的合规性分析
网络安全法律框架:全球视角下的合规性分析
20 1
|
11天前
|
SQL 安全 算法
网络安全的屏障与钥匙:漏洞防护与加密技术解析
【10月更文挑战第31天】在数字世界的海洋中,网络安全是航船的坚固屏障,而信息安全则是守护宝藏的金钥匙。本文将深入探讨网络安全的薄弱环节——漏洞,以及如何通过加密技术加固这道屏障。从常见网络漏洞的类型到最新的加密算法,我们不仅提供理论知识,还将分享实用的安全实践技巧,帮助读者构建起一道更加坚不可摧的防线。
21 1
|
17天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
17天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9-2):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
|
1月前
|
安全 网络协议 物联网
物联网僵尸网络和 DDoS 攻击的 CERT 分析
物联网僵尸网络和 DDoS 攻击的 CERT 分析
|
1月前
|
存储 算法 数据可视化
单细胞分析 | Cicero+Signac 寻找顺式共可及网络
单细胞分析 | Cicero+Signac 寻找顺式共可及网络
25 0