目录LINUX加固方案................................................................................错误!未定义书签。1.安装最新安全补丁..........................................................................................................22.网络和系统服务..............................................................................................................23.核心调整..........................................................................................................................44.日志系统..........................................................................................................................55.文件/目录访问许可权限................................................................................................56.系统访问,认证和授权....................................................................................................67.用户账号和环境..............................................................................................................88.关键安全工具的安装......................................................................................................91.安装最新安全补丁项目:注释:1安装操作系统提供商发布的最新的安全补丁各常见的Linux发布安全信息的web地址:RedHatLinux::::::::网络和系统服务inetd/xinetd网络服务:设置项注释:1确保只有确实需要的服务在运行:先把所有通过ineted/xineted运行的网络服务关闭,再打开确实需要的服务绝大多数通过inetd/xinetd运行的网络服务都可以被禁止,比如echo,exec,login,shell,who,finger等.对于telnet,r系列服务,ftp等,强烈建议使用SSH来代替.2设置xinetd访问控制在/etc/xinetd.conf文件的”default{}”块中加入如下行:only_from=net/num_bitnet/num_bit…每个net/num_bit(比如192.168.1.0/24)对表示允许的源地址启动服务:设置项注释:1关闭NFS服务器进程:运行chkconfignfsoffNFS通常存在漏洞会导致未授权的文件和系统访问.2关闭NFS客户端进程:运行chkconfignfslockoffchkconfigautofsoff3关闭NIS客户端进程:chkconfigypbindoffNIS系统在设计时就存在安全隐患4关闭NIS服务器进程:运行chkconfigypservoffchkconfigyppasswdoff5关闭其它基于RPC的服务:运行chkconfigportmapoff基于RPC的服务通常非常脆弱或者缺少安全的认证,但是还可能共享敏感信息.除非确实必需,否则应该完全禁止基于RPC的服务.6关闭SMB服务运行chkconfigsmboff除非确实需要和Windows系统共享文件,否则应该禁止该服务.7禁止Netfs脚本chkconfignetfsoff如果不需要文件共享可禁止该脚本8关闭打印机守护进程chkconfiglpdoff如果用户从来不通过该机器打印文件则应该禁止该服务.Unix的打印服务有糟糕的安全记录.9关闭启动时运行的XServersed's/id:5:initdefault:/id:3:initdefault:/'\/etc/inittab/etc/inittab.newmv/etc/inittab.new/etc/inittabchownroot:root/etc/inittabchmod0600/etc/inittab对于专门的服务器没有理由要运行XServer,比如专门的Web服务器10关闭MailServerchkconfigpostfixoff多数Unix/Linux系统运行Sendmail作为邮件服务器,而该软件历史上出现过较多安全漏洞,如无必要,禁止该服务11关闭WebServerchkconfighttpdoff可能的话,禁止该服务.12关闭SNMPchkconfigsnmpdoff如果必需运行SNMP的话,应该更改缺省的communitystring13关闭DNSServerchkconfignamedoff可能的话,禁止该服务14关闭DatabaseServerchkconfigpostgresqloffLinux下常见的数据库服务器有Mysql,Postgre,Oracle等,没有必要的话,应该禁止这些服务15关闭路由守护进程chkconfigroutedoffchkconfiggatedoff组织里仅有极少数的机器才需要作为路由器来运行.大多数机器都使用简单的”静态路由”,并且它不需要运行特殊的守护进程16关闭Webmin远程管理工具Webmin是一个远程管理工具,它有糟chkconfigwebminoff糕的认证和会话管理历史,所以应该谨慎使用17关闭SquidWebCachechkconfigsquidoff如果必需使用,应该谨慎配置18可能的话禁止inetd/xinetdchkconfiginetdoff或chkconfigxinetdoff如果没有网络服务通过inetd/xinetd运行则可以禁止它们19设置守护进程掩码cd/etc/rc.d/init.dif[`grep-lumaskfunctions`=];thenechoumask022functionsfi系统缺省的umask值应该设定为022以避免守护进程创建所有用户可写的文件3.核心调整设置项注释:1禁止coredump:catEND_ENTRIES/etc/security/limits.conf*softcore0*hardcore0END_ENTRIES允许coredump会耗费大量的磁盘空间.2限制NFS客户端使用特权端口:perl-i.orig-pe\'nextif(/^\s*#/||/^\s*$/);($res,@hst)=split();foreach$ent(@hst){undef(%set);($optlist)=$ent=~/\((.*?)\)/;foreach$opt(split(/,/,$optlist)){$set{$opt}=1;}delete($set{insecure});$set{secure}=1;$ent=~s/\(.*?\)//;$ent.=(.join(,,keys(%set)).);}$hst[0]=(secure)unless(@hst);$_=$res\t.join(,@hst).\n;'\/etc/exports可以防止非特权用户发起的automoutedNFS攻击.3网络参数调整:catEND_SCRIPT/etc/sysctl.confnet.ipv4.ip_forward=0net.ipv4.conf.all.accept_source_route=0详见:或net.ipv4.tcp_max_syn_backlog=4096net.ipv4.conf.all.rp_filter=1END_SCRIPTcatEND_SCRIPT/etc/sysctl.confnet.ipv4.conf.all.send_redirects=0net.ipv4.conf.all.accept_redirects=0net.ipv4.conf.default.accept_redirects=0END_SCRIPTchownroot:root/etc/sysctl.confchmod0600/etc/sysctl.conf日志系统设置项注释:1捕捉发送给AUTH和AUTHPRIVfacility的消息到日志文件/var/log/secure:if[`grep-c'auth\.'/etc/syslog.conf`-eq0]thenecho-eauth.*\t\t\t\t/var/log/secure\/etc/syslog.conffiif[`grep-c'authpriv\.'/etc/syslog.conf`eq0]thenecho-eauthpriv.*\t\t\t\t/var/log/secure\/etc/syslog.conffitouch/var/log/securechownroot:root/var/log/securechmod600/var/log/secure.syslog中的AUTH和AUTHPRIVfacility包含了大量安全相关的信息,不是所有Linux发布都记录这些日志信息.应该把这些信息记录到/var/log/secure文件中(该文件仅超级用户可读)5.文件/目录访问许可权限设置项注释:1对/etc/fstab中的可移动介质增加”nosuid”选项:awk'($2~/^\/m.*\/(floppy|cdrom)$/&&\$3!=supermount)\{$4=sprintf(%s,nosuid,$4)};\{print}'/etc/fstab/etc/fstab.newmv/etc/fstab.new/etc/fstabchownroot:root/etc/fstabchmod0644/etc/fstab可以移动介质是引