收藏 分享(赏)

Unix类操作系统的TCPIP堆栈加固.doc

上传人:dzzj200808 文档编号:3889304 上传时间:2018-11-25 格式:DOC 页数:11 大小:58.50KB
下载 相关 举报
Unix类操作系统的TCPIP堆栈加固.doc_第1页
第1页 / 共11页
Unix类操作系统的TCPIP堆栈加固.doc_第2页
第2页 / 共11页
Unix类操作系统的TCPIP堆栈加固.doc_第3页
第3页 / 共11页
Unix类操作系统的TCPIP堆栈加固.doc_第4页
第4页 / 共11页
Unix类操作系统的TCPIP堆栈加固.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、Unix 类操作系统的 TCP/IP 堆栈加固TCP/IP 堆栈负责处理传入和传出 IP 数据包,并将数据包的数据路由到要处理这些数据的应用程序。由于自身的缺陷、网络的开放性以及黑客的攻击是造成互联网络不安全的主要原因。TCP/IP 堆栈负责处理传入和传出 IP 数据包,并将数据包的数据路由到要处理这些数据的应用程序。由于自身的缺陷、网络的开放性以及黑客的攻击是造成互联网络不安全的主要原因。TCP/IP 作为 Internet 使用的标准协议集,是黑客实施网络攻击的重点目标。TCPIP 协议组是目前使用最广泛的网络互连协议。但 TCPIP 协议组本身存在着一些安全性问题。由于 Unix 操作系

2、统众所周知的稳定性、可靠性,用来提供各种 Internet 服务的计算机运行的操作系统占很大比例的是 Unix 及 Unix 类操作系统,目前比较常见的运行在 PC 机上的 Unix 类操作系统有:Linux、BSD 、Solaris、AIX、HP-UX 等。Unix 类操作系统实现允许配置其操作以反击大部分网络级的攻击。本文主要向大家介绍几种 Unix 类操作系统的 TCP/IP 堆栈加固方法。对 TCP/IP 堆栈攻击的类型中的两种:扫描: 扫描或跟踪足迹是黑客的初始信息收集过程的一部分。在黑客能够攻击系统之前,他们需要收集关于该系统的信息,如网络布局、操作系统类型、系统可用服务、系统用户

3、等。黑客可以根据所收集的信息推断出可能的弱点,并选择对选定目标系统的最佳攻击方法。拒绝服务攻击:通常,黑客瞄准特定系统,闯入系统以便将其用于特定用途。那些系统的主机安全性经常会阻止攻击者获得对主机的控制权。但进行 拒绝服务攻击时,攻击者不必获得对系统的控制权。其目标只是使系统或网络过载,这样它们就无法继续提供服务了。拒绝服务攻击可以有不同的目标,包括 带宽消耗和 资源缺乏。拒绝服务攻击现在扩展到分布式拒绝服务攻击。一、ICMP 协议部分ICMP 是专门用作逻辑错误和诊断的信使。任何 IP 网络设备都有发送、接收或运作ICMP 消息的功能。虽然 ICMP 的设计者没有考虑今天出现的安全性问题,但

4、是他们已经设计了一些能使 ICMP 更有效运作的基本准则。为了确保 ICMP 消息不会淹没 IP 网络,ICMP 没有任何特别的优先级,它总是一种常规流量。ICMP 消息作为其他 ICMP 消息的响应而发送。这个设计机制是为了防止出现一个错误消息不断地重复制造出另一个错误消息。否则,它就真的是个大问题了。ICMP 不能作为多播或广播流量的响应而发送。针对 ICMP 协议的攻击包括:目的地不可到达攻击属于拒绝服务攻击 :ICMP 目的地不可到达消息向尝试转发消息的网关提供了一种工具,用来通知发送方:因为在数据报目的地地址中指定的主机不可到达,所以无法传递该消息。Smurf 攻击属于拒绝服务攻击:

5、Smurf 攻击是拒绝服务攻击的一种非常可怕的形式,因为它具有放大效应。Smurf 攻击利用 ICMP 回应消息。1、禁用 ICMP 回声广播活动AIX 5 #no -o directed_broadcast=0 FreeBSD 5-7 #sysctl -w net.inet.icmp.bmcastecho=0 HP-UX 10 #ndd -set /dev/ip ip_respond_to_echo_broadcast 0 #ndd -set /dev/ip ip_forward_directed_broadcasts 0 Linux2.4-2.6 #sysctl -w net.ipv4.i

6、cmp_echo_ig#nore_broadcasts=1 OpenBSD3-4 已经是缺省设置Solaris 8-10 #ndd -set /dev/ip ip_respond_to_echo_broadcast 0#ndd -set /dev/ip ip6_respond_to_echo_multicast 0#ndd -set /dev/ip ip_forward_directed_broadcasts 0则你的系统可能成为 Smurf 攻击者的工具。Smurf 攻击是以最初发动这种攻击的程序名“Smurf”来命名的。这种攻击方法结合使用了 IP 欺骗和 ICMP 回复方法使大量网络传输

7、充斥目标系统,引起目标系统拒绝为正常系统进行服务。Smurf 攻击通过使用将回复地址设置成受害网络的广播地址的 ICMP 应答请求(ping)数据包,来淹没受害主机,最终导致该网络的所有主机都对此 ICMP 应答请求做出答复,导致网络阻塞。更加复杂的 Smurf 将源地址改为第三方的受害者,最终导致第三方崩溃。2、禁用 ICMP 路由重定向AIX5 #no -o ipig#noreredirects=1#no -o ipsendredirects=0 FreeBSD 5-7 #sysctl -w net.inet.ip.redirect=0#sysctl -w net.inet.ip6.red

8、irect=0 HP-UX 10 #ndd -set /dev/ip ip_send_redirects 0#ndd -set /dev/ip ip_forward_directed_broadcasts 0 Linux2.4-2.6 #sysctl -w net.ipv4.conf.all.accept_redirects=0#sysctl -w net.ipv6.conf.all.accept_redirects=0#sysctl -w net.ipv4.conf.all.send_redirects=0#sysctl -w net.ipv6.conf.all.send_redirects

9、=0 OpenBSD3-4 #sysctl -w net.inet.icmp.rediraccept=0#sysctl -w net.inet6.icmp6.rediraccept=0 Solaris 8-10 #ndd -set /dev/ip ip_ig#nore_redirect 1#ndd -set /dev/ip ip6_ig#nore_redirect 1#ndd -set /dev/ip ip_send_redirects 0#ndd -set /dev/ip ip6_send_redirects 0否则您的系统可能被攻击者使其路由表错误。3、禁用 ICMP 广播探测AIX5 #

10、no -o icmpaddressmask=0 FreeBSD 5-7 #sysctl -w net.inet.icmp.maskrepl=0 HP-UX 10 #ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0#ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0 Linux2.4-2.6 #sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1OpenBSD3-4 已经是缺省设置Solaris8-10 #ndd -set /dev/ip

11、 ip_respond_to_address_mask_broadcast 0#ndd -set /dev/ip ip_respond_to_timestamp_broadcast二、IP 协议部分IP 协议是 TCP/IP 中最重要的协议之一,提供无连接的数据包传输机制,其主要功能有:寻址、路由选择、分段和组装。1、禁用 IP 源路由IP 协议允许一台主机指定数据包通过你的网络的路由,而不是允许网络组件确定最佳的路径。这个功能的合法的应用是用于诊断连接故障。但是,这种用途很少应用。这项功能最常用的用途是为了侦察目的对你的网络进行镜像,或者用于攻击者在你的专用网络中寻找一个后门。除非指定这项功

12、能只能用于诊断故障,否则应该关闭这个功能。AIX5 #no -o ipsrcroutesend=0#no -o ipsrcrouteforward=0 FreeBSD 5-7 #sysctl -w net.inet.ip.sourceroute=0#sysctl -w net.inet.ip.accept_sourceroute=0 HP-UX 10 #ndd -set /dev/ip ip_src_route_forward 0 Linux2.4-2.6 #sysctl -w net.ipv4.conf.all.accept_source_route=0#sysctl -w net.ipv4

13、.conf.all.forwarding=0#sysctl -w net.ipv4.conf.all.mc_forwarding=0 OpenBSD3-4 已经是缺省设置Solaris8-10 #ndd -set /dev/ip ip_forward_src_routed 0#ndd -set /dev/ip ip6_forward_src_routed 02、健全强制检查,也被称为入口过滤或出口过滤Linux2.4-2.6 #sysctl -w net.ipv4.conf.all.rp_filter=13、记录日志和丢弃 “Martian“数据包Linux2.4-2.6 #sysctl -w

14、 net.ipv4.conf.all.log_martians=1三、 TCP 协议部分TCP 使用三次握手机制来建立一条连接,握手的第一个报文为 SYN 包;第二个报文为 SYN/ACK 包,表明它应答第一个 SYN 包同时继续握手过程;第三个报文仅仅是一个应答,表示为 ACK 包。若 A 为连接方,B 为响应方,其间可能的威胁有:攻击者监听 B 方发出的 SYN/ACK 报文。攻击者向 B 方发送 RST 包,接着发送 SYN 包,假冒 A 方发起新的连接。B 方响应新连接,并发送连接响应报文 SYN/ACK。攻击者再假冒 A 方对 B 方发送 ACK 包。这样攻击者便达到了破坏连接的作用

15、,若攻击者再趁机插入有害数据包,则后果更严重。针对 ICMP 协议的攻击包括:TCP SYN 扫描属于端口扫描:TCP SYN 扫描是 端口扫描的变体。端口扫描用来检查给定主机上的端口是否打开。SYN 扩散属于拒绝服务攻击:Smurf 攻击流行之前,SYN 扩散攻击是最具破坏性的拒绝服务攻击。1、在 TCP 重负载下增加系统弹性(这使系统更能抵抗 SYN 洪水攻击)有以下几个步骤:购买更多的物理内存。使用 SYN Cookies (包括 Linux2.4-2.6、BSD )技术 。当半连接队列满时,SYN cookies 并不丢弃 SYN 请求,而是通过加密技术来标识半连接状态。限制同时打开的

16、 SYN 半连接数。增加最大半连接数:大量的 SYN 请求导致未连接队列被塞满,使正常的 TCP 连接无法顺利完成三次握手,通过增大未连接队列空间可以缓解这种压力。缩短 SYN 半连接的 timeout 时间通过增大 backlog 队列能防范 SYN 攻击;另外减少超时时间也使系统能处理更多的SYN 请求。timeout 超时时间,也即半连接存活时间,是系统所有重传次数等待的超时时间总和,这个值越大,半连接数占用 backlog 队列的时间就越长,系统能处理的 SYN 请求就越少。为缩短超时时间,可以通过缩短重传超时时间(一般是第一次重传超时时间)和减少重传次数来实现。AIX5 #no -o

17、 clean_partial_conns=1 FreeBSD 5-7 #sysctl -w kern.ipc.somaxconn=1024 HP-UX 10 #ndd -set /dev/tcp tcp_syn_rcvd_max 1024#ndd -set /dev/tcp tcp_conn_request_max 200 #ndd -set /dev/tcp tcp_time_wait_interval 60000 Linux2.4-2.6 #sysctl -w net.ipv4.tcp_max_syn_backlog=2048#sysctl -w net.ipv4.tcp_syncooki

18、es=1 #sysctl w net.ipv4.tcp_synack_retries=“0“OpenBSD3-4 已经是缺省设置Solaris8-10 #ndd -set /dev/tcp tcp_conn_req_max_q 1024#ndd -set /dev/tcp tcp_conn_req_max_q0 4096#ndd -set /dev/tcp tcp_time_wait_interval 60000说明:关于 SYN 攻击防范技术,归纳起来,主要有两大类,一类是通过防火墙、路由器等过滤网关防护,另一类是通过加固 TCP/IP 协议栈防范.但必须清楚的是,SYN 攻击不能完全被阻止

19、,我们所做的是尽可能的减轻 SYN 攻击的危害,除非将 TCP 协议重新设计。2、增加 TCP 发送和接受窗口为至少 32 kbytes 不过不要超过 64kbytesAIX5 #no -o tcp_sendspace=32768#no -o tcp_recvspace=32768FreeBSD 5-7 #sysctl -w net.inet.tcp.sendspace=32768#sysctl -w net.inet.tcp.recvspace=32768 HP-UX 10 已经是缺省设置Linux2.4-2.6 内核支持 RFC 1323 和 RFC 2018 可以动态调整OpenBSD3

20、-4 内核支持 RFC 1323 和 RFC 2018 可以动态调整Solaris8-10 #ndd -set /dev/tcp tcp_xmit_hwat 32768#ndd -set /dev/tcp tcp_recv_hwat 32768四、ARP 协议部分在 OSI 模型的第 2 层是数据链路层,该层提供了网络节点间的数据传输机制。该层重要的原因是它负责将数据分割成帧进行传输。在数据链路层上有许多值得我们探讨的不安全因素,但是其中最重要的是地址分辨协议(ARP)。1、减少 ARP 缓存清理时间间隔地址解析协议 ARP 正是用来进行 IP 地址到 MAC 地址的转换的.同时为了避免不必要

21、的ARP 报文查询,每台主机的操作系统都维护着一个 ARP 高速缓存 ARP Cache,记录着同一链路上其它主机的 IP 地址到 MAC 地址的映射关系.ARP 高速缓存通常是动态的,该缓存可以手工添加静态条目,由系统在一定的时间间隔后进行刷新。ARP 协议虽然是一个高效的数据链路层协议,但作为一个局域网协议,它是建立在各主机之间相互信任的基础上的,所以 ARP 协议存在以下缺陷:ARP 高速缓存根据所接收到的 ARP 协议包随时进行动态更新;ARP 协议没有连接的概念,任意主机即使在没有 ARP 请求的时候也可以做出应答;ARP 协议没有认证机制,只要接收到的协议包是有效的,主机就无条件的

22、根据协议包的内容刷新本机 ARP 缓存,并不检查该协议包的合法性.因此攻击者可以随时发送虚假 ARP 包更新被攻击主机上的 ARP 缓存,进行地址欺骗或拒绝服务攻击. 调整 ARP 清理的时间,通过向 IP 路由缓冲填充伪造的 ARP条目可以让恶意用户产生资源耗竭和性能减低攻击。AIX5 #no -o arpt_killc=20 FreeBSD 5-7#sysctl -w net.link.ether.inet.max_age=1200 Solaris8-10#ndd -set /dev/arp arp_cleanup_interval 60000Linux2.4-2.6 #sysctl -w net.link.ether.inet.max_age=1200说明:ARP 缓存清理时间间隔如果定得太大,对于一个大网来说,有可能不能分配到ip(某些分到 ip 地址的主机没开,也占用地址) ,定得太小,引起大量广播风暴。总结:主要向大家介绍强化 Unix 类家族系统的 TCP/IP 堆栈的方法。其实非常简单,通过对命令行配置,就可以保护或者减缓 Unix 类服务器免遭网络级别的拒绝服务攻击,包括 SYN 洪水攻击、ICMP 攻击和 SNMP 攻击。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > linux/Unix相关

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报