1 / 57

安全网管技术

安全网管技术. 张焕杰 中国科学技术大学网络信息中心 james@ustc.edu.cn http://202.38.64.40/~james/nms Tel: 3601897(O). 第3章 网络隔离与防火墙技术(2). 本章主要内容 物理隔离技术与双网隔离计算机 协议隔离技术 防火墙技术 包过滤防火墙 Socks 协议 参考资料: 计算机网络安全基础,袁津生等,人民邮电出版社. 包过滤防火墙. 状态包过滤 Stateful Firewall 记录数据包的连接状态

Download Presentation

安全网管技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 安全网管技术 张焕杰 中国科学技术大学网络信息中心 james@ustc.edu.cn http://202.38.64.40/~james/nms Tel: 3601897(O)

  2. 第3章 网络隔离与防火墙技术(2) • 本章主要内容 • 物理隔离技术与双网隔离计算机 • 协议隔离技术 • 防火墙技术 • 包过滤防火墙 • Socks协议 • 参考资料: • 计算机网络安全基础,袁津生等,人民邮电出版社

  3. 包过滤防火墙 • 状态包过滤 Stateful Firewall • 记录数据包的连接状态 • TCP: SYN_SENT, SYN_RECV, ESTABLISHED, TIME_OUT等,根据数据包的内容动态修改 • UDP: 无状态,第一个数据包触发创建一个新连接,后续的数据包刷新该连接,直到超时后连接信息被删除 • ICMP: 状态

  4. 包过滤防火墙 • 状态表 • 连接,并发连接数

  5. 状态的维护 • 对于TCP,跟踪所有的数据包,依据TCP 有限状态机动态修改状态 • 对于UDP等无连接协议,一定时间内没有数据就认为连接结束,实现时设置超时时间 • TCP也有超时处理

  6. 包过滤防火墙 • 状态过滤 • 对所有已经建立的连接的数据包都允许(包括相关的连接的数据包) • 非法的数据包禁止 • 管理员只要定义规则,判断新连接的数据包是否需要允许即可控制信息流 • 简化了配置,方便了管理,提高了安全性

  7. 地址转换 • NAT Network Address Translation • 对通过防火墙的数据包IP地址进行改变 • 隐藏内部网络结构,提高安全性 • 解决IPv4地址不足 • 将正式地址和内部保留地址进行互相翻译 • 10.*.*.* • 172.16.*.* – 172.31.*.* • 192.168.*.* • 比代理效率高

  8. 地址转换 • NAT Network Address Translation • 适应所有IP通信 • 重写IP地址 • 1:1的映射 • 类似直拨电话 • NAPT Network Address Port Translation • 只能处理TCP、UDP、ICMP通信 • 重写IP地址和端口信息 • 1:M的映射 • 类似电话分机概念

  9. 20

  10. NAT & NAPT • 尽量使用NAT,基本上各种协议都可用 • 解决IP地址不足时,往往要用到NAPT

  11. 数据包内数据的处理 • NAT仅仅处理数据包头的信息有时不能有效工作 • 数据包中包含的IP地址、端口信息需要同时修改 • DNS中的A和PTR查询/应答 • Netmeeting中的IP地址信息 • FTP PORT命令 • SIP协议等 • 只有完全处理了这些信息,应用才能正确工作

  12. NAT的分类 • 不同的产品的术语不同 • Linux下的NAT有两种实现 • 在路由处理时修改IP地址,只能实现1:1的翻译,不处理任何其他数据,这种NAT工作方式不在本课程中讨论 • Netfilter/iptables下的地址转换,是一种NAPT实现,是重点

  13. NAT的分类 • 对每个连接的第一个数据包的处理分类 • SNAT • 修改第一个连接包的源地址 • 常用于把内部的IP地址转换成正式IP地址对外通信 • DNAT • 修改第一个连接包的目的地址 • 常用于从外面访问内部的服务器

  14. 地址换换 SNAT 10.0.0.1:1024 -> 202.38.64.2:80 61.132.182.2:8133 ->202.38.64.2:80 NAT设备 客户机 服务器 61.132.182.2:8133 <- 202.38.64.2:80 10.0.0.1:1024 <- 202.38.64.2:80 内部网络 外部网络 源地址转换 SNAT

  15. 地址换换 DNAT 10.0.0.1:80 <- 202.38.64.2:1024 61.132.182.2:80 <- 202.38.64.2:1024 NAT设备 服务器 客户机 61.132.182.2:80 -> 202.38.64.2:1024 10.0.0.1:80 -> 202.38.64.2:1024 内部网络 外部网络 目的地址转换 DNAT

  16. NAT的分类 • Cisco • Inside source / Inside destination • Outside source / Outide destination

  17. Cisco更具体信息 • Deploying and Troubleshooting Network Address Translation: http://210.45.224.8/~james/cw2003/NMS-2102.pdf

  18. nat 中的内定规则链 进来的数据包 发出的数据包 PRE ROUTING POST ROUTING 路由 PREROUTING 处理DNAT规则 POSTROUTING 处理SNAT规则 本机

  19. 例子

  20. Linux 配置 echo 1 > /proc/sys/net/ipv4/ip_forward ip add add 218.22.10.4/24 dev eth0 ip addr add 192.168.0.1/24 dev eth1 ip link set eth0 up ip link set eth1 up ip route add 0/0 via 218.22.10.1 iptables –t nat –A POSTROUTING –j SNAT –to 218.22.10.1 –o eth0

  21. 复杂的设置 #1增加一个IP地址, 含义是让Linux能接收到发送给218.22.10.5的数据包,以便进行地址转换 ip addr add 218.22.10.5 dev eth0 #2将所有发送给218.22.10.5的数据包,转换成发送给192.168.0.2 iptables -t nat -A PREROUTING -j DNAT –d 218.22.10.5 --to 192.168.0.2 #3将所有由192.168.0.2发出的数据包,转换成由218.22.10.5发出 iptables -t nat -A POSTROUTING -j SNAT --to 218.22.10.5 -s 192.168.0.2 -o eth0

  22. 设置(2) #4 从内部发送给192.168.0.2的要进行转换为从网关发出的,否则内部的机器无法连接218.22.10.5,因为返回的数据包不经过网关就发送回去了 iptables -t nat -A POSTROUTING -j SNAT --to 192.168.0.1 -s 192.168.0.0/24 -d 192.168.0.2 -o eth1 #5其他的转换 iptables -t nat -A POSTROUTING -j SNAT --to 218.22.10.4 -s 192.168.0.0/24 -o eth0

  23. Linux 网关

  24. 设置要求 • 网关的eth0接口接电信出口,可用的地址段为218.22.166.98-218.22.166.110掩码255.255.255.240,网关是218.22.166.97。 • eth2接内部网络,地址为192.168.1.254。 • 内部网络的IP地址范围为192.168.*.*。 • 192.168.1.11 地址转换成218.22.166.101,作为www服务器,开放80端口 • 192.168.1.12地址转换成218.22.166.102,作为邮件服务器,开放25、80、110、143端口 • 其它计算机转换为218.22.166.99,这个IP也是Linux网关的IP地址

  25. 基本设置 ip addr add 218.22.166.99/28 dev eth0 ip addr add 218.22.166.101/28 dev eth0 ip addr add 218.22.166.102/28 dev eth0 ip addr add 192.168.1.254/24 dev eth2 ip link set eth0 up ip link set eth2 up #缺省路由 ip route add 0/0 via 218.22.166.97 #到校内192.168.*.*的路由,下一跳是主干交换机的IP地址 ip route add 192.168.0.0/16 via 192.168.1.253

  26. NAT设置 iptables -t nat -A PREROUTING -j DNAT -d 218.22.166.101 --to 192.168.1.11 iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.1.11 --to 218.22.166.101 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.0.0/16 -d 192.168.1.11 --to 192.168.1.254 iptables -t nat -A PREROUTING -j DNAT -d 218.22.166.102 --to 192.168.1.12 iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.1.12 --to 218.22.166.102 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.0.0/16 -d 192.168.1.12 --to 192.168.1.254

  27. NAT设置 #其他出去的转换,都转化成从网关的IP出去的 iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.0.0/16 --to 218.22.166.99

  28. 包过滤设置 #首先允许所有建立的连接 iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED #www服务器,允许连接TCP80端口,其他的被拒绝,并记录日志 #记录日志时每分钟最多记录10条日志 iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.11 --dport 80 iptables -A FORWARD -j LOG -d 192.168.1.11 -m limit --limit 10/min --log-prefix " WWW "

  29. 包过滤设置 #mail服务器 iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.12 --dport 25 iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.12 --dport 80 iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.12 --dport 110 iptables -A FORWARD -j ACCEPT -p tcp -d 192.168.1.12 --dport 143 iptables -A FORWARD -j LOG -d 192.168.1.12 -m limit --limit 10/min --log-prefix " mail " iptables –A FORWARD –j DROP –o eth2

  30. Linux下实现透明网桥型包过滤 • Linux 下bridge,实现了网桥的功能,包括STP生成树协议 • 使用ebtabls bridge+nf patch可以实现网桥型的包过滤 • iptables –m physdev 扩展 • --physdev-in • --physdev-out

  31. 透明网桥包过滤 eth0 eth1 外部网络 Linux 机器 服务器 要求:设置透明网桥包过滤

  32. 透明网桥包过滤 brctl addbr br0 brctl addif br0 eth0 brctl addif br0 eth2 ip link set eth0 up ip link set eth1 up ip link set br0 up ip addr add xx.xx.xx.xx/y br0

  33. 透明网桥包过滤 iptables –A FORWARD –j ACCEPT –m state --state ESTABLISHED,RELATED iptables –A FORWARD –j ACCEPT –d server_ip –p tcp --dport 80 iptables –A FORWARD –j DROP –m physdev --physdev-out eth1

  34. 防火墙产品 • 基于通用平台的软件系统 软件型 • 基于专用平台的集成产品 • ASIC芯片实现包处理 • 通用CPU实现包处理

  35. 基于通用平台的软件产品 • 基于通用的硬件、软件平台 • 如基于Windows NT系统、Solaris系统 • 价格相对较低 • 功能丰富 • 强调认证的较多 • 安全性依赖于底层的操作系统 • 在国内商用的不多 • Check-Point

  36. 专用ASIC芯片实现的 • 典型产品为Netscreen公司产品 • 利用ASIC芯片实现包过滤、地址转换、加密处理 • 可以得到极高的性能 • Netscreen 5400 • 12Gbps 3DES加密到6Gbps

  37. 大部分的防火墙 • 基于IA架构 • CPU: PII PIII • 专用的软件 • Cisco PIX,专门开发的操作系统 • 在Linux或Free BSD的基础上加固得到的操作系统 • 减少不必要的模块 • 增强一些安全性 • 国内的产品90%多属于这类

  38. 不当的设置防火墙会造成问题 • 完全过滤icmp消息可能会导致Path MTU discovery blackhole • MTU Max Transmit Unix 最大传输单元,Ethernet是1500 • MSS Max Segment Size TCP中一个包的最大数据长度,一般是1500-40 • TCP建立连接时会发送 MSS 选项 • 有些链路MTU可能会比1500小

  39. Path MTU Discovery Router1 Router2 MSS 1460 Size: 1500 DF MTU 1400 ICMP Frag need Server Client Server接收到ICMP错误消息后,会减小 发送的大小

  40. Path MTU Discovery Router1 Router2 MSS 1460 Size: 1500 DF MTU 1400 X ICMP Frag need Server Client 如果Server接收不到ICMP错误消息,Client端无法 从Server端接收到大数据包

  41. Path MTU Discovery • 故障现象 • telnet xx.x.x.x 80能连接上 • 无法取得稍微大一点的文件 • 对方是Solaris、BSD服务器常见 • 解决方法 • 让ICMP包正确通过(type 3/code 4) • 让所有链路的MTU=1500 • 修改tcp第一个连接包的MSS

  42. 设置不正确的超时导致的问题 Internet NAT Firewall Server Client 防火墙上设置连接永不超时 工作一段时间后发现经常无法连接Server 原因: NAT超时后,新的连接的SYN包被Firewall 认为是非法数据包丢弃了

  43. Socks协议 • Socks protocol version 4 • 仅仅支持TCP • Socks protocol version 5 • RFC 1928 • 支持UDP • 支持灵活认证

More Related