linux运维技术.doc_第1页
linux运维技术.doc_第2页
linux运维技术.doc_第3页
linux运维技术.doc_第4页
linux运维技术.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CentOS服务器优化 服务器操作建议 1、严格按照目录规范操作服务器 2、远程服务器不允许关机 3、不要在服务器访问高峰运行高负载命令 4、远程配置防火墙时,不要把自己踢出服务器一、禁用不必要的服务ntsysv命令:前面带*号的代表下次开机自启动!一定要开启的基础服务: network 网络服务 sshd ssh远程管理服务 syslog 系统日志服务 iptables 防火墙服务 crond 系统计划任务服务 xinetd 系统超级守护进程服务二、关闭多余的控制台及禁止ctrl+alt+del1、修改/etc/inittab文件注释掉多余的控制台,保留2个就可以如:#3:2345:respawn:/sbin/mingettytty32、禁止ctrl+alt+del快捷键【热启动快捷键】如:#ca:ctrlaltdel:/sbin/shutdown-t3 -r now三、网络优化1、禁止ping echo1 /proc/sys/net/ipv4/icmp_echo_ignore_all#原值为02、禁止源路由包(防止源欺骗) echo1 /proc/sys/net/ipv4/conf/*/accept_source_route3、打开SYNcookie选项,禁止SYN攻击 echo1 /proc/sys/net/ipv4/tcp_syncookies【注意】因为这些数据是保存在/proc目录下的,所以,一旦服务器重启,这些数据就会归零!所以,应该将这些命令写到开机自启动的目录下!四、严格的安全策略1、密码合理并定期跟换 密码三原则:复杂性、易记忆性、时效性2、合理分配权限3、使用ssh远程管理,最好不要使用telnet,因为telnet是明文传输的! 4、保证/etc/shadow的安全,shadow文件保存了Linux中的真正的密码!5、定期备份重要数据和日志五、定时升级Linux系统 yum -y update #在线自动升级附:John暴力破解工具1、下载 1)/john/ 2)下载字典2、安装 1)安装gccyum -y install gcc 2)解压 tar-zxvf john-1.7.9.tar.gz 3)cd 解压目录/src/ 4)make make clean linux-x86-mmx3、使用 cp /etc/shadow /root chmod 777 /root/shadow john目录/run/john /root/shadow#如果需要使用字典,则需要在需破解的文件前加-w选项4、查看run/john -show /etc/shadowcat run/john.potCentOS安全加固时间:2014-04-23 00:29来源: 作者:xyz846 举报 点击: 373次Redhat是目前企业中用的最多的一类Linux,而目前针对Redhat攻击的黑客也越来越多了。我们要如何为这类服务器做好安全加固工作呢? 一. 账户安全1.1 锁定系统中多余的自建帐号检查方法:执行命令#cat /etc/passwd#cat /etc/shadow查看账户、口令文件,与系统管理员确认不必要的账号。对于一些保留的系统伪帐户如:bin, sys,adm,uucp,lp, nuucp,hpdb, www, daemon等可根据需要锁定登陆。备份方法:#cp -p /etc/passwd /etc/passwd_bak#cp -p /etc/shadow /etc/shadow_bak加固方法:使用命令passwd -l 锁定不必要的账号。使用命令passwd -u 解锁需要恢复的账号。风险:需要与管理员确认此项操作不会影响到业务系统的登录1.2设置系统口令策略检查方法:使用命令#cat /etc/login.defs|grep PASS查看密码策略设置备份方法:cp -p /etc/login.defs /etc/login.defs_bak加固方法:#vi /etc/login.defs修改配置文件PASS_MAX_DAYS 90 #新建用户的密码最长使用天数PASS_MIN_DAYS 0 #新建用户的密码最短使用天数PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数PASS_MIN_LEN 9 #最小密码长度9风险:无可见风险1.3禁用root之外的超级用户检查方法:#cat /etc/passwd 查看口令文件,口令文件格式如下:login_name:password:user_ID:group_ID:comment:home_dir:commandlogin_name:用户名password:加密后的用户密码user_ID:用户ID,(1 6000) 若用户ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0。group_ID:用户组IDcomment:用户全名或其它注释信息home_dir:用户根目录command:用户登录后的执行命令备份方法:#cp -p /etc/passwd /etc/passwd_bak加固方法:使用命令passwd -l 锁定不必要的超级账户。使用命令passwd -u 解锁需要恢复的超级账户。风险:需要与管理员确认此超级用户的用途。1.4 限制能够su为root的用户检查方法:#cat /etc/pam.d/su,查看是否有auth required /lib/security/pam_wheel.so这样的配置条目备份方法:#cp -p /etc/pam.d /etc/pam.d_bak加固方法:#vi /etc/pam.d/su在头部添加:auth required /lib/security/pam_wheel.so group=wheel这样,只有wheel组的用户可以su到root#usermod -G10 test 将test用户加入到wheel组风险:需要PAM包的支持;对pam文件的修改应仔细检查,一旦出现错误会导致无法登陆;和管理员确认哪些用户需要su。当系统验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性。如果是因为PAM验证故障,而引起root也无法登录,只能使用single user或者rescue模式进行排错。1.5 检查shadow中空口令帐号检查方法:#awk -F: ( = ) print /etc/shadow备份方法:cp -p /etc/shadow /etc/shadow_bak加固方法:对空口令账号进行锁定,或要求增加密码风险:要确认空口令账户是否和应用关联,增加密码是否会引起应用无法连接。 二、最小化服务2.1 停止或禁用与承载业务无关的服务检查方法:#who r或runlevel 查看当前init级别#chkconfig -list 查看所有服务的状态备份方法:记录需要关闭服务的名称加固方法:#chkconfig -level on|off|reset 设置服务在个init级别下开机是否启动风险:某些应用需要特定服务,需要与管理员确认。三、数据访问控制3.1 设置合理的初始文件权限检查方法:#cat /etc/profile 查看umask的值备份方法:#cp -p /etc/profile /etc/profile_bak加固方法:#vi /etc/profileumask=027风险:会修改新建文件的默认权限,如果该服务器是WEB应用,则此项谨慎修改。四、网络访问控制4.1 使用SSH进行管理检查方法:#ps aef | grep sshd 查看有无此服务备份方法:加固方法:使用命令开启ssh服务#service sshd start风险:改变管理员的使用习惯4.2 设置访问控制策略限制能够管理本机的IP地址检查方法:#cat /etc/ssh/sshd_config 查看有无AllowUsers的语句备份方法:#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak加固方法:#vi /etc/ssh/sshd_config,添加以下语句AllowUsers *10.138.*.* 此句意为:仅允许/16网段所有用户通过ssh访问保存后重启ssh服务#service sshd restart风险:需要和管理员确认能够管理的IP段4.3 禁止root用户远程登陆检查方法:#cat /etc/ssh/sshd_config 查看PermitRootLogin是否为no备份方法:#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak加固方法:#vi /etc/ssh/sshd_configPermitRootLogin no保存后重启ssh服务service sshd restart风险:root用户无法直接远程登录,需要用普通账号登陆后su4.4 限定信任主机检查方法:#cat /etc/hosts.equiv 查看其中的主机#cat /$HOME/.rhosts 查看其中的主机备份方法:#cp -p /etc/hosts.equiv /etc/hosts.equiv_bak#cp -p /$HOME/.rhosts /$HOME/.rhosts_bak加固方法:#vi /etc/hosts.equiv 删除其中不必要的主机#vi /$HOME/.rhosts 删除其中不必要的主机风险:在多机互备的环境中,需要保留其他主机的IP可信任。4.5 屏蔽登录banner信息检查方法:#cat /etc/ssh/sshd_config 查看文件中是否存在Banner字段,或banner字段为NONE#cat /etc/motd 查看文件内容,该处内容将作为banner信息显示给登录用户。备份方法:#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak#cp -p /etc/motd /etc/motd_bak加固方法:#vi /etc/ssh/sshd_configbanner NONE#vi /etc/motd删除全部内容或更新成自己想要添加的内容风险:无可见风险4.6 防止误使用Ctrl+Alt+Del重启系统检查方法:#cat /etc/inittab|grep ctrlaltdel 查看输入行是否被注释备份方法:#cp -p /etc/inittab /etc/inittab_bak加固方法:#vi /etc/inittab在行开头添加注释符号“#”#ca:ctrlaltdel:/sbin/shutdown -t3 -r now 风险:无可见风险五、用户鉴别5.1 设置帐户锁定登录失败锁定次数、锁定时间检查方法:#cat /etc/pam.d/system-auth 查看有无auth required pam_tally.so条目的设置备份方法:#cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak加固方法:#vi /etc/pam.d/system-authauth required pam_tally.so onerr=fail deny=6 unlock_time=300 设置为密码连续错误6次锁定,锁定时间300秒解锁用户 faillog -u -r风险:需要PAM包的支持;对pam文件的修改应仔细检查,一旦出现错误会导致无法登陆;当系统验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性。5.2 修改帐户TMOUT值,设置自动注销时间检查方法:#cat /etc/profile 查看有无TMOUT的设置备份方法:#cp -p /etc/profile /etc/profile_bak加固方法:#vi /etc/profile增加TMOUT=600 无操作600秒后自动退出风险:无可见风险5.3 Grub/Lilo密码检查方法:#cat /etc/grub.conf|grep password 查看grub是否设置密码#cat /etc/lilo.conf|grep password 查看lilo是否设置密码备份方法:#cp -p /etc/grub.conf /etc/grub.conf_bak#cp -p /etc/lilo.conf /etc/lilo.conf_bak加固方法:为grub或lilo设置密码风险:etc/grub.conf通常会链接到/boot/grub/grub.conf5.4 限制FTP登录检查方法:#cat /etc/ftpusers 确认是否包含用户名,这些用户名不允许登录FTP服务备份方法:#cp -p /etc/ftpusers /etc/ftpusers_bak加固方法:#vi /etc/ftpusers 添加行,每行包含一个用户名,添加的用户将被禁止登录FTP服务风险:无可见风险5.5 设置Bash保留历史命令的条数检查方法:#cat /etc/profile|grep HISTSIZE=#cat /etc/profile|grep HISTFILESIZE= 查看保留历史命令的条数备份方法:#cp -p /etc/profile /etc/profile_bak加固方法:#vi /etc/profile修改HISTSIZE=5和HISTFILESIZE=5即保留最新执行的5条命令风险:无可见风险 六、审计策略6.1 配置系统日志策略配置文件检查方法:#ps aef | grep syslog 确认syslog是否启用#cat /etc/syslog.conf 查看syslogd的配置,并确认日志文件是否存在系统日志(默认)/var/log/messagescron日志(默认)/var/log/cron安全日志(默认)/var/log/secure备份方法:#cp -p /etc/syslog.conf6.2 为审计产生的数据分配合理的存储空间和存储时间 检查方法:#cat /etc/logrotate.conf 查看系统轮询配置,有无# rotate log files weeklyweekly# keep 4 weeks worth of backlogsrotate 4 的配置备份方法:#cp -p /etc/logrotate.conf /etc/logrotate.conf_bak加固方法:#vi /etc/logrotate.d/syslog增加rotate 4 日志文件保存个数为4,当第5个产生后,删除最早的日志size 100k 每个日志的大小加固后应类似如下内容:/var/log/syslog/*_log missingoknotifemptysize 100k # log files will be rotated when they grow bigger that 100k.rotate 5 # will keep the logs for 5 press # log files will be compressed.sharedscriptspostrotate/etc/init.d/syslog condrestart /dev/null 21 | trueendscriptlinux系统安全日志分析时间:2014-03-10 23:45来源: 作者:虎子 举报 点击: 348次我们主要讲一下Linux环境中的系统记帐和系统日志管理以及怎么用一些工具更加方便有效的管理日志信息。当我们用上面的方法进行了 Linux 服务器的安装和一些基本的设置后,我们的服务器应该说来是比较安全的。但是总是还会有黑客可以通过各种方法利用系统管理员的疏忽侵入我们的系统。他们的一举一动都会记录到系统的日志之中,尽管他们可能可以改变这些日志信息,甚至用自己的程序替换掉我们系统本身的命令程序,但是通过日志我们总还是能找到一些蛛丝马迹。下面我们主要讲一下 Linux 环境中的系统记帐和系统日志管理以及怎么用一些工具更加方便有效的管理日志信息。1 系统记帐最初开发的系统记帐用于跟踪用户资源消费情况,从用户帐号中提取费用为目地的。现在我们可以把它用于安全目的,给我们提供有关在系统中发生的各种活动的有价值信息。系统记帐主要非为两类:1) 连接记帐连接记帐是跟踪当前用户当前对话、用户登录和退出的活动。在 Linux 系统中使用 utmp (动态用户对话)和 wtmp (登录/退出日志记录)工具来完成这一记帐过程。Wtmp 工具同时维护重新引导和系统状态变化信息。各种程序对这些工具进行刷新和维护,因此无须进行特殊的后台进程或程序。然而,utmp 和 wtmp 输出结果文件必须存在,如果这些文件不存在会关闭连接记帐。与 utmp 和 wtmp 有关的所有数据将分别保存在 /var/run/utmp 和 /var/log/wtmp 中。这些文件归根用户所有。这些文件中的数据是用户不可读的,但也有工具可以转换成可读的形式。dump-utmp 可以转换连接记帐数据为可读的 ASCII 格式数据。ac 命令提供了有关用户连接的大概统计,我们可以使用带有标志 d 和 p 的 ac 命令。标志 d 显示了一天的总连接统计,标志 p 显示了每一个用户的连接时间。这种统计信息的方式对了解与探测入侵有关的用户情况及其他活动很有帮助。Last 和 who 是出于安全角度定期使用的最常用命令。last 命令提供每一个用户的登录时间,退出登录时间,登录位置,重新引导系统及运行级别变化的信息。last -10 表示 last 的最多输出结果为最近的 10 条信息。缺省时 last 将列出在 /var/log/wtmp 中记录的每一连接和运行级别的变化。从安全角度考虑,last 命令提供了迅速查看特定系统连接活动的一种方式。观察每天的输出结果是个好习惯,从中可以捕获异常输入项。Last 命令的 -x 选项可以通知系统运行级别的变化。who 命令主要作用是报告目前正在登录的用户、登录设备、远程登录主机名或使用的 Xwindows 的 X 显示值、会话闲置时间以及会话是否接受 write 或 talk 信息。例如: who -iwH 的输出结果:USER MESG LINE LOGIN-TIME IDLE FROMDenny - tty1 Feb 18 08:42 old这就表示用户 Denny 不能接受 write 或 talk 信息,2月18日8:42 从 tty1 登录。该命令的安全值提供了用户连接的大致情况,这也为监视可疑活动提供了条件。 其他的有关命令有 lastlog 命令,该命令报告了有关 /var/log/lastlog 中记录的最后一次登录的数据信息。2) 进程记帐进程记帐是对进程活动的记录。原数据保存在 /var/log/pacct 文件中,其许可权限为 600。该文件的存在是进程记帐有效的保障。与连接记帐不同,进程记帐必须处于打开状态,使用下面的命令设置打开状态.# accton /var/log/pacct可以使用自选文件代替 /var/log/pacct,但必须记住这一文件并且设置适当的许可权限。必须在每次引导的时候执行该命令,可以在 /etc/rc.d/rc.local 中输入以下脚本:# initiate process accountif -x /sbin/accton then/sbin/accton /var/log/pacctecho process accounting initiatedfi一旦在系统中配置进程记帐后,将使用 3 个命令解释在 /var/log/pacct 中的非用户可读的原数据。这些命令分别为 dump-acct,该命令与 dump-utmp 完全相似,sa 命令用于统计系统进程记帐的大致情况,最后一个是 lastcomm 命令列出了系统执行的命令。1 sa 命令与 ac 命令一样,sa 是一个统计命令。该命令可以获得每个用户或每个命令的进程使用的大致情况,并且提供了系统资源的消费信息。在很大程度上,sa 又是一个记帐命令,对于识别特殊用户,特别是已知特殊用户使用的可疑命令十分有用。另外,由于信息量很大,需要处理脚本或程序筛选这些信息。可以用这样的命令单独限制用户:# sa -u |grep joejoe 0.00 cpu bashjoe 0.00 cpu lsjoe 0.01 cpu lsjoe 0.01 cpu lastcommjoe 0.01 cpu tcpdumpjoe 0.01 cpu reboot输出结果从左到右依次为:用户名、CPU 使用时间秒数、命令(最多为 16 个字符)。2 lastcomm 命令与 sa 命令不同,lastcomm 命令提供每一个命令的输出结果,同时打印出与执行每个命令有关的时间印戳。就这一点而说,lastcomm 比 sa 更有安全性。lastcomm 命令使用命令名,用户名或终端名作为变量。该命令可以查询进程记帐数据库。下面显示 lastcomm joe 的输出结果,每行表示命令的执行情况,从左到右为:用户、设备、使用的 cpu 时间秒数、执行命令的日期和时间。# lastcomm joereboot joe ttyp1 0.01 secs Fri Feb 26 18:40tcpdump joe ttyp1 0.01 secs Fri Feb 26 18:39lastcomm joe ttyp1 0.01 secs Fri Feb 26 18:32ls joe ttyp1 0.01 secs Fri Feb 26 18:30ls joe ttyp1 0.00 secs Fri Feb 26 18:28bash joe ttyp1 0.00 secs Fri Feb 26 18:25如果系统被入侵,请不要相信在 lastlog、utmp、wtmp、pacct 中记录的信息,但也不要忽略,因为这些信息可能被修改过了。另外有可能有人替换了who程序来掩人耳目。通常,在已经识别某些可疑活动后,进程记帐可以有效的发挥作用。使用 lastcomm 可以隔绝用户活动或在特定时间执行命令。但是使用该命令必须设置为打开状态。基本上,/var/log/pacct,/var/run/utmp, /var/log/pacct是动态数据库文件。其中/var/log/pacct和/var/log/wtmp文件随着输入项的增加和修改而增加。问题在于这些文件处于动态增加状态,因此到一定程度就会变的很大。我们可以通过一个叫 logrotate 的程序来解决上面这个问题,该程序读 /etc/logrotate.conf 配置文件,该配置文件告诉 logrotate 所要读 /etc/logrotate.d 目录中的文件。可以通过它来设定日志文件的循环时间。回页首2 系统日志在 Linux 下使用各种日志文件,有些用于某些特殊用途,例如:/var/log/xferlog 用于记录文件传输协议 FTP 的信息。其他日志文件,例如 /var/log/messages 文件通常包含许多系统和内核工具的输入项。这些日志文件为系统的安全状态提供了信息。我们主要讲解两个日志守护程序-syslog和klogd-并且简要叙述了由Linux操作系统生成的其他其他日志文件。目的是提供基本的配置情况。2.1 syslog系统日志工具大部分的 Linux 系统中都要使用 syslog 工具,它是相当灵活的,能使系统根据不同的日志输入项采取不同的活动。下面将详细讨论syslog 的工作机制以及在配置文件 /etc/syslog.conf 中的配置,还将论述利用 syslog 灵活性和功能性进行工作的各种方法。1) 概述非常简单,syslog 工具由一个守护程序组成。它能接受访问系统的日志信息并且根据 /etc/syslog.conf 配置文件中的指令处理这些信息。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。通常,syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息。2) etc/syslog.conf/etc/syslog.conf 文件使用下面的形式facility.level action空白行和以#开头的行可以忽略。Facility.level 字段也被称做 seletor。应该使用一次或多次 tab 键分隔 facility 和 action。大部分 Linux 使用这些空格为分隔符。现在分析一下 /etc/syslog.conf 中的三个要素。facility 指定 syslog 功能,主要包括以下这些:auth 由 pam_pwdb 报告的认证活动。authpriv 包括特权信息如用户名在内的认证活动cron 与 cron 和 at 有关的信息。daemon 与 inetd 守护进程有关的信息。kern 内核信息,首先通过 klogd 传递。lpr 与打印服务有关的信息。mail 与电子邮件有关的信息mark syslog 内部功能用于生成时间戳news 来自新闻服务器的信息syslog 由 syslog 生成的信息user 由用户程序生成的信息uucp 由 uucp 生成的信息local0-local7 与自定义程序使用,例如使用 local5 做为 ssh 功能* 通配符代表除了 mark 以外的所有功能与每个功能对应的优先级是按一定顺序排列的,emerg 是最高级,其次是 alert,依次类推。缺省时,在 /etc/syslog.conf 记录中指定的级别为该级别和更高级别。如果希望使用确定的级别可以使用两个运算符号!(不等)和=。user.=info表示告知 syslog 接受所有在 info 级别上的 user 功能信息。syslog 级别如下:emerg 或 panic 该系统不可用alert 需要立即被修改的条件crit 阻止某些工具或子系统功能实现的错误条件err 阻止工具或某些子系统部分功能实现的错误条件warning 预警信息notice 具有重要性的普通条件info 提供信息的消息debug 不包含函数条件或问题的其他信息none 没有重要级,通常用于排错* 所有级别,除了noneaction字段所表示的活动具有许多灵活性,特别是,可以使用名称管道的作用是可以使 syslogd 生成后处理信息。syslog 主要支持以下活动file 指定文件的绝对路径terminal 或 print 完全的串行或并行设备标志符host 远程的日志服务器username 发送信息到使用 write 的指定用户中named pipe 指定使用 mkfifo 命令来创建的 FIFO 文件的绝对路径。3) 调用 syslogd 守护程序syslog 守护程序是由 /etc/rc.d/init.d/syslog 脚本在运行级2下被调用的,缺省不使用选项。但有两个选项 -r 和 -h 很有用。如果将要使用一个日志服务器,必须调用 syslogd -r。缺省情况下 syslog 不接受来自远程系统的信息。当指定 -r 选项,syslogd 将会监听从 514 端口上进来的 UDP 包。如果还希望日志服务器能传送日志信息,可以使用 -h 标志。缺省时,syslogd 将忽略使其从一个远程系统传送日志信息到另一个系统的/etc/syslog.conf 输入项。4) klogd 守护进程klogd 守护进程获得并记录 Linux 内核信息。通常,syslogd 会记录 klogd 传来的所有信息,然而,如果调用带有 -f filename 变量的 klogd 时,klogd 就在 filename 中记录所有信息,而不是传给 syslogd。当指定另外一个文件进行日志记录时,klogd 就向该文件中写入所有级别或优先权。Klogd 中没有和 /etc/syslog.conf 类似的配置文件。使用 klogd 而避免使用 syslogd 的好处在于可以查找大量错误。如果有人入侵了内核,使用 klogd 可以修改错误。5) 其他日志在 /var/log 和不同版本的系统中以及自己配置的应用程序中都可以找到其他日志文件。当然,/etc/syslog.conf 列出了由 syslogd 管理的所有日志文件名和位置。其他日志由其他应用程序管理。例如在 Redhat6.2 中,apache server 生成 /var/log/htmlaccess.log 文件记录客户访问,生成 /var/log/httpd/error.log 文件在 syslog 以外查找错误。cron 工具维护的信息日志文件 /var/log/cron。当 Linuxconf 工具记录系统重新配置信息时,将生成日志文件如 /var/log/nerconf.log。samba 在 /var/log/samba 中维护其日志信息。另外由于 syslogd 在系统非常繁忙时,可能会丢失信息,所以,可以用 cyclog 替换 syslog。Linux入侵检查实用指令时间:2013-10-21 01:40来源: 作者:本站 举报 点击: 453次1可以得出filename正在运行的进程#pidof filename2可以通过文件或者tcp udp协议看到进程#fuser -n tcp port3可以看文件修改时间,大小等信息#stat filename4看加载模块#lsmod5看rpc服务开放#rpcinfo -p6看网卡是否混杂模式(promiscuous mod)#dmesg|grep eth07看命令是否被更改,象md5sum一样#rpm -Vf /bin/lsrpm -Vf /bin/ps正常无输出,否则输出SM5.T /bin/su之类提示如果rpm的数据库被修改则不可靠了,只能通过网络或则cdrom中的rpm数据库来比较如:rpm -Vvp ftp:/mirror.site/dir/RedHat/RPMS/fileutils-3.16-10.i386.rpm以下常用命令需要检查/usr/bin/chfnusr/bin/chsh/bin/login/bin/ls/usr/bin/passwd/bin/ps/usr/bin/top/usr/sbin/in.rshd/bin/netstat/sbin/ifconfig/usr/sbin/syslogd/usr/sbin/inetd/usr/sbin/tcpd/usr/bin/killall/sbin/pidof/usr/bin/find8如果检查的是已经确认被黑客攻击的机器,完美建议:1.dd一个备份硬盘上2.mount 一个光驱,上面有静态编译好的程序ls ps netstat等常用工具3.用nc把执行步骤输出到远程机器上9用md5sum保存一个全局的文件find /sbin -type f|xargs md5sum 1st检查是否改变md5sum -c 1st|grep OK10避免在已经攻击的机器上过多写操作,可以:1.在另一个机器91上运行nc -L -p 1234 some_audit_output.log 注意L是大写,可以永久侦听2.被攻击机器上运行command|nc 91 1234或script /mnt/export.log检测完毕后用ctrl+d保存记录11通过进程查找可疑程序方法:1.netstat -anp 这步主要靠经验,把可疑的都记录下来2.进入内存目录 cd /proc/32993. ls -la,一般exe可以看到执行文件路径,4.再进入fd目录查看文件句柄,至此一般都可以找出执行程序5.ps -awx 把刚才可疑的进程观察一遍12如果hacker把日志删除了:1.查找所有未被删除彻底的日志,比如history,sniffer日志2./proc/pid/fd 目录里提示已经删除的文件l-wx- 1 root root 64 Aug 10 20:54 15 - /var/log/httpd/error_log (deleted)l-wx- 1 root root 64 Aug 10 20:54 18 - /var/log/httpd/ssl_engine_log (deleted)l-wx- 1 root root 64 Aug 10 20:54 19 - /var/log/httpd/ssl_mutex.800 (deleted)l-wx- 1 root root 64 Aug 10 20:54 20 - /var/log/httpd/access_log (deleted)l-wx- 1 root root 64 Aug 10 20:54 21 - /var/log/httpd/access_log (deleted)l-wx- 1 root root 64 Aug 10 20:54 22 - /var/log/httpd/ssl_request_log (deleted)l-wx- 1 root root 64 Aug 10 20:54 23 - /var/log/httpd/ssl_mutex.800 (deleted)lrwx- 1 root root 64 Aug 10 20:54 3 - /var/run/httpd.mm.800.sem (deleted)lrwx- 1 root root 64 Aug 10 20:54 4 - /var/log/httpd/ssl_scache.sem (deleted)3.用静态编译的lsof |grep deleted查看哪些被删除COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEgpm 1650 root 1u REG 8,2 5 149743 /var/run/gpm208raa (deleted)4.得到文件inode号,这里是1497435.使用sleuthkit工具来恢复,df /var得出硬盘位置是sda1icat /dev/sda1 1497436.把恢复的文件仔细查看,一般都可以找到痕迹了这样会使分析编译后的程序困难gcc -04 -evil.c -o evilstrip ./evil1.file查看文件类型,是否静态编译、是否strip过2.strings显示程序中的asicc字符串,通过字符串再到google上找3.strace是跟踪系统调用(这个还不知道怎么样用)strace -p pid4.gdb(更不会用啦)13有些进程不在进程里显示,但在/proc中有痕迹,可比较找出隐藏的进程proc是伪文件系统,为/dev/kmem提供一个结构化的接口,便于系统诊断并查看每一个正在运行的可执行文件的环境#ps -ef|awk print $2|sort -n|uniq 1#ls /porc |sort -n|uniq 2#diff 1 214应急工具tct,里面有许多使用工具,包括icat等数据恢复如果在被攻击的机器取证,可以mount一块硬盘,也可以备份到网络中,方法:a.在网络机器运行 nc -L -p 1234 abc.imgb.肉鸡运行 dd if=/dev/hdb5 count 20000 bs=1024|nc 1234 -w 3如果备份过大,则可以侦听多个端口,执行多个dd拷贝,然后把文件合并 cat 2 1.img15ldd可以显示一个可执行程序所依赖的动态库,但间接依赖库无法显示出来rootrh9bk root# ldd /bin/lslibtermcap.so.2 = /lib/libtermcap.so.2 (0x40022000)libc.so.6 = /lib/tls/libc.so.6 (0x42000000)/lib/ld-linux.so.2 = /lib/ld-linux.so.2 (0x40000000)strace工具是一个调试工具,它可以显示出一个程序在执行过程中的所有系统调用,rootrh9bk root# strace -eopen /bin/ls /dev/nullopen(/etc/ld.so.preload, O_RDONLY) = -1 ENOENT (No such file or directory)open(/etc/ld.so.cache, O_RDONLY) = 3open(/lib/libtermcap.so.2, O_RDONLY) = 3open(/lib/tls/libc.so.6, O_RDONLY) = 3open(/usr/lib/locale/locale-archive, O_RDONLY|O_LARGEFILE) = 3open(., O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3open(/etc/mtab, O_RDONLY) = 3open(/proc/meminfo, O_RDONLY) = 3strace -o out telnet 00o参数的含义是将strace的输出信息生成到out文件中,这个文件名是可以随意制定的。我们打开out文件会发现大量的系统调用信息,我们关心的主要是open这个系统调用的信息,open是用来打开文件的,不仅调用动态库要先用open打开,读取配置文件也使用ope

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论