iptables和nat的配置与管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Iptables实现nat转换
Iptables防火墙利用nat表可以实现nat功能,将内网地 址与外网地址进行转换,支持3种操作 SNAT,DNAT,MASQUERADE
地址转换的原理
IP PC1
报文
IP:202.0.0.1 Port:4000
IP:192.168.0.1 Port:3000
2.给服务器配置相应的IP地址 [root@localhost ~]# ifconfig eth0 192.168.1.2 [root@localhost ~]# ifconfig eth1 202.112.113.112 [root@localhost ~]# route add default gw 202.112.113.1 dev eth1
Iptables的基本语法实例
将filter表中INPUT链的默认策略定义为DROP iptables –P INPUT DROP 查看filter表中的规则 iptables –L (--line-n) 为filter表的INPUT链添加一条规则,规则为拒绝所有使 用ICMP协议的数据包 iptables –A INPUT –p icmp –j DROP 为filter表的INPUT链添加一条规则,规则为允许访问TCP 协议的80端口的数据包通过 iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -o 网络接口 -j SNAT --to-source IP地址
Iptables实现nat转换
公司内部主机使用10.0.0.0/8网段的IP地址,并且使用
Linux主机作为服务器连接互联网,外网地址为固定地址 212.212.12.12,现需要修改相关设置保证内网用户能够正 常访问Internet,如图
iptables和nat的配置与管理
金京犬
Tip:学习目标
知识目标 了解防火墙的分类及工作原理、了解NAT 掌握iptables防火墙的配置 掌握利用iptables实现NAT 能力目标 能熟练完成利用iptables架设企业NAT服务器 情感目标
项目背景
假如某公司需要Internet接入,由ISP分配IP地址 202.112.113.112。采用iptables作为NAT服务器接入网络, 内部采用192.168.1.0/24地址,外部采用202.112.113.112 地址。为确保安全需要配置防火墙功能,要求内部仅能够访 问Web、DNS及Mail三台服务器;内部Web服务器 192.168.1.100通过端口映象方式对外提供服务。网络拓扑 结构如下图所示。
iptables简介
Netfilter/iptables IP数据包过滤系统实际由 netfilter和iptables两个组件构成。Netfilter是集成在 内核中的一部分,它的作用是定义、保存相应的规则。而 iptables是一种工具,用以修改信息的过滤规则及其他配 置。用户可以通过iptables来设置适合当前环境的规则, 而这些规则会保存在内核空间中。 对于Linux服务器而言,采用netfilter/iptables数据包 过滤系统,能够节约软件成本,并可以提供强大的数据包 过滤控制功能,iptables是理想的防火墙解决方案。
PREROUTING -i 网络接口 -j DNAT --to-destination IP地址
iptables -t nat -A
Iptables实现nat转换
公司网络内部搭建了一台web服务器,其IP地址为 192.168.0.3,防火墙外部地址为212.200.30.27,现 需要调整防火墙设置,保证外网能够正常访问该服务 器 Iptables –t nat–A PREROUTING –d 212.200.30.27 –p tcp –dport 80 –j DNAT --todestination 192.168.0.3
Iptables的基本语法—目标动作选项
序号 目标动作选项 作用
1 2 3 4 5 6 7
ACCEPT DROP REJECT LOG SNAT DNAT MASQUERADE
允许数据包通过 不许数据包通过 不许数据包通过,并弹回错误信息 符合规则的数据包写入日志 对POSTROUTING链操作,私网访问外网 对PREROUTING链操作,外网访问私网 同SNAT,但是不需要指定—to-source
20.0.0.
1
10.0.0.1
TCP ACK TCP
SYN’
状态错误,丢弃
安全策略检查 记录会话信息
1.处理后续包速度快 2.安全性高
Linux防火墙发展
早期的Linux系统采用过ipfwadm作为防火墙 但在2.2.0核心中被ipchains所取代。 Linux 2.4版本发布后,netfilter/iptables信息包过滤系 统正式使用。
filter表
① filter表。这是netfilter默认的表,通常使用该 表进行过滤的设置,它包含以下内置链。 INPUT:应用于发往本机的数据包。 FORWARD:应用于路由经过本地的数据包。 OUTPUT:本地产生的数据包。 filter表过滤功能强大,几乎能够设定所有的动作。
Iptables的基本语法
iptables [-t 表名] -命令 -匹配 -j 动作/目标
iptables内置了filter、nat和mangle三张表,我们可以使 用-t参数来设置对哪张表生效,也可以省略-t参数,则 默认对filter表进行操作。
Iptables的基本语法—命令选项
序号 1 2 3 4 命令选项 -P(大写) -A -D -L 定义默认策略 在链的最后添加一条规则 从链中删除一条规则 显示链的所有规则 作用
iptables简介
netfilter是Linux核心中的一个通用架构,它提供了一 系列的“表”(tables),每个表由若干“链”( chains)组成,而每条链可以由一条或数条“规则”( rules)组成。实际上,netfilter是表的容器,表是链 的容器,而链又是规则的容器。 3个表: filter(默认表)、nat表、manger表 5条链: INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
Iptables的基本语法实例
禁止员工访问域名为www.xxx.org的网站 iptables –A FORWARD –s www.xxx.org –j DROP 禁止员工访问IP地址为212.1.2.3的网站 Iptables –A FORWARD –s 212.1.2.3 –j DROP
Iptables的基本语法实例
在filter表中INPUT链的第2条规则前插入一条新规则,规 则为不允许访问TCP协议的53端口的数据包通过 iptables –I INPUT 2 –p tcp –dport 53 –j DROP 在filter表中INPUT链的第一条规则前插入一条新规则,规 则为允许源IP地址属于172.16.0.0/16网段的数据包通过 iptables –I INPUT 1 –s 172.16.0.0/16 –j ACCEPT 删除filter表中INPUT链的第2条规则 iptables –D INPUT 2 清除filter表中INPUT链的所有规则。 iptables –F INPUT
Iptables实现nat转换
公司内部有230台计算机,网段为192.168.0.0/24,并 配有一台拨号主机,使用接口ppp0接入internet,所 有客户端通过该主机访问互联网,这时需要在拨号主 机进行设置,将192.168.0.0/24的内部地址转换为 ppp0的公网地址 iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –o ppp0 –j MESQUERADE
IP层
IP
TCP
APP
防火墙分类 — 代理防火墙
外网 终端
代理防火墙
内网Server
发送连接请求
对请求进行安全检查,
不通过则阻断连接
通过检查后与Client建立连 接
通过检查后与Server建立 连接
1.处理速度慢 2.升级困难
向防火墙发送报文A
向Server发送报 文A’
地址转换
Internet
IP:202Leabharlann Baidu0.0.1 Port:4001
PC2
局域网
IP:192.168.0.2 Port:3010
Iptables实现nat转换
配置SNAT
SNAT功能是进行源IP地址转换,也就是重写数据包的源IP 地址。若网络内部主机采用共享方式,访问Internet连接 时就需要用到SNAT的功能,将本地的IP地址替换为公网的 合法IP地址。 SNAT只能用在nat表的POSTROUTING链,并且只要连接的第 一个符合条件的包被SNAT进行地址转换,那么这个连接的 其他所有的包都会自动地完成地址替换工作,而且这个规 则还会应用于这个连接的其他数据包。SNAT使用选项--tosource,命令语法如下。
Iptables配置保存
service iptables save
Iptables配置与管理—任务1
1.查看iptables软件是否安装 [root@localhost ~]# rpm -qa | grep iptables iptables-ipv6-1.3.5-5.3.el5 iptables-1.3.5-5.3.el5
向终端发送回应报文B’
向防火墙发送回应报文 B
防火墙分类 — 状态检测防火墙
Host 10.0.0.1
Server 20.0.0.1
TCP ACK 10.0.0. 10.0.0. TCP TCP 20.0.0.1 20.0.0.1 TCP SYN 11 ACK’ SYN
nat表
② nat表。当数据包建立新的连接时,该nat表能够修改 数据包,并完成网络地址转换。它包含以下3个内置链。 PREROUTING:修改到达的数据包。 OUTPUT:路由之前,修改本地产生数据包。 POSTROUTING:数据包发送前,修改该包。 nat表仅用于网络地址转换,也就是转换包的源或目标地 址,其具体的动作有DNAT、SNAT以及MASQUERADE
5
6
-F
-I(大写)
清空链的规则
根据规则序号向链中插入规则
Iptables的基本语法—匹配选项
序号 匹配选项 1 -p(小写) 2 --sport 3 4 5 6 7 --dsport -s -d -i -o 作用 匹配制定的协议(如tcp,udp,icmp) 基于源端口匹配 基于目的端口匹配 基于源IP地址匹配 基于目的IP地址匹配 进入本地接口的数据包匹配 离开本地接口的数据包匹配
项目背景
任务1 :iptables配置 任务2:nat实现
防火墙概述
防火墙通常具备以下几个特点。 (1)位置权威性。 (2)检测合法性。 (3)性能稳定性。
防火墙分类 — 包过滤防火墙
TCP层 1.无法关联数据包之间关系 2.无法适应多通道协议 3.通常不检查应用层数据 IP层 只检测报头 数据链路层 数据链路层 TCP层
mangle表
③ mangle。该表用在数据包的特殊变更操作,如修改 TOS等特性。Linux 2.4.17内核以前,它包含两个内置链 :PREROUTING和OUTPUT,内核2.4.18发布后,mangle表对 其他3个链提供了支持。 PREROUTING:路由之前,修改接受的数据包。 INPUT:应用于发送给本机的数据包。 FORWARD:修改经过本机路由的数据包。 OUTPUT:路由之前,修改本地产生的数据包。 POSTROUTING:数据包发送出去之前,修改该包。
iptables
–t nat –A POSTROUTING –s 10.0.0.0/8 –o eth1 –j snat --to-source 212.212.12.12
Iptables实现nat转换
配置DNAT DNAT只能用在nat表的PREROUTING链,使用选项--todestination,命令语法如下。