Linux安全加固规范.doc_第1页
Linux安全加固规范.doc_第2页
Linux安全加固规范.doc_第3页
Linux安全加固规范.doc_第4页
Linux安全加固规范.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

LINUX安全加固规范目录1概述52 安装53 用户帐号安全Password and account security63.1 密码安全策略63.2 检查密码是否安全63.3 Password Shadowing63.4 管理密码63.5 其它74 网络服务安全(Network Service Security)74.1服务过滤Filtering84.2/etc/inetd.conf94.3R 服务94.4Tcp_wrapper94.5/etc/hosts.equiv 文件104.6 /etc/services104.7/etc/aliases114.8 NFS114.9Trivial ftp (tftp)114.10 Sendmail114.11 finger124.12UUCP124.13World Wide Web (WWW) httpd134.14FTP安全问题135系统设置安全(System Setting Security)145.1限制控制台的使用145.2系统关闭Ping145.3关闭或更改系统信息155.4 /etc/securetty文件155.5 /etc/host.conf文件155.6禁止IP源路径路由155.7资源限制165.8 LILO安全165.9 Control-Alt-Delete 键盘关机命令175.10日志系统安全175.11修正脚本文件在“/etc/rc.d/init.d”目录下的权限176文件系统安全(File System Security)186.1文件权限186.2控制mount上的文件系统186.3备份与恢复197其它197.1使用防火墙197.2使用第三方安全工具197.3参考网站191概述近几年来Internet变得更加不安全了。网络的通信量日益加大,越来越多的重要交易正在通过网络完成,与此同时数据被损坏、截取和修改的风险也在增加。 只要有值得偷窃的东西就会有想办法窃取它的人。Internet的今天比过去任何时候都更真实地体现出这一点,基于Linux的系统也不能摆脱这个“普遍规律”而独善其身。因此,优秀的系统应当拥有完善的安全措施,应当足够坚固、能够抵抗来自Internet的侵袭,这正是Linux之所以流行并且成为Internet骨干力量的主要原因。但是,如果你不适当地运用Linux的安全工具,它们反而会埋下隐患。配置拙劣的安全系统会产生许多问题,本文将为你解释必须掌握的Linux安全知识。本文讲述了如何通过基本的安全措施,使Linux系统变得可靠。2 安装使系统处于单独(或隔离)的网络中。以防止未受保护的系统连接到其它网络或互联网中受到可能的攻击安装完成后将下面软件卸载pumpapmdlsapnptoolsredhat-logosmt-stkernel-pcmcia-csSetserialredhat-releseejectlinuxconfkudzugdbcgetty_psraidtoolspciutilsmailcapsetconsolegnupg用下面的命令卸载这些软件:rootdeep#rpm e softwarename卸载它们之前最好停掉三个进程:rootdeep# /etc/rc.d/init.d/apmd stoprootdeep# /etc/rc.d/init.d/sendmail stoprootdeep# /etc/rc.d/init.d/kudzu stop3 用户帐号安全Password and account security3.1 密码安全策略l 口令至少为6位,并且包括特殊字符l 口令不要太简单,不要以你或者有关人的相关信息构成的密码,比如生日、电话、姓名的拼音或者缩写、单位的拼音或者英文简称等等。l 口令必须有有效期l 发现有人长时间猜测口令,需要更换口令3.2 检查密码是否安全可以使用以下几种工具检查自己的密码是否安全:l JOHN,crack等暴力猜测密码工具l 在线穷举工具,包括Emailcrk、流光等3.3 Password Shadowingl 使用shadow来隐藏密文(现在已经是默认配置)l 定期检查shadow文件,如口令长度是否为空。#awk -F: length($2)=0 print $1 /etc/shadowl 设置文件属性和属主3.4 管理密码l 设置口令有效最长时限 (编辑/etc/login.defs文件)l 口令最短字符(如linux默认为,可以通过编辑/etc/login.defs修改)l 只允许特定用户使用su命令成为root。编辑/etc/pam.d/su文件,在文件头部加上:auth sufficient /lib/security/pam_rootok.so debugauth required /lib/security/pam_wheel.so group=wheelRed hat 7.0中su文件已做了修改,直接去掉头两行的注释符就可以了rootdeep# usermod -G10 admin来将用户加入wheel组3.5 其它l 清除不必要的系统帐户rootdeep# userdel admrootdeep# userdel lprootdeep# userdel syncrootdeep# userdel shutdownrootdeep# userdel haltrootdeep# userdel newsrootdeep# userdel uucprootdeep# userdel operatorrootdeep# userdel games (如果不使用 X Window,则删除)rootdeep# userdel gopherrootdeep# userdel ftp (如果不使用ftp服务则删除)l 尽量不要在passwd文件中包含个人信息,防止被finger之类程序泄露。l 修改shadow,passwd,gshadow文件不可改变位rootdeep# chattr +i /etc/passwdrootdeep# chattr +i /etc/shadowrootdeep# chattr +i /etc/grouprootdeep# chattr +i /etc/gshadowl 不要使用.netrc文件,可以预先生成$HOME/.netrc。设置为0000。touch /.rhosts ;chmod 0 /.rhosts l 使用ssh来代替telnetd,ftpd.pop等通用服务。传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据。4 网络服务安全(Network Service Security)Linux系统对外提供强大、多样的服务,由于服务的多样性及其复杂性,在配置和管理这些服务时特别容易犯错误,另外,提供这些服务的软件本身也存在各种漏洞,所以,在决定系统对外开放服务时,必须牢记两个基本原则:l 只对外开放所需要的服务,关闭所有不需要的服务。对外提供的服务越少,所面临的外部威胁越小。l 将所需的不同服务分布在不同的主机上,这样不仅提高系统的性能,同时便于配置和管理,减小系统的安全风险。在上述两个基本原则下,还要进一步检查系统服务的功能和安全漏洞。这里针对主机所提供的服务进行相应基本安全配置,某些常用服务的安全配置请参考相关文档。4.1服务过滤Filteringl 在SERVER上禁止这些服务l 如果一定要开放这些服务,通过防火墙、路由指定信任IP访问。l 要确保只有真正需要的服务才被允许外部访问,并合法地通过用户的路由器过滤检查。尤其在下面的服务不是用户真正需要时候,要从路由器上将其过滤掉NAME PORT PROTOCOL echo 7 TCP/UDP systat 11 TCP netstat 15 TCP bootp 67 UDP tftp 69 UDP link 87 TCP supdup 95 TCP sunrpc 111 TCP/UDP news 144 TCP snmp 161 UDP xdmcp 177 UDP exec 512 TCP login 513 TCP shell 514 TCP printer 515 TCP biff 512 UDP who 513 UDP syslog 514 UDP uucp 540 TCP route 520 UDP openwin 2000 TCP nfs 2049 UDP/TCP x11 6000 to 6000+n TCP 注意:有些UDP服务可以导致DOS攻击和远程溢出,如rpc.ypupdated rpcbindrpc.cmsd 100068rpc.statd 100024 rpc.ttdbserver 100083sadmind 100232/10 l 配置完成以后,利用网络扫描器模拟入侵者从外部进行扫描测试。如利用nmap4.2 /etc/inetd.confl 确保文件权限设置为600l 确保文件属主设置为rootl 注释掉所有不需要的服务,需要重新启动inetd进程l 使用netstat an命令,查看本机所提供的服务。确保已经停掉不需要的服务4.3 R 服务不必使用R服务l 关闭R服务,Red hat 6.2在/etc/inetd.conf文件中注释以下服务,并且重新启动inetd服务。Red hat 7.0在/etc/xinetd.d目录中删除exec512TCPRlogin513TCPRshell514TCPl 预先生成$HOME/.rhosts,/etc/hosts.equiv文件,并且设置为0000,防止被写入”+ +”。(攻击者经常使用类似符号链接或者利用ROOTSHELL写入,并且远程打开受保护主机的R服务)必须使用R服务l 使用更安全版本的r服务。如Wietse Venema的logdaemon程序等。l 在路由或者防火墙上禁止外部网络访问受保护主机的512,513 and 514 (TCP)端口。l 使用TCP WRAPPERS设置可访问受保护主机R服务的信任机器。4.4 Tcp_wrapper 该软件的作用是在Unix平台上过滤TCP/UDP服务,它目前已被广泛用于监视并过滤发生在主机上的ftp、telnet、rsh、rlogin、tftp、finger等标准TCP/UDP服务。当系统安装TCP_wrapper之后,in.conf文件中 /usr/sbin/in.telnetd的in.telnetd会被TCP_wrapper附带的tcpd程序取代。该程序截获来自客户端的服务请求、记录请求发生的时间和IP地址,并按访问控制进行检查。当本次连接的用户、请求源的IP等信息符合管理员的预设值时,才将该次请求传递给系统in.telnetd,由系统in.telnetd完成后续工作;若连接不符合要求,该连接请求将被拒绝。同样,ftp、 rsh等TCP/UDP服务均可被tcpd取代,由tcpd充当二传手。l 使用PARANOID 模式,用此参数后需要在/etc/hosts文件中加上允许使用telnet或ftp服务的客户端的名字和IP地址l 在/etc/hosts.deny中设置为all:all,默认所有不允许Access is denied by default.# Deny access to everyone.ALL: ALLALL, PARANOID #Matches any host whose name does not match its address, seebellow.l 在/etc/hosts.allow中设置允许的服务和地址如:sshd: l 使用tcpdchk检查l UDP服务使用tcpwrapper时要使用/etc/inetd.conf中的nowait选项。4.5 /etc/hosts.equiv 文件不必使用/etc/hosts.equiv文件l 从系统中删除此文件l 预先生成/etc/hosts.equiv文件,并且设置为0000,防止被写入”+ +”。(攻击者经常使用类似符号链接或者利用ROOTSHELL写入,并且远程打开受保护主机的R服务)必须使用/etc/hosts.equiv文件l 确保此文件中可信赖主机为必须的。l 预先生成/etc/hosts.equiv文件,并且设置为0000,防止被写入”+ +”。(攻击者经常使用类似符号链接或者利用ROOTSHELL写入,并且远程打开受保护主机的R服务)l 如果使用NIS或者NIS+的话,此文件中的组应该是容易管理的。l 信赖主机必须确保可靠l 信赖主机使用全名,如例如 l 任何时候都不应该出现”+”字符,因为这样会使任何一台主机上的任何用户都可以不加口令地访问系统l 文件中不要使用! 和#符号,因为在该文件中那并不表示注释信息l 文件开始字符不应该为-.,请查阅C8l 确保该文件的访问权限被设置成600。l 文件属主确保为ROOT。l 在每次安装补丁程序或操作系统之后,都应该重新检查该文件夹的设置情况4.6 /etc/servicesl 确保文件权限设置为600l 确保文件属主设置为rootl 如果需要提供一些常见服务,如telnetd等,可以在此修改端口此文件为端口号和服务的对应关系,给此文件加上保护,避免没有授权的修改和删除rootdeep# chattr +i /etc/services4.7 /etc/aliasesl 修改/etc/aliases文件,注释掉decode games,ingress,system,toor,manager,.”.等l 使用/usr/bin/newaliases命令激活新配置l 确保文件权限设置为755l 确保文件属主设置为root4.8 NFSNFS文件系统应注意以下几方面的安全l 在外部路由上过滤端口111、2049 (TCP/UDP),不允许外部访问。l 检查更新情况。l 检查 /etc/exports 输出路径的权限,确定只有root能修改,all user只能readl 用exportfs 去增加或删除directoriesexportfs -o access=engineering,ro=dancer /usrexportfs -u /usrl 假如你的机器没有NIS(YP server)的服务,当更改资料时记得修改/etc/passwd/etc/group/etc/hosts/etc/ethersl 不允许export出去包含本地入口的目录l 确定对方机器是完全可信赖的。使用全名l 确保输出列表没有超过256个字符。l 使用showmount e命令查看自己的export设置l 将/etc/exports权限设置为644,属主为rootl 使用noexec,nodev.nosuid等选项控制mount的文件系统,在/etc/fstab中设置。4.9 Trivial ftp (tftp)无论何种情况下都不应该启动这个服务进程。4.10 Sendmailsendmail提供了许多在编译期间选择的功能特性。通常情况下,按照其缺省配置,即可满足一般用户的需要。但是,了解研究其提供的特性,可以实现对sendmail许多功能的更为准确的配置使用。从网络安全的角度考虑,通过合理地配置有关特性,可以在提供服务和保证安全之间找到更为准确的平衡点(配置特性的方法是将需要的特性加入到相应系统的.mc文件中,然后利用工具m4生成最终的sendmail.cf文件。目前最新版本是sendmail8.11.1.()l 最新的发行包l promiscuous_relay:该特性打开任意转发功能,也即关闭8.9带来的邮件转发方面的安全增强控制。此特性的使用会对电子邮件服务的滥用留下许多隐患,建议除非特别情况,不要使用此特性。l accept_unqualified_senders:缺省情况下,该特性被关闭,即当MAIL FROM:参数中的地址表明属于网络连接,但是却不包含合法的主机地址时,sendmail将拒绝继续通信。打开此特性则不再根据MAIL FROM:参数拒绝接收邮件。建议不可轻易使用该特性。l loose_relay_check :通常情况下,当邮件使用了源路由功能,例如user%siteothersite,如果othersite属于转发邮件的范围,则sendmail将分离othersite,继续检查site是否属于转发范围.使用该特性将改变上述缺省操作.建议不要轻易使用该特性l accept_unresolvable_domains :通常情况下,当MAIL FROM:参数中的主机地址部分无法解析,即无法判定为合法主机地址时,sendmail将拒绝连接.使用该特性将改变上述操作. 在某些情况下,例如,邮件服务器位于防火墙后面,无法正常解析外部主机地址,但是仍然希望能够正常接收邮件时,可能需要利用该特性.l blacklist_recipients :打开接收黑名单功能。接收黑名单可以包括用户名、主机名、或其它地址。l relay_entire_domain :缺省配置下,sendmail只为在转发控制数据库(access db)中定义为RELAY的主机提供转发邮件服务. 该特性的使用,将使sendmail为本地域内(由$=m类定义)的所有主机上面的用户提供转发功能l sendmail的受限shell程序smrsh可以防止内部用户恶意操作。l 防止系统信息泄漏,如修改banner,禁止expn,vrfy命令l 建议配置为需要smtp认证功能。l 其他相关的mailserverqmail: postfix: qpop: /Imail:/4.11 fingerl 不应该启动这个服务进程。l 如果一定要使用,请使用最新的版本。4.12 UUCPl 建议不要使用l 删除所有的rhosts文件(目录下的)l 确保.cmds 文件属主为rootl 对登陆进行限制l 确保文件没有被设置为所有人可写4.13 World Wide Web (WWW) httpdl 使用你选择的的最新版本l 不要使用用户运行httpdl 在chroot环境中运行httpdl 尽量不要使用脚本l 对脚本进行安全审计l 链接使用静态库l 过滤危险字符,如n r (.,/;!)|&$ /proc/sys/net/ipv4/icmp_echo_ignore_all可以将这一行加到/etc/rc.d/rc.local文件中去,这样系统重启动后会自动执行恢复系统的Ping响应:rootdeep#echo 0 /proc/sys/net/ipv4/icmp_echo_ignore_all5.3关闭或更改系统信息关闭telnet系统信息Red Hat 6.2中,编辑/etc/inetd.conftelnet stream tcp nowait root /usr/sbin/tcpd in.telnetd h加上参数-h可以关闭telnet信息Red Hat 7.0中,编辑/etc/xinetd.d/telnet加上server_args = -h,可以关闭telnet信息/etc/rc.d/rc.local中关闭或修改系统信息/etc/issue和/etc/中包含本地登录和网络登录时提示的系统信息,对它们进行更改可以改变系统信息,或直接删除,并在/etc/rc.d/rc.local文件中注释相关行:#echo /etc/issue#echo $R /etc/issue#echo Kernel $(uname -r) on $a $(uname -m) /etc/issue#cp -f /etc/issue /etc/#echo /etc/issue5.4 /etc/securetty文件/etc/securetty文件规定root从哪个TTY设备登录,列出的是允许的tty设备,将不允许的tty设备行注释掉.5.5 /etc/host.conf文件/etc/host.conf定义主机名怎样解析,使用什么服务,什么顺序解析# Lookup names via DNS first then fall back to /etc/hosts.order bind,hosts# We have machines with multiple IP addresses.multi on# Check for IP address spoofing.nospoof onorder指定选择服务的顺序multi指定主机能不能有多个IP地址,ON代表允许nospoof指定不允许IP伪装,此参数必须设置为ON5.6禁止IP源路径路由允许IP源路径路由(IP source routing)会使得黑客能够欺骗你的计算机,截取信息包.强烈建议禁止,使用如下命令:for f in /proc/sys/net/ipv4/conf/*/accept_source_route; doecho 0 $fdone将accept_source_route设置为0,并将上述命令加到/etc/rc.d/rc.local中去,每次重启动将自动执行5.7资源限制为了避免拒绝服务攻击,需要对系统资源的使用做一些限制。首先,编辑/etc/security/limits.conf,加入或改变如下* hard core 0 (禁止创建core文件)* hard rss 5000 (除root外,其他用户最多使用5M内存)* hard nproc 20 (最多进程数限制为20)编辑/etc/pam.d/login,在文件末尾加上:session required /lib/security/pam_limits.so对TCP SYN Cookie的保护:(防止SYN Flood攻击)rootdeep# echo 1 /proc/sys/net/ipv4/tcp_syncookies5.8 LILO安全在“/etc/lilo.conf”文件中添加3个参数:time-out、restricted 和 password。这些选项会在启动时间(如“linux single”)转到启动转载程序过程中,要求提供密码。步骤1编辑lilo.conf文件(/etc/lilo.conf),添加和更改这三个选项:boot=/dev/hda map=/boot/map install=/boot/boot.b time-out=00 #change this line to 00prompt Default=linux restricted #add this linepassword= #add this line and put your password image=/boot/vmlinuz-2.2.14-12 label=linux initrd=/boot/initrd-2.2.14-12.img root=/dev/hda6 read-only 步骤2由于其中的密码未加密,“/etc/lilo.conf”文件只对根用户为可读。rootkapil /# chmod 600 /etc/lilo.conf (不再为全局可读)步骤3作了上述修改后,更新配置文件“/etc/lilo.conf”。Rootkapil /# /sbin/lilo -v (更新lilo.conf文件)步骤4还有一个方法使“/etc/lilo.conf”更安全,那就是用chattr命令将其设为不可:rootkapil /# chattr +i /etc/lilo.conf它将阻止任何对“lilo.conf”文件的更改,无论是否故意。5.9 Control-Alt-Delete 键盘关机命令编辑“/etc/inittab”文件,只要在下面行前面加“”,改为注释行。ca:ctrlaltdel:/sbin/shutdown -t3 -r now 改为:#ca:ctrlaltdel:/sbin/shutdown -t3 -r now 然后,为使更改生效,在提示符下输入:rootkapil /# /sbin/init q5.10日志系统安全为了保证日志系统的完整性,防止黑客删除日志,需要对日志系统进行安全配置。本专题将有专门文档来讲述日志系统的安全。5.11修正脚本文件在“/etc/rc.d/init.d”目录下的权限对脚本文件的权限进行修正,脚本文件用以决定启动时需要运行的所有正常过程的开启和停止。添加:rootkapil/# chmod -R 700 /etc/rc.d/init.d/* 这句指的是,只有根用户允许在该目录下使用 Read、Write,和 Execute 脚本文件。6 文件系统安全(File System Security)6.1文件权限 l 去掉不必要的suid程序,可以通过脚本查看rootdeep# find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls lg ;通过下面的命令来去掉不需要的程序的s位rootdeep# chmod a-s /usr/bin/commandnamel 重要的配置文件如/etc/passwd,/etc/shadow,/etc/inetd.conf等设置为0755,并设置为不可更改l /etc, /usr/etc, /bi

温馨提示

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

评论

0/150

提交评论