| 关键词: nbsp 文件 系统 黑客 口令 用户 机器 程序 服务器 配置 |
我的评价: 本书讲述了linux安全的方方面面,并且以一问一答的方式介绍,思路清晰。文中提供了很 多有益的安全提示,是Linux系统维护人员的必备参考书。通过本书,你能了解到linux安 全的整体概念,从系统安全到应用安全,从单机安全到网络安全。但安全问题是一个不断变 化不断更新的过程而不是一个解决方案,所以本书只是提到当时为人所发现的安全问题的介 绍,新出现的安全问题可参考该书网站的更新和网上的安全警告。 第一章 linux安全问题概述 粘着位(Sticky bit) 如果用户对目录有写权限,则可以删除其中的文件和子目录,即使该用户不是这些文件的所 有者,而且也没有读或写许可。粘着位出现执行许可的位置上,用t表示,设置了该位后, 其它用户就不以删除不属于他的文件和目录。但是该目录下的目录不继承该权限,要再设置 才可使用。 # chmod 1770 xxx 文件属性 chattr命令修改 lsattr命令列出文件属性 文件属性定义 A 不要更新atime文件,当在笔记本电脑或NFS上限制磁盘I/0流量时,很有用,除2.0 系列外,这一属性不被其它内核支持。 a 文件仅能以追加方式打开,只有root才能设置这个属性。 c 文件保存在磁盘时,内核将自动压缩该文件。 d 文件标记,使其不能被转储。 i 文件不能被修改,删除或重命名,不能创建任何指向它的链接,并不能写入任何数据。 s 删除文件时,相应的磁盘存储块清零。 S 修改文件时,对其写入进行同步。 u 删除文件时,保存其内容。 Ulimit命令 设置限制 可以把命令加到profile文件里,也可以在/etc/security/limits.conf文件中定义 限制。 命令参数 -a 显示所有限制 -c core文件大小的上限 -d 进程数据段大小的上限 -f shell所能创建的文件大小的上限 -m 驻留内存大小的上限 -s 堆栈大小的上限 -t 每秒可占用的CPU时间上限 -p 管道大小 -n 打开文件数的上限 -u 进程数的上限 -v 虚拟内存的上限 除可用Ulimit命令设置外,也可以在/etc/security/limits.conf文件中定义限制。 domino type item value domino是以符号@开头的用户名或组名,*表示所有用户,type设置为hard or soft。item指 定想限制的资源。如cpu,core nproc or maxlogins 。value是相应的限制值。 信号 # kill -TERM XXXX 终止信号 # kill -HUP HTTPD 重读配置信号 特权端口 root用户是可绑定端口小于1024的惟一用户。可以信任来自于远程机器端口小于1024的连 接。 第二章 预防措施与从入侵中恢复 系统安全 简单的FIND命令 # find / \(-perm -02000 -o -perm -4000 \) -ls 可以找出系统中所有的setuserid and setgroupid 程序。 在最严格的情况下,可以去掉除/bin/su外所有已安装程序的setXid位。 系统安全扫描工具 cops tiger Nabou 扫描检测器 黑客入侵系统前所做的第一件事就是从网络上扫描系统,扫描检测器能及时获知,是一个良 好的入侵检测系统(IDS) Klaxon Courtney Scanlogd PortSentry 加固系统 Bastille项目创建了一组模块来加固新近发布的REDHAT。在安装完系统后可运行该补丁, 在什么时候都可运行,不必要一定是刚安装完系统。 加固的方法是:1、下载源代码到/root目录并解包。以root身份动行InteractiveBastille.pl脚 本。在回答完问题后,程序将做出相应改动。配置完成后,该工具把其保存在BackEnd.pl 中,如果希望加固同样配置的服务器,将它复制到新服务器并运行AutomatedBastille.pl即可。 Openwall Linux补丁 它是一个内核补丁。要这些补丁起作用,用户必须重新编译和安装新的打上补丁的内核。在 某些情况下,这些内核补丁和标准linux不完全兼容,因此在决定使用前必须确信理解其含 义。 LIDS 它包括内核级的端口扫描检测程序和安全警告程序。是内核补丁(现在适用于2.2.X和2.4.X, 但以后将不再支持2.2)和系统管理工具。其特性包括: 1、高级文件保护,甚至root也不能发现和处置受LIDS保护的文件。 2、进程保护,内核拒绝向受保护的进程发送信号(例如SIGKILL),进程也可以被完全隐 藏起来,在/proc下不会存在任何痕迹。 3、更好的访问控制,更有效地使用与特权相关的权能,包括禁止root更改这些权能。 4、内置式端口扫描检测,内置于内核的扫描程序能够检测到Nmap,SATAN等工具的绝大 部分扫描。 要安装LIDS,必须下载最新的linux内核正式版和LIDS源代码。使用LIDS给内核打上补丁, 然后重新编译内核。 日志文件分析 syslogd消信可标记为特定的功能和级别,在/etc/syslog.conf文件中可以根据这两个选项来设 置消信的去向。 syslogd功能 描述 auth 安全性/验证消息(负面) authpriv 安全性/验证消息 cron cron and at daemon 其它系统守护进程(sshd,xinetd,pppd等) kern 内核消息 lpr 行打印系统 mail 邮件子系统(sendmail,postfix,qmail等) news Usenet新闻消息 syslog 内部syslog消息 user 一般用户级消息 uucp UUCP子系统 local0-local7 自定义的级别 日志级别 描述 emerg 系统已不可用 alert 必须马上采取行动 crit 危急 err 错误 warning 警告 notice 普通但重要的情形 info 通知消息 debug 调试消息 syslog.conf每一行的配置格式为 facility.loglevel logtarget,所有字段用tab隔开 例子: daemon.notice /var/log/daemon.log 把程序发送过来的功能为daemon,优先级为notice 或更高级别的所有日志消息记录到/var/log/daemon.log文件中,可以使用*号表示匹配所有功 能或日志级别。 目标 描述 /path/to/filename 将消息附加到所指定文件的文件尾,这是最常用的情形。 @loghost 写到loghost机器上的syslog服务器。可方便把日志发来多台机器上, |/path/to/named_pipe 写到指定的命名管道(便于用外部程序过滤消息)。 user1,user2 写到所列用户。 * 写到所有登录用户。 /dev/console 写到已命名的终端。 日志文件许可 应设置日志只为root所有和写入,同时能够被log组(或你所希望的组)读取,而其他用户 没有任何权限。一个用户在输入用户名的地方使用了口令,在登录失败时,将会把用户名(在 此例中为口令,因为用户失误)记录到日志中。然后创建一个属于log组的虚构用户,并让 所有日志检查程序以该用户而不是root运行。日志检查程序不应当以root用户运行。 可以通过日志分析软件开监控日志,如logcheck,swatch和logsurfer。但最好的工具还是管理 员自已写的脚本。 文件系统完整性检查 修改文件系统是黑客在侵入系统之后经常要做的一件事情,下面列出了经常被修改的一些文 件: 类型 例子 服务器配置文件 /etc/inetd.conf,/etc/ftpaccess 网络配置文件 /etc/host.conf,/etc/sysconfig/network 系统配置文件 /etc/ld.so.conf,/etc/nsswitch.conf crontab /etc/cron.daily/*,/var/spool/cron/root setuserid程序 /bin/su,/bin/ping,usr/bin/chfn,/sbin/dump setgroupid程序 /sbin/netreport,/usr/bin/lpr,/usr/bin/write,/usr/bin/man 如果知道机器何时被入侵,就可以判断修改时,并了解哪些东西被修改了,例如想知道在9 月17日发生的侵入事件中被修改的所有文件,可以执行如下命令: # touch 09170000 /tmp/comparison # find / \( -newer /tmp/comparison -o -cnewer /tmp/comparison \) -ls 但记住,检查文件时间所给出的统计结果是不可靠的,touch命令可以更改任何文件的修改 时间(mtime)和访问时间(atime). 校验和 校验和是一个使用数学算法生成的字符串,可以用来判断两个文件是否相同,即使在一个文 件中只改动了一位,它们的校验和也会不同。通常 用md5sum命令。 # md5sum xxx 文件许可 通过检查文件许可,用户可以知道修改发生的时间,并判断其行为是合法,意外还是恶意的, 同时确定其对系统的影响。 生成校验和与许可数据库 在黑客入侵系统前生成文件的校验和,下面是一个快捷的perl脚本,能够使用户生成自已 的文件许可和校验和数据库(文本)。 #!/usr/bin/perl use MD5; require 'find.pl'; $md5 = new MD5; @dirs = @ARGV; for $dir ( @dirs ) { find($dir);} sub wanted { push @files,$name;} for $name ( sort @files ) { ($uid,$gid) = (stat $name)[4,5]; $stat = sprintf "%0o",(stat _)[2]; unless ( -f $name ) { printf "$stat\t$uid $gid\t\t\t\t\t\t$name\n"; next; } $md5->reset(); open FILE,$name or print(STDERR "Can't open file $name\n"),next; $md5->addfile(FILE); close FILE; $checksum = $md5->hexdigest(); printf "$stat\t$uid $gid $checksum\t$name\n"; } 生成的数据库尽量不要放在本机上,要放在其它机器上或一次写多次读(CDR)的机器上。 现有的文件完整性工具 Tripwire AIDE Nabou 如何知道系统何时被黑 发现系统被入侵的方法: 1、主页变化 2、磁盘空间的急剧减少 用df工具查看磁盘使用情况 3、频繁地使用网络 使用netstat -na 或lsof输出,检查存在什么连接 4、来自其它管理员的联系 当你的机器被用于攻击其它机器时 5、混杂模式的网络接口 如果黑客想嗅探系统中可用的网络服务,会把网络接口设置 为混杂模式(捕获所有的包)。请检查 ifconfig -a输出的promisc以确定接 口模式。 6、抹去/截断的日志文件 检查syslog 7、被破坏的utmp/wtmp 8、系统中存在的新用户 黑客通常使用与现存的用户名相近的名称以减少被发现的 机会,例如与lp近似的lpr或uucp1等。或者 黑客方言中的名字,如t00r and own3d. 9、正在运行的陌生程序 10、不能解释的CPU使用情况 11、本地用户的远程帐号被破解 12、“看起来古怪”的事情 被入侵后应采取的措施 制止损害 1、 关闭所有网络接口,使黑客对系统丧失了交互行为的能力,但那些正在运行的进程仍然 2、 会继续运行。 3、 将系统切换到单用户模式,关闭所有正式的root进程和所有用户进程,任何剩下的进程 4、 可能就来自于黑客。 3、使用未被损害的linux启动盘重启系统。以只读模式加载系统,检查系统,以查看黑客 所动的手脚。 4、进行严重损害的控制。 破坏估计 以只读模式挂上所有分区,并记录所发现的任何事情。 1、找到可疑的文件和目录 口令文件,黑客工具和任何你没有放置在系统中的目录。这 些目录在你重启前可能是不可见的。 2、定位新的setuserid程序 任何新的setXid程序(尤其是属于root的)都极有可疑。 3、检查时间戳 检查黑客入侵之后发生变化的文件。 4、阅读日志文件 检查所有日志文件。 5、验证校验和 比较黑客入侵前后的校验和数据库。 6、验证所安装的软件包 确认正确的版本,黑客可以把软件降级,以让系统使用不安 全的版本。 7、手工验证配置文件 快速浏览,以确定变化,如web以root用户运行,或在 /etc/inetd.conf中出现了额外的服务器。 8、备份文件 9、特殊工具 有很多工具可以帮助检查系统,最新的是组件是coroners toolkit。 10、通知权威机构。 在线恢复 在确定了黑客行为后,有两个选择,1、堵上漏洞并对系统被篡改部份启用备份;2、重新安 装系统。最安全的方法是完全重新安装系统。 仅仅堵上发现的漏洞并继续运行通常要快得多,但是,你可能并不能确定黑客在系统中所做 的所有事情。黑客可留下在几个月后才发作的时间炸弹,也可能修改了系统二进制代码,使 其运行不稳定。因此,我们建议的把黑客从系统中清除出去的最好方法如下: 1、对重要文件进行备份。 2、完全格式化所有驱动器,(这也是对系统进行任何改变的最佳时间,例如添加硬盘或改变 分区大小,要充分利用停工期的有利条件) 3、从头安装linux版本,并且只包含那此必需的东西。 4、对已安装的软件包进行完全升级。 5、生成校验和并将之保存在安全的地方。 6、对配置文件进行必要的手工修改。不要仅仅从备份中复制这些文件,它们可能已经被改 变。 7、从备份中复制必要的文件。 8、重新检查从备份中安装的文件,确认其没有被破坏的迹像。 9、使用另一种方法计算文件系统的校验和。 10、第一次启用网络。 对于实际或觉察到的攻击,常用的对策是取消发动攻击的机器与本机通信的能力。具体做法 有如下几种: 1、使用tcp封装器,拒绝来自黑客ip的连接。 2、使用iptables规则,退回/拒绝来自该ip地址的包。 3、创建拒绝路由表以使本机不能和相应的ip地址通信,此时,仍然可以收到来自源地址的 包,但不能响应,从而破坏相互间的通信。 4、在防火墙上创建类似的拒绝访问列表。 第三章 对机器和网络踩点 在线搜索 新闻组/邮件列表搜索 internet上有很多新闻组/邮件列表或论坛,是向知识渊博的人请教问题的好地方,但也可能 在完全无意识下泄露了系统信息。比如公司的网络拓扑结构,安全配置情况,电话号码,管 理员名字,个人信息等。 对策: 对所发贴子要再三审读,删除任何有可能被黑客利用的信息。或使用与系统不相关的帐号发 送邮件,比如申请的免费邮箱。 whois数据库 ping扫射 ping扫射是指ping指定网络中的所有ip,如果机器正在监听ip地址,就会回应ping。从而 就知道它处于活动状态。有黑客通过这种方法列出所有正在运行的机器,然后决定攻击目标。 有两种不同的ping主机方法:ICMP ping and echo ping。可以用一些工具加速ping。其中两 个最有意义:Fping and Nmap ICMP ping方法:源机器向目的机器发送icmp echo request.如果目标机器正在运行,则会响 应icmp echo reply。 # ping -c 3 target echo ping方法:以udp or tcp包连接到目标机器的回显端口(端口7),如果机器在运行状态, 该端口直接回显发送过来的信息。 # telnet target.example.com echo Fping是一个直接了当的ping工具,可以在命令行列出需要ping的机器,也可以用文件方 式 # Fping -a < machinelist 如果要扫描整个网络(192.168.10.X),必须提供IP列表,在命令行用perl语句可以容量实 现。 # perl -e 'for (1..254) {print "192.168.10.$_\n"}' |fping -a -q 2>/dev/null Nmap是一种多用途的扫描工具,内置了ping扫描功能。 # nmap -sP 192.168.10.0/24 ping扫射对策 通过配置机器(iptables等)来拒绝进入的echo request包和出去的echo reply包。从而避免 响应icmp echo request。关闭本机回显服务。在/etc/inetd.conf中注释掉以下两行 echo stream tcp nowait root internal echo dgram udp wait root internal 再重启inetd。 dns问题 在linux上,最好的dns服务器是bind,它有几个版本,如果你是先锋派,bind9.x是最佳选择, 4.x是最稳定版本,8.x则是一个不错的过滤,大部分站点都是用这个版本。请保持bind的 版本是最新,最为它的安全漏洞较多,而且一旦发现漏洞,就会很被黑客利用。 尽量不要在配置文件中包含hinfo and txt信息。 区域传送 一般情况下,为了保证dns总是可以,每个域中,都有一个主dns机器,而其它都是次级dns, 每当dns区域发生变化时,次级dns机器就从主机器复制全部内容。系统成为次级dns的方 法是在named.conf中添加如下内容: zone "expample.com" { type slave; file "slave/expample.com"; masters {xxx.xxx.xxx.xxx}; }; 但是黑客也可以攫取区域文件(如果没有采取措施),下例给出使用host命令列出整个域中 所有NS,A和PTR记录的方法。 # host -t ns example.com # host -l example.com 对策: 配置主名字服务器时,使之不允许除次级服务器外机器的区域传送。在全局默认选项中设置 如下: option { .... allow-transfer {xxx.xxx.xxx.xxx}; ... } 警告:必须确保在主和从服务器上都禁止区域传送,因为从服务器也能接受区域传送请求。 任何未经授权的区域传送都会被syslog记录下来。 反解析是指从ip到域名的过程。可以用host命令实现。如果大量使用真实的主机名,会给 黑客知道机器的功能。所以最好在PTR记录中使用一般的反解析名如: xxx-xxx-xxx-xxx.example.com. 端口扫描 黑客会运行一个或多个端口扫描工具来了解目标系统提供的服务。工具主要有 netcat,strobe,nmap(best)。玩转nmap可以学到很多东西。包括自已的系统,也包括网络方面。 网络漏洞扫描程序 iss,satan,Nessus 加密文件系统 CFS,TCFS,BestCrypt,PPDD,Encrypted 第四章 社交工程、特洛伊木马和其他黑客伎俩 第五章 物理攻击 物理攻击小结 1、不要把口令或访问ID记在别人可以看到的地方。 2、不要把电话本,组织结构图,备忘录,内部手册,会议安排或内部安全策略遗忘在容量 被阅读或偷窃的地方。 3、在丢弃打印文档,电子介质或客户数据时必须谨慎从事,把敏感材料标记为“敏感”,在 处理前粉碎敏感的文件和手册。抹去电子介质中的数据,并且把所有的垃圾箱放置在照明状 况良好的保护区域。 4、在标记网络设施时必须谨慎。将这些信息记录在清楚的网络图中,并将其锁起来。 5、 使用好的屏幕保护程序,确保带有口令,并且在运行时隐藏屏幕内容。将延迟时间设置 6、 为合理值---在合理时间后就运行它。 6、必须离开系统时,锁定屏幕。 7、 使用便携机时,必须尽可能在所有时间都将其带在身边。对窃贼的那些把它从你身过分 8、 开的诡计保持警惕。对进入工作场所的每个便携机贴上标签,在带离时对其进行安全检查。 8、避免使用双重启动系统,linux的安全性取决于机器中安装的安全性最差的系统。 9、在启动加载时程序中设置保护口令,防止可能获得root权限的非法重启方式。 10、设置BIOS口令,以防止其被修改。 11,将所有敏感系统放在加锁的房间,以防止破坏。 12、使用好的加密文件系统可以防止那些获得系统权限的人看到机密数据。这应当作为安全防卫的底线。 第六章 网络攻击 合法的tcp标志组合 标志组合 含义 SYN 这是tcp连接的第一个数据包,表示希望与目标系统建立连接。 SYN|ACK 目标系统通过确认原始消息和发送SYN信息来响应SYN数据包。 ACK 在连接建立期间的每一个数据包都要设置其ACK位,以确认前面收到的数据 包。 FIN 在连接准备关闭时,发送FIN给对方。 FIN|ACK 这一组合用于确认第一个FIN包,并完成关闭步骤。 RST 当系统接收到不期望的数据包时,发送RST包重置连接---例如,系统在未发出SYN 的情况下收到SYN|ACK。 ICMP类型代码 类型代码 ICMP消息 0 回波响应(响应PING) 3 目的地址不可到达 4 源终结 5 重定向 8 回波(PING请求) 11 TTL超时 12 参数问题 13 请求时间戳 14 响应时间戳 17 地址掩码请求 18 地址掩码响应 攻击错误配置的NFS导出 为了保护文件系统不被非法访问,应当让防火墙阻塞NFS,通过阻止对NFS(2049端口) 的进入连接可以做到这一点。如果内部确实需要,确保它只导出必需的文件系统。例如,在 允许远程加载用户主目录时,使用/home 替代/。为了验证是否正确配置了NFS,检查 /etc/exports和/etc/dfs/dfstab以确信没有以读写权限向外导出任何东西。 攻击Nestscape默认配置 SuiteSpot是一个工具用于管理web服务器,其中包含实现这一功能的java and javascript code. 它将Nestscape服务器的用户名和口令配置保存在服务根目录下的文件中,默认可被任何人 读取。位于/web_server root/admin-serv/config/admpw。在网络上使用web浏览器并将url指 向该文件,就可获得。文件格式为user:password。虽然这个文件是加密的,但可以对口令进 行蛮力攻击。所以应保护admpw文件, 攻击配置错误的Squid服务器 Squid可以被错误地配置成允许外部地址作为访问内部系统的代理。这使攻击者能够以该服 务器为代理来察看或访问内部网络,即使其地址不能被路由。squid.conf文件的一个错误配 置如下: tcp_incoming_address <squid system external address> tcp_outgoing_address <squid system internal address> udp_incoming_address <squid system external address> udp_outgoing_address <squid system internal address> 对策: 首先设置正确的防火墙规则以阻塞外部地址对端口3128(代理端口)的连接。然后编辑配 置文件,确信下面这些内容的正确性。 tcp_incoming_address <squid system internal address> tcp_outgoing_address <squid system external address> udp_incoming_address <squid system internal address> udp_outgoing_address <squid system external address> x windows system 它使用端口6000---6063 攻击错误的X 配置。xhost工具用于保障X的基本安全性,用户可以使用这一程序指定允 许连接本地X服务器的系统。如果不带参数执行,则列出所有允许连接的系统,可以通过 如下命令添加新和系统。 # xhost + <system name> 如果省略system and name,则任何系统都可以建立连接。这样入侵者可以通过xkey程序记 录用户在X窗口介面上的所有击键序列。另一个类似程序是xscan,可以扫描网络以查找X 系统的漏洞。 对策: 主要是在防火墙上阻塞端口6000--6063。 # ipchains -A input -p tcp -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 6000:-6063 如果不允许阻塞,可以-auth参数启动xinit程序。则系统将在认证时使用“magic cookies”。 或者以ssh传送X会话。使用X11的ssh时,远程root用户对本地X服务器拥有全部权限。 在双方信任时才使用X11的ssh。 默认口令 Prianha red hat提供的用于linux 服务器的Prianha虚拟服务器和平衡软件包。在Prianha-gui程序的 0.4.12版中存在一个名为prianha的帐号,其默认口令为q。 对策是修改所有系统和网络设备的默认口令。 嗅探网络信息 嗅探器工作时,将网卡设置成所谓的混杂模式,在该模式下,网卡会将每个帧的数据都传送 给协议而不检查其MAC地址。这样,系统中的嗅探器就能够检查帧中的数据,并摘取感兴 趣的信息。其中包括报头信息或其它信息,如口令和用户名。很多协议以未加密方式发送敏 感信息,因此黑客就能够使用嗅探器获是系统的访问权限。如telnet,ftp,http中的口令和用户 名都直接在网络上传播,此外,一些基于web的管理工具也以一般的http协议来传送用户 名和口令,例如webmin就是这样的。避免受到嗅探器危害的最好办法是不要在网络上以未 经加密的方式传送用户名和口令,通过使用ssh 代替telnet,用https代替http传送敏感信息 可大大加强安全性。 常见的嗅探器 tcpdump,hunt,linux-sniff,snort 口令猜测 在大多数linux中,口令长度被限制在8个字符。如果只能使用小写字母,则总畏惧26的8 次方(大约2090亿)种组合,如果允许使用大写字母和数字,则有62的8次方(大约218 万亿)种组合。 对策: 保护系统帐号,关闭finger and rwho服务。限制root只能从控制台登录。可以通过修改 /etc/securetty文件做到这一点。这个文件列出了root可以登录的tty(终端),在该文件中只 包括tty1--tty6,就能限制root只能从控制台登录。如果从该文件中删除所有行。则任何人 在获得root权限前必须首先以其他用户登录,然后使用su。修改/etc/login.def中的最小口令 长度。 缓冲区溢出漏洞 当开发者在程序中采用错误的方法编写操作代码时,则可能导致缓冲区溢出。罪魁祸首多半 是标准C语言中的字符串函数。例如strcat(),strcpy(),sprintf(),vsprintf(),scanf() and gets()。这 些函数在执行前不检查参数的大小。常见的攻击所针对的程序有 rpc.mountd(nfs),rpc.statd(nsf),imapd/popd,wu-ftp。一旦对系统尝试了缓冲区溢出攻击,通常会 从日志消息中看到这类行为。 对策: 对于不必要服务,关闭它们,或者在防火墙阻塞对其访问。如果服务是必须的,就只有一个 对策,就是使系统应用最新的补丁。 netstat,lsof工具能识别系统中运行的进程序,打开的端口等信息。但这些程序都不可靠,可 能会被黑客替换。可以用nmap从外部扫描系统以训别服务,因为从外部扫描,所以不会被 黑客在系统中所做的手脚所欺骗。 # nmap -sT -O xxxx 对本系统进行tcp扫描。 # nmap -sU -O xxxx 对本系统进行udp扫描。 第七章 恶意使用网络 DNS攻击 bind缓冲欺诈 dns是一个分布式系统,使用缓存来降低网络负载,在BIND8.1.1 和4.9.6版中存在一个问 题,即它们没有验证接收自其它名字服务器的信息的合法性。黑客利用这个漏洞可以在目村 服务器中插入伪造记录,引导客户到黑客的机器上来。从而捕获口令和敏感信息。 路由问题 源路由,允许发送者指定数据包到达目的地前在internet上经由的路径。这一特点对于网络 勘探很有用,但也能用来绕过安全网关和地址转换。 # cat /proc/sys/net/ipv4/conf/eth0/accept_source_route 0 表示不允许 1 表示允许 不正确的ip转发 /proc/sys/net/ipv4/ip_forward文件配置ip转发。0 表示禁止 1 表示允许。这个功能对于防 火墙和ip伪装网关是必要,但对于名字服务器,邮件服务器或堡垒主机则不必要。可能如 下禁止: # echo 0 > /proc/sys/net/ipv4/ip_forward /etc/sysctl.conf的 net.ipv4.ip_forward = 0控制系统 启动时是否允许。 Hunt 同时具有数据包嗅探和会话劫持功能。 对策: 采用openssh。 dsniff 是一组优秀的网络审计,测试和嗅探工具。 sshmitm 对客户端伪装成ssh服务器,而对服务器伪装成ssh客户端,默认时,它将记录所有用户名 和口令。 对策: sshmitm依赖于用户忽略对ssh主机密钥的检查,当第一次连接服务器时,将会在 $home/.ssh/known_hosts中添加主机密钥。应当比较这份密钥与实际服务器密钥(通常在文 件/etc/ssh/ssh_host_key.pub or /etc/ssh_host_key/.pub中)的一致性。如果两者不匹配,则说 明黑客已经介入过刚才的会话。并获得了口令,应马上断开连接,并通知系统管理员重新设 置口令,以防止帐号被黑客滥用。为了防止在无意中使用潜在不安全连接,应配置ssh进行 强制的主机密钥检查。即将如下几行写入到$home/.ssh/config的起始处。 Host * Stric |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|