LINUX路由器与防火.ppt
第十五章 路由器与防火墙,Red Hat Enterprise Linux 4.0教改课件,内容导向,本章教学目标:掌握Linux路由器的配置掌握Linux防火墙的配置理解Linux防火墙的应用,重点:Linux下路由及防火墙配置难点:如何使用iptables工具配置防火墙规则。关键词:路由 防火墙,15-1 路由器的原理与作用,1.路由器的定义:路由器是架构在不同的网络之间,用于 实现数据传输的路径选择的一种设备。,2.路由器的作用(1)协议转换(2)路由选择(3)流量控制(4)数据的分段和组装(5)网络管理(6)隔离广播(7)网络互联,3、路由表的分类,(1)静态路由表 由系统管理员事先设置好固定的路径称为静态路由表,一般是在系统安装时就根据网络的配置情况预选设定的;(2)动态路由表 动态路由表是路由器根据网络系统的运行情况而自动调整的路由表。,4.路由器的工作原理(1)路由表(静态、动态)(2)源主机与目的主机在同一网络直接 发送(3)不在同一网络时,源主机把数据包 发送给本网络的某一台路由器,路 由器根据路由表进行数据转发,返回首页,案例一:在不同网络之间的计算机是不可能进行通信的,这时可以借助于路由器,可是一台硬件路由器的价格是比较昂贵的,如果你在做一个实验,必须要实现不同子网之间的数据的传输,可是你又没有资金去习一台价格昂贵的路由器,你该如何利用软件去实现,其实LINUX操作系统就相当于一台CISCO路由器,这时你该如何利用LINUX系统去实现三个子网间的通信;按照以下要求去进行配置;,给出案例,把一个LINUX主机作为路由器,其中有三块网卡;三块网卡分别对应三个子网;网卡eth0对就网段;eth1对应网段;eth2对应网段;在该系统中进行静态路由的配置,能让三个子网间相互通信;,15-2 静态路由的配置及其实现,(1)启用Linux系统的路由转发功能#vi/etc/rc.d/rc.local 添加以下内容 echo 1/proc/sys/net/ipv4/ip_forward,与案例有关的内容分析,(2)配置网卡接口的ip信息 通常为网关地址;,(3)配置静态路由表如:#route add host 192.168.0.1 dev eth0,(4)测试静态路由 在不同的子网中的一台LINUX客户机上配置网络接口与网关 利用ping命令进行测试;,(1)启用Linux系统的路由转发功能#vi/etc/rc.d/rc.local 添加以下内容 echo“1”/proc/sys/net/ipv4/ip_forward或#echo“echo 1”/proc/sys/net/ipv4/ip-forward”/etc/rc.d/rc.local,15-3 动态路由及其实现,(2)启用动态路由协议 zebra 简介 zebra是基于Linux系统的Cisco路由仿真软件,该软件支持IPv4、IPv6 协议和其他多种路由协议。zebra的特性:模块化设计、运行速度快、具有高可靠性;为什么使用zebra:1、替代昂贵的硬件路由器 2、配置与CISCO的IOS配置相同;,zebra的安装#rpm ivh zebrai386.rpm(CD3)相关文件:vtysh/配置工具zebra.conf/zebra的主配置文件/etc/zebra/存放zebra配置文件目录,创建动态路由的配置文件#touch/etc/zebra/文件名.conf 注:RIP协议(路由信息协议)的配置文件名是ripd.confOSPF协议(开放式最短路径优先)的配置文件名是ospf.confBGP协议(边界网关路由协议)的配置文件名是bgp.conf,启动服务#service zebra start#service ripd start,配置动态协议#vtysh rh9以下为Cisco路由器命令,分组操作点评、操作演示:.,返回首页,案例二,网络的安全是越来越重要,随着技术的发展,各类硬件防火墙一代代的产生,其实LINUX也同样的具有防火墙的功能,同时也具有代理服务器的功能,请你根据以下要求来进行配置;利用iptables建立一个自定义链ahxh应用该链,对从过来的数据全部丢弃;应用之后再删除该链;设置一条默认的规则,允许接收所有的数据,拒绝net表中数据通过;拒绝主机发送icmp请求,拒绝网段ping 防火墙主机,但允许防火墙主机ping 其他主机 拒绝防火墙主机向网段发送icmp应答,等同于上一条指令 拒绝转发数据包到 NAT,伪装内网网段的的主机地址为外网192.168.1.48,这个公有地址,使内网通过NAT上网,前提是启用了路由转发 把internet上通过80端口访问的请求伪装到内网这台WEB服务器,即在iptables中发布WEB服务器,前提是启用路由转发,15-4 防火墙基础,1.防火墙定义 防火墙是指隔离在本地网络和外界网络 之间的一道防御系统。其基本实现方式 有以下三种:(1)包过滤(2)NAT(网络地址翻译)(3)代理服务,与案例有关的内容分析,防火墙分类包过滤防火墙(网络层)内容过滤防火墙(应用层),2.包过滤防火墙(1)包过滤防火墙定义包过滤是用一个软件查看所流经的数据包的包头(header),由此决定整个数据包的命运(丢弃/接受/其他相关操作)。,(2)包过滤防火墙的工作原理,存储包过滤规则,分析数据包的报头,应用下一个规则,允许传输?,阻塞传输?,末条规则?,允许包,阻塞包,y,y,y,n,n,n,3.Linux系统中常用的包过滤软件ipfwadm(应用于2.0内核)ipchains(应用于2.2内核)iptables(应用于2.4内核),15-5 Iptables的基础,filter/iptables的含义netfilter也称内核空间,是用来实现防火墙的过滤器iptables 也称用户空间,是用来指定Netfilter规则的用户工具,netfilter/iptables的功能包过滤NAT连接跟踪QOS(网络服务质量,是网络于用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定),filter的体系,各部分说明:(1)表(table)定义:一种存放规则链的容器(2)链(ipchain)定义:细分表的具体功能,每条链由若干条 规则构成(3)规则(rule)定义:是一种包含条件的判断语句,用于确定 如何处理数据包,15-6 利用iptables配置规则,1.安装iptablesiptables相关文件:/etc/rc.d/init.d/iptables/启动脚本/usr/sbin/iptables/配置工具/usr/sbin/iptables-save/保存规则到/etc/sysconfig/iptables文件中/usr/sbin/iptables-restore/恢复/etc/sysconfig/iptables文件中的规则,2.iptables的语法 命令格式:iptables-t 表名 命令 链 规则号 条件 规则 说明:(1)-t 表名 指定规则所在的表。表名可以是filter,nat,mangle,表 种类:FILTER(默认):包过滤 NAT:地址转换 MANGLE:QOS,(2)命令(iptables的子命令)-A 在指定链中添加规则-D 在指定链中删除指定规则-R 修改指定链中指定规则-I 在指定规则前插入规则-L 显示链中的规则-N 建立用户自定义链,-F 清空链中的规则-X 删除用户自定义链-P 为链设置默认规则-C 检查给定的包是否与指定链的规则相匹配-h 显示帮助信息,(3)链 INPUT/数据源来自外部且目的地址为本机时 OUTPUT/数据源来自本机或内部网且要发往外部系统时 FORWARD/数据源来自外部系统且要发往外部系统时 POSTROUTING/对出去的数据包进行路由选择 PREROUTING/对进来的数据包进行路由选择 用户自定义链,注:FILTER:INPUT、OUTPUT、FORWARD NAT:OUTPUT、POSTROUTING、PREROUTING MANGLE:PREROUTING、OUTPUT、INPUT、POSTROUTING、FORWARD,(4)规则匹配条件-p!协议名/指定匹配的协议(tcp,udp,icmp,all)-s!ip地址/mask/指定匹配的源地址-sport!端口号:端口号/指定匹配的源端口或范围-d!ip地址/mask/指定匹配的目标地址-dport!端口号:端口号/指定匹配的目标端口或范围,-icmp-type!类型号/类型名-i 接口名/指定接收数据包接口-o 接口名/指定发送数据包接口/指定icmp包的类型注:8 表示request 0 表示relay(应答)注:以上选项用于定义扩展规则-j 规则 指定规则的处理方法,(5)规则 ACCEPT:接受匹配条件的数据包(应用于INPUT,OUTPUT,FORWARD)REJECT:丢弃匹配规则的数据包且返回确认信息给源主机;DROP:丢弃匹配的数据包(应用于 INPUT,OUTPUT,FORWARD)MASQUERADE:伪装数据包的源地址(应用于POSTROUTING 且外网地址为动态地址,作用于NAT)LOG:表示包的有关信息被记录入日志;,REDIRECT:包重定向(作用于NAT表中PREROUTING,OUTPUT,使用要加上-to-port 端口号)SNAT:伪装数据包的源地址(用于NAT表中POSTROUTING 链,要加上-to-source ip地址 ip地址)DNAT:伪装数据包的目标地址(应用于NAT表中 PREROUTING链,要加上-to-destination ip地址)RETURN:直接跳出当前规则链,3.iptables使用实例(1)匹配指定协议#iptables-A INPUT-p tcp 匹配指定协议之外的所有的协议;#iptables-A INPUT-p!tcp,(2)指定匹配地址(主机)(网络)指定匹配地址以外的#iptables-A FORWARD-s!(主机)#iptables-A FORWARD-s!(网络),(3)指定网络接口匹配#iptables-A INPUT-i eth0#iptables A FORWARD o etho,(4)指定端口匹配#iptables-A INPUT-p tcp-sport 80#iptables-A INPUT-p tcp-sport 22:80,(5)显示规则#iptables-L(默认表中的所有规则)#iptables-t nat-L,(6)清空规则#iptables-F,(7)设置默认规则#iptables-P INPUT ACCEPT,添加规则#iptables A INPUT p icmp-icmp-type 8 s 192.168.0.3 j DROP(拒绝主机发送icmp请求)#iptables A INPUT p icmp-icmp-type 8 s 192.168.0.0/24 j DROP(拒绝网段ping 防火墙主机,但允许防火墙主机ping 其他主机)#iptables A OUTPUT p icmp-icmp-type 0 d 192.168.0.0/24 j DROP(拒绝防火墙主机向网段发送icmp应答,等同于上一条指令)#iptables A FORWARD d-j DROP(拒绝转发数据包到,前提是必须被解析),#iptables t nat A POSTROUTING s 192.168.0.0/24 j SNAT-to-source 211.162.11.1(NAT,伪装内网网段的的主机地址为外网211.162.11.1,这个公有地址,使内网通过NAT上网,前提是启用了路由转发)(把internet上通过80端口访问的请求伪装到内网这台WEB服务器,即在iptables中发布WEB服务器,前提是启用路由转发),4.保存iptables规则 方法一:用iptables命令编写一个规则脚本文件,然后 在/etc/rc.d/rc.local中添加如下脚本:if-x/etc/rules then/etc/rules fi方法二:#service iptables save 方法三:#iptables-save/etc/sysconfig/iptables,分组操作点评、操作演示:.,返回首页,归纳与总结,通过本节的学习我们要掌握以下内容:Linux路由器的查看与配置Linux防火墙的配置Linux防火墙的应用,上机操作实训 假设你是一个网吧的网管,请根据以下要求在LINUX下来配置一台代理服务器:1、设置防火墙主机()能够给局域网中的主机(192.168.0.0)动态分配IP地址,DNS为;2、设置防火墙主机具有SNAT功能,代理内网中的主机接入Internet3、设置防火墙主机拒绝icmp 数据包4、设置防火墙主机发布内网中的Web服务器(192.168.0.2)和FTP服务器(192.168.0.3)5、设置防火墙主机禁止内网主机访问;,返回首页,1、浏览器与Web服务器之间通信采用的协议为 A、FTP B、HTTP C、SMTP D、TELNET 正确答案是:,B,2、iptables 中清除所以的规则的参数是 A、-i B、-L C、-F D、-A 正确答案是:,C,3、iptables中拒绝数据包是 A、ACCEPT B、MASQ C、EJECT D、DROP 正确答案是:,D,4、Red Hat Enterprise Linux AS 4自带的防火墙软件是 正确答案是:A、ipchinas B、iptables C、ISA D、checkpoint,B,课后习题,5、route命令中-net 是指 A、目标是一个网段 B、目标是一个主机 C、目标是所有网段 D、目标是所有主机 正确答案是:,A,6、用于禁止转发ICMP包的iptables命令是 A.iptables A INPUT-p icmp-j ACCEPTB.iptables A OUTPUT p icmp j DROPC.iptables A FORWARD p icmp j DROPD.iptables t nat-A OUTPUT p icmp j DROP 正确答案是:,C,7、启用路由转发功能的配置文件是A./etc/network B./proc/sys/net/ipv4/ip_forward C./etc/sysconfig/net D./var/run/network 正确答案是:,B,返回首页,