单元十网络安全性包过滤防火墙教学课件.ppt
linux 系统管理和应用 么丽颖 主编高等职业教育计算机精品系列规划教材中国铁道出版社单元十 网络安全性 - 包过滤防火墙学习目标学习目标引言引言任务一任务一 允许允许InternetInternet用户访问内网的服务用户访问内网的服务 知识链接知识链接 拓展和提高拓展和提高 综合实训综合实训任务二任务二 配置网络安全配置网络安全 知识链接知识链接 拓展和提高拓展和提高 综合实训综合实训学习目标了解Linux防火墙的表、链结构。了解数据包过滤流程。掌握管理和设置iptables 规则。引言在互联网中,企业通过架设各种服务器为用户提供服务,如网站、FTP服务、数据库、电子邮件等。那么如何来保护这些特定的服务,过滤企业不需要的访问甚至是恶意入侵呢?使用防火墙正是有力的防护措施之一。本单元通过完成两个任务,学习Linux系统中的防火墙体系,包括该防火墙体系的原理和结构,以及防火墙策略的设置,从而解决企业网络的接入和安全防护的问题。任务一 任务描述某公司需要将内网的WEB服务器在Internet上发布,作为公司服务平台,使Internet用户访问内网的服务,公司的网关服务器使用RHEL5系统,由于公司只注册了一个公网IP地址,因此需要在网关服务器上进行适当的配置。任务分析公司的网关服务器RHEL5系统有两块网卡,网卡eth0接口(61.167.156.1/24)连接外网、网卡eth1(192.168.100.1/24)接口连接内网。通过配置DNAT策略,使外网的主机能够访问http:/61.167.156.1来查看位于192.168.100.2内网主机上的网站服务。 操作步骤1. 以root帐户登录系统,为eth0、eth1接口配置IP地址 (1)打开终端,单击“应用程序” “附件”“终端”菜单项。 (2)配置IP地址 ,输入命令: rootrhel5 # setup 操作步骤2. 使配置的IP地址立即生效 rootrhel5 # service network restart3. 在网关服务器设置iptables 策略 rootrhel5 # iptables -t nat -A PREROUTING -p tcp -d 61.167.156.1 -dport 80 -j DNAT -to-destination 192.168.100.24. 开启网关服务器的路由转发功能 rootrhel5 # vi /etc/sysctl.conf net.ipv4.ip_forward = 1 rootrhel5 #sysctl p知识链接NAT的基本知识 网络地址转换器NAT(network address translator)位于使用私有地址和使用公有地址之间,主要具有以下这种功能。 (1)从私有地址传出的数据包由NAT将它们的私有地址转换为公有地址。 (2)从公有地址传入的数据包由NAT将它们的公有地址转换为私有地址。 (3)支持多重服务器和负载均衡。 (4)实现透明代理。知识链接NAT的分类 (1)源NAT,SNAT指修改第一个包的源IP地址,SNAT会在数据包送出之前的最后一刻做好POSTROUTING的动作。 (2)目的NAT,DNAT是指修改第一个包的目的IP地址,DNAT会在数据包进入后立刻进行PREROUTING的动作。 知识链接NAT的原理 netfilter是Linux核心中一个通用架构,它提供了一系列的表,每个表由若干链组成,而每条链中能有一条或数条规则(rule)组成。并且系统缺省的表是filter。不过在使用NAT的时候,我们所使用的表不再是filter,而是nat表,所以我们必须使用“-t nat”选项来显式地指明这一点。因为系统缺省的表是filter,所以在使用filter功能时,我们没有必要显式的指明“-t filter”。知识链接命令使用的方法 在使用iptables的NAT功能时,我们必须在每一条规则中使用“-t nat”显示的指明使用nat表。然后使用以下的选项: (1)对规则的操作 加入(append) 一个新规则到一个链 (-A)的最后。 在链内某个位置插入(insert) 一个新规则(-I),通常是插在最前面。 在链内某个位置替换(replace) 一条规则 (-R)。 在链内某个位置删除(delete) 一条规则 (-D)。知识链接命令使用的方法 (2)指定源地址和目的地址 通过-src、-s来指定源地址,通过-dst、-s来指定目的地址。能使用以下四中方法来指定ip地址: 使用完整的域名,如“”; 使用ip地址,如“192.168.1.1”; 用x.x.x.x/x.x.x.x指定一个网络地址,如“192.168.1.0/255.255.255.0”; 用x.x.x.x/x指定一个网络地址,如“192.168.1.0/24”这里的24表明了子网掩码的有效位数。 知识链接命令使用的方法 (3) 指定网络接口 能使用-in-interface、-i或-out-interface、-o来指定网络接口。我用-i指定进来的网络接口;用-o指定出去的网络接口。 (4) 指定协议及端口 能通过 -p选项来指定协议,如果是udp和tcp协议, 还可-source-port、-sport和 -destination-port、-dport来指明端口。知识链接IPTABLES规则的保存与恢复 iptables-save把规则保存到文件中,再由目录rc.d下的脚本(/etc/rc.d/init.d/iptables)自动装载,使用命令iptables-save来保存规则。一般用iptables-save /etc/sysconfig/iptables生成保存规则的文件 /etc/sysconfig/iptables,也可以用service iptables save它能把规则自动保存在/etc/sysconfig/iptables中。计算机启动时,rc.d下的脚本将用命令iptables-restore调用这个文件,从而就自动恢复了规则。拓展和提高 公司的网关服务器RHEL5系统有两块网卡,网卡eth0接口(61.167.156.1/30)连接外网、网卡eth1(192.168.100.1/24)接口连接内网。局域网内各主机的默认网关设置为192.168.100.1,且已经设置了正确的DNS服务器(61.167.156.2),现需要在RHEL5网关服务器中进行正确配置,以使192.168.100.0/24网段的局域网用户能够通过共享方式访问INTERNET。拓展和提高1. 在网关服务器设置iptables 策略 rootrhel5 # iptables -t nat -A POSTROUTING -p tcp -s 192.168.100.0/24 -o eth0 -j SNAT -to-source 61.167.156.1 rootrhel5 # iptables -t nat -I PREROUTING -i eth1 -p tcp -dport 53 -j DNAT -to-destination 61.167.156.2 rootrhel5 # iptables -t nat -I PREROUTING -i eth1 -p udp -dport 53 -j DNAT -to-destination 61.167.156.2拓展和提高 rootrhel5 # iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.0/24 -p tcp -dport 53 -j SNAT -to-source 61.167.156.1:40000 - 50000 rootrhel5 # iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.1/24 -p udp -dport 53 -j SNAT -to-source 61.167.156.1:40000 - 50000拓展和提高 2. 开启网关服务器的路由转发功能 rootrhel5 # vi /etc/sysctl.conf net.ipv4.ip_forward = 1 rootrhel5 #sysctl p 3测试 在内部网任意一台计算机,将DNS的IP地址设置为61.167.156.2,使用DNS测试工具如nslookup来解析DNS服务器61.167.156.2上的名称,也可通过浏览器访问域名网站。综合实训 1.实训目的 会使用SNAT策略配置共享上网 会使用DNAT策略发布企业内网的应用服务。综合实训2. 实训内容 网关主机使用两个网卡,eth0接口(11.12.13.1/24)连接外网,网关主机eth1接口(192.168.2.1/24)连接内网;配置SNAT策略实现共享上网,从192.168.2.0/24网段可以访问Internet的所有应用;配置DNAT策略发布内网中的服务器;从外网访问http:/11.12.13.1时,能够查看到位于192.168.2.1主机中的Web页面文件,禁止其他未经明确许可的数据包访问。 公司的网关服务器为LINUX 系统,其eth0网卡通过光纤接入INTERNET,eth1网卡连接局域网络。由于只注册一个公网IP地址,需要在网关服务器上进行适当配置,使局域网内的员工可以通过共享的方式访问INTERNET,另外,还需要将内网的WEB服务器在INTERNET上发布。综合实训3030分钟内完成分钟内完成任务二 任务描述某公司使用RHEL5系统做为网关服务器,eth1连接局域网,eth0连接外网。为了有效地管理网络环境及增强内部网络的安全性,需要配置iptables防火墙规则实现基于IP地址和端口的过滤控制。任务分析允许INTERNET上的主机访问网关服务器的21、25、80端口,允许IP地址为10.11.12.2的远程管理主机访问网关服务器22端口,允许IP地址为192.168.10.2、MAC地址为40-61-86-86-5E-C3的主机访问网关的22端口,允许局域网所有主机访问代理服务3128端口。 其它任何非明确许可的数据包入站访问全部拒绝;数据包出站访问均接受(如图10-4所示)。并把以上iptables规则保存。操作步骤1. 允许外网访问网关服务器的指定端口 rootrhel5 # iptables -A INPUT -i eth0 -p tcp -m multiport -dport 21,25,80 -j ACCEPT2. 允许外网远程管理工作站访问SSH服务 rootrhel5 # iptables -A INPUT -s 10.11.12.2 -p tcp -dport 22 -j ACCEPT操作步骤3. 允许内网指定主机访问网关服务器的SSH服务 rootrhel5 # iptables -A INPUT -i eth1 -s 192.168.10.2 -m mac -mac-source 40:61:86:86:5E:C3 -p tcp -dport 22 -j ACCEPT 4. 允许局域网段使用代理服务 rootrhel5 # iptables -A INPUT -s 192.168.10.0/24 -p tcp -dport 3128 -j ACCEPT操作步骤5. 设置防火墙默认策略 rootrhel5 depar# iptables -P INPUT DROP rootrhel5 depar# iptables -P OUTPUT ACCEPT rootrhel5 depar# iptables -P FORWARD DROP知识链接 Linux 防火墙概述 netfilter/iptables组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换NAT等功能。iptables/netfilter包过滤防火墙其实是由两个组件构成的,netfilter是指Linux内核中实现包过滤防火墙的内部结构,不以程序或文件形式存在,属于“内核空间”的防火墙功能体系;另一个iptables指的是管理Linux防火墙的命令工具,程序通常位于/sbin/iptables,属于“用户空间”的防火墙管理体系。知识链接iptables 基础 iptables的作用在于为包过滤机制的实现提供规则,通过各种不同的规则,告诉netfilter对来某些源、前往某些目的地或有某些协议特征的数据包应该如何处理。为了更方便地组织和管理防火墙策略,iptables采用了“表”和“链”的分层结构。每个规则“表”相当于内核空间的一个容器,根据处理数据包的时机不同,表容器内包括不同的规则“链”。针对特定数据包的各种防火墙规则,按顺序依次放入对应的规则“链”中。 知识链接iptables 指令语法 iptables -t table command match -j target/jump (1)-t table 指定规则表 (2)match 常用封包匹配参数 拓展和提高 公司内部搭建了web服务器和FTP服务器,为了满足公司需求,要求使用Linux构建安全、可靠的防火墙。防火墙自身要求安全、可靠,不允许网络中任何人访问;linux防火墙出问题,只允许在防火墙主机上进行操作;公司内部的web服务器要求通过地址映射发布出去,且只允许外部网络用户访问web服务器的80端口,而且通过有效的DNS注册;公司内部的员工必须通过防火墙才能访问内部的web服务器,不允许直接访问; FTP服务器只对公司内部用户起作用,且只允许内部用户访问FTP服务器的21和20端口,不允许外部网络用户访问;公司内部的员工要求通过透明代理上网(不需要在客户机浏览器上做任何设置,就可以上网);内部用户所有的IP地址必须通过NAT转换之后才能够访问外网。拓展和提高1清空filter表和nat表中的配置策略。rootrhel5 # iptables -Frootrhel5 # iptables -Xrootrhel5 # iptables -Zrootrhel5 # iptables -F -t nat rootrhel5 # iptables-X -t natrootrhel5 # iptables -Z -t nat 拓展和提高2接受filter表的默认OUTPUT链,阻止FORWARD链和INPUT链。全部放行nat表中的PREROUTING链、POSTROUTING链以及OUTPUT链。 rootrhel5 # iptables -P INPUT DROProotrhel5 # iptables -P FORWARD DROProotrhel5 # iptables -P OUTPUT ACCEPTrootrhel5 # iptables -t nat -P PREROUTING ACCEPTrootrhel5 # iptables -t nat -P POSTROUTING ACCEPTrootrhel5 # iptables -t nat -P OUTPUT ACCEPT拓展和提高3. 将内网web服务器的IP地址映射到防火墙连接外网接口的IP地址上。rootrhel5 # iptables -t nat -A PREROUTING -p tcp -d 10.11.12.1 -dport 80 -j DNAT -to-destination 192.168.0.14放行转发访问内网web服务器的数据包。rootrhel5 # iptables -t nat -A FORWARD -p tcp -d 192.168.0.1 -dport 80 -j ACCEPT拓展和提高5将内网web服务器的IP地址映射到防火墙连接内网接口的IP地址上。rootrhel5 # iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.1 -dport 80 -j SNAT -to -source 192.168.0.2546在防火墙中添加透明代理设置的规则。rootrhel5 # iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -dport 80 -j REDIRECT -to -ports 3128拓展和提高7.DNS的设置规则。rootrhel5 # iptables -A FORWARD -p tcp -dport 53 -j ACCEPTrootrhel5 # iptables -A FORWARD -p udp -dport 53 -j ACCEPT8. 保存iptables的配置,并通过iptables服务脚本自动加载。rootrhel5 # iptables-save /etc/sysconfig/iptablesrootrhel5 # service iptables restartrootrhel5 # chkconfig -level 35 iptables on拓展和提高9. squid服务器的具体设置。 (1) 配置squid支持透明代理rootrhel5 # vi /etc/squid/squid.confhttp_port 192.168.0.254:3128 transparent (2)定义acl列表rootrhel5 # vi /etc/squid/squid.confacl lan src 192.168.0.0/24拓展和提高 (3)设置acl访问权限rootrhel5 # vi /etc/squid/squid.confhttp_access allow lan (4)重新加载squid服务配置rootrhel5 # service squid reload拓展和提高 rootrhel5 # iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.0/24 -p tcp -dport 53 -j SNAT -to-source 61.167.156.1:40000 - 50000 rootrhel5 # iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.1/24 -p udp -dport 53 -j SNAT -to-source 61.167.156.1:40000 - 50000综合实训 1.实训目的 熟悉iptables 命令的使用方法。 配置linux包过滤防火墙。 综合实训2. 实训内容 向filter表的INPUT链添加一条规则,将来自ip 地址为192.168.1.1 这台主机的数据包都丢弃,在第一条规则前插入一条规则,其内容是禁止192.168.2.0子网段的所有用户访问本机TCP协议80端口,在第二条规则前插入一条规则,拒绝所有主机PING 本机。综合实训2 20 0分钟内完成分钟内完成