《Linux系统安全加固手册(13页).doc》由会员分享,可在线阅读,更多相关《Linux系统安全加固手册(13页).doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-Linux系统安全加固手册-第 12 页密 级:商业秘密LINUX评估加固手册安氏领信科技发展有限公司二二二年八月目 录1、系统补丁的安装32、帐户、口令策略的加固321、删除或禁用系统无用的用户322、口令策略的设置423、系统是否允许root远程登录424、root的环境变量设置53、网络与服务加固531、rc?.d中的服务的设置532、/e中服务的设置633、NFS的配置834、SNMP的配置835、Sendmail的配置936、DNS(Bind)的配置937、网络连接访问控制的设置94、信任主机的设置105、日志审核的设置116、物理安全加固117、系统内核参数的配置128、选装安全
2、工具131、系统补丁的安装RedHat使用RPM包实现系统安装的管理,系统没有单独补丁包(Patch)。如果出现新的漏洞,则发布一个新的RPM包,版本号(Version)不变,Release做相应的调整。因此检查RH Linux的补丁安装情况只能列出所有安装的软件,和RH网站上发布的升级软件对照,检查其中的变化。通过访问官方站点下载最新系统补丁,RedHat公司补丁地址如下:rpm -qa 查看系统当前安装的rpm包rpm -ivh package1 安装RPM包rpm -Uvh package1 升级RPM包rpm -Fvh package1 升级RPM包(如果原先没有安装,则不安装)2、帐
3、户、口令策略的加固21、删除或禁用系统无用的用户询问系统管理员,确认其需要使用的帐户如果下面的用户及其所在的组经过确认不需要,可以删除。lp, sync, shutdown, halt, news, uucp, operator, games, gopher 修改一些系统帐号的shell变量,例如uucp,ftp和news等,还有一些仅仅需要FTP功能的帐号,检查并取消/bin/bash或者/bin/sh等Shell变量。可以在/etc/passwd中将它们的shell变量设为/bin/false或者/dev/null等。也可以通过passwd groupdel 来锁定用户、删除组。passw
4、d -l user1锁定user1用户passwd -u user1 解锁user1用户groupdel lp 删除lp组。22、口令策略的设置RedHat Linux总体口令策略的设定分两处进行,第一部分是在/etc/login.defs文件中定义,其中有四项相关内容:PASS_MAX_DAYS 密码最长时效(天)PASS_MIN_DAYS 密码最短时效(天)PASS_MIN_LEN 最短密码长度PASS_WARN_AGE 密码过期前PASS_WARN_AGE天警告用户编辑/etc/login.defs文件,设定:PASS_MAX_DAYS=90PASS_MIN_DAYS=0PASS_MIN
5、_LEN=8PASS_WARN_AGE=30另外可以在/etc/pam.d/system-auth文件中的cracklib项中定义口令强度:difokminlendcreditucreditlcreditocredit使用vi编辑/etc/pam.d/system-auth文件,设置cracklib的属性# This file is auto-generated.# User changes will be destroyed the next time authconfig is run.auth sufficient /lib/security/pam_unix.so likeauth n
6、ullokpassword required /lib/security/pam_cracklib.so retry=3 type= difok=4 minlen=12 dcredit=1 ucredit=2 lcredit=2 ocredit=1o nullok use_authtok md5 shadow23、系统是否允许root远程登录RedHat在文件/etc/securetty中定义root用户可以登录的端口;默认其中只包含vc/1-11和tty1-11,即root用户只能从本地登录。24、root的环境变量设置系统的环境变量在下列文件中设置:Bash:/etc/profile/.b
7、ash_profile/.bash_login/.profile/.bashrc/etc/bashrcTcsh/Csh:/.tcshrc或/.cshrc/.history/.login/.cshdirsprintenv 查看用户的环境变量检查环境变量PATH,确保其中不包含本地目录(.)。3、网络与服务加固31、rc?.d中的服务的设置RedHat的服务主要由/etc/inittab和/etc/rc?.d/S*文件启动,事实上,/etc/inittab的主要任务是为每一个runlevel指定启动文件,从而启动/etc/rc?.d/S*文件。例如,在默认的运行级别3中系统将运行/etc/rc3.
8、d/目录中所有S打头的文件。runlevel 检查当前运行级别(第一项是pre-runlevel,第二项是当前的runlevel)chkconfig list 检查所有级别中启动的服务情况chkconfig list |grep 3:on 检查某一级别(例如级别3)中启动的服务chkconfig sendmail off 将sendmail从启动目录中除去检查以下服务,如果不需要,关闭之在(/etc/inittab中注释掉);否则,参照3.3 3.4 3.5 3.6进行配置:portmap(启动rpcbind/portmap服务)nfslock (启动rpc.lockd和rpc.statd)h
9、ttpd (启动apache)named (启动bind)sendmail (启动sendmail)smb (启动samba服务)snmpd (启动snmp服务)snmptrapd (启动snmp trap服务)nfs (启动nfs服务)由INETD启动的服务在文件/etc/inetd.conf定义。建议关闭由inetd启动的所有服务;如果有管理上的需要,可以打开telnetd、ftpd、rlogind、rshd等服务。可从/etc/inetd.conf中删除的服务(在/etc/inetd.conf中注释掉):shellkshellloginkloginexeccomsatuucpbootps
10、fingersystatnetstattftptalkntalkechodiscardchargendaytimetimecomsatwebsminstsrvimap2pop3kfclixmqueryRedHat Linux 7.3以后使用了新版本的xinetd取代了老版本的inetd,在配置方面最大的不同在于使用了/etc/xinetd.d/配置目录取代了/etc/inetd.conf配置文件。每一项服务/etc/xinetd.d/中都有一个相应的配置文件,例如telnetd的配置文件是/etc/xinetd.d/telnet。查看每一个配置文件disable属性的定义(yes/no)就可以
11、确定该服务是否启动(默认是yes)。使用vi编辑/etc/xinetd.d/中的配置文件,在不需要启动的服务配置文件中添加disable=yes。建议关闭所有服务,如果管理需要,则可以打开telnetd和ftpd服务。使用vi编辑/etc/xinetd.d/rlogin文件,控制rlogin服务的启动状态# default: on# description: rlogind is the server for the rlogin(1) program. The server # provides a remote login facility with authentication base
12、d on # privileged port numbers from trusted hosts.service login disable = yes socket_type = stream wait = no user = root log_on_success += USERID log_on_failure += USERID33、NFS的配置NFS系统的组成情况:nfsd NFS服务进程,运行在服务器端,处理客户的读写请求mountd 加载文件系统服务进程,运行在服务器端,处理客户加载nfs文件系统的请求/etc/exports 定义服务器对外输出的NFS文件系统/etc/fst
13、ab 定义客户端加载的NFS文件系统如果系统不需要NFS服务,可以使用chkconfig关闭NFS服务;如果不能关闭,使用showmount -e或直接查看/etc/exports文件检查输出的文件系统是否必要,以及属性是否妥当(readonly等)。chkconfig -list nfs 显示NFS服务是否在系统启动时启动/etc/init.d/nfs start|stop 启动|停止nfs服务showmount -e 显示本机输出的NFS文件系统mount 显示本机加载的文件系统(包括NFS文件系统)34、SNMP的配置如果系统不需要SNMP服务,可以关闭该服务(使用chkconfig命令
14、);如果不能关闭,需要在/etc/snmpd.conf中指定不同的community name。chkconfig -list snmpd显示snmpd服务是否在系统启动时启动chkconfig snmpd off 将snmpd服务从启动目录中去掉/etc/init.d/snmpd start|stop 启动|停止snmpd服务35、Sendmail的配置如果系统不需要Sendmail服务,可以关闭该服务(使用chkconfig命令);如果不能关闭,将sendmail服务升级到最新,并在其配置文件/etc/sendmail.cf中指定不同banner(参见示例)。chkconfig -list
15、 sendmail显示sendmail服务是否在系统启动时启动chkconfig sendmail off 将sendmail服务从启动目录中去掉/etc/init.d/sendmail start|stop 启动|停止sendmail服务36、DNS(Bind)的配置如果系统不需要DNS服务,可以关闭该服务(使用chkconfig命令);如果不能关闭,将DNS服务升级到最新,并在其配置文件修改版本号(参见示例)。chkconfig -list named显示named服务是否在系统启动时启动chkconfig named off 将named服务从启动目录中去掉/etc/init.d/nam
16、ed start|stop 启动|停止named服务37、网络连接访问控制的设置RedHat 7.3以后版本中存在以下集中方式可以对网络连接设置访问控制:1、 使用iptable或ipchains进行网络访问控制;参见iptables和ipchains的manual。2、 使用xinetd本身的访问控制机制对xinetd启动的服务进行网络访问控制;xinetd可以在其配置文件中使用only_from和no_access指令限制可以访问该服务的主机,tcpd的配置文件是/etc/hosts.allow和/etc/hosts.deny;具体配置方法参见manual。使用xinetd自带的访问控制机
17、制控制对telnet服务的访问# default: on# description: The telnet server serves telnet sessions; it uses # unencrypted username/password pairs for authentication.service telnet disable = no flags = REUSE socket_type = stream wait = no user = root log_on_failure += USERID# deny access from host freebsd if uncomm
18、ent the following line# no_access = freebsd3、 使用pam系统中的pam_access模块提供的访问控制机制;配置文件是/etc/security/access.conf,该文件中提供了该文件的语法。使用pam_access进行网络访问控制在pam文件中添加pam_access模块(以system-auth文件为例)# This file is auto-generated.# User changes will be destroyed the next time authconfig is run.auth sufficient /lib/sec
19、urity/pam_unix.so likeauth nullokpassword required /lib/security/pam_cracklib.so retry=3 type= difok=4 minlen=12 dcredit=1 ucredit=2 lcredit=2 ocredit=1password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow4、信任主机的设置参照3.2(/etc/inetd.conf中服务的启动情况)检查rlogin、rsh、rexec服务是否启动。如果启动,查看配置
20、文件/etc/hosts.equiv(全局配置文件)和/.rhosts(单独用户的配置文件)文件,检查文件是否配置妥当。建议关闭R系列服务(rlogin、rsh、rexec);如果不能关闭,则需要检查配置文件,确保没有失当的配置(不能存在”+”或”+ +”,如果存在,咨询系统管理员是为何这样配置)。5、日志审核的设置对ssh、su登录日志进行记录编辑syslogd配置文件# vi /etc/syslog.conf 加入以下信息,使和登陆验证有关的日志信息记录到secure文件中# The authpriv file has restricted access.authpriv.* /var/l
21、og/secure重新启动syslogd:6、物理安全加固启动LILO时需要密码第一步:编辑lilo.conf文件(vi /etc/lilo.conf),加入或改变这三个参数(加#的部分): boot=/dev/hdaprompttimeout=00 # 把该行改为00,系统启动时将不再等待,而直接启动LINUXmessage=/boot/messagelinear default=linux restricted # 加入该行 password= is-0ne # 加入该行并设置自己的密码(明文) image=/boot/vmlinuz- label=linux root=/dev/hda6
22、 read-only 第二步:因为“”文件中包含明文密码,所以要把它设置为root权限读取。 # chmod 0600 /etc/lilo.conf 第三步:更新系统,以便对“”文件做的修改起作用。 # /sbin/lilo -v 第四步:使用“chattr”命令使“”文件不可改变。 # chattr +i /etc/lilo.conf 这样可以在一定程度上防止对“”任何改变(意外或其他原因)password用于系统启动时应当输入密码;restricted用于命令行启动系统时(如:进入单用户模式)需要输入密码。7、系统内核参数的配置RedHat Linux使用sysctl命令控制内核参数,并可
23、以在/etc/sysctl.conf中设置启动的内核参数。比较重要的网络安全参数有:=0 不接收源路由ip包=0 不发送重定向ip包=0 不接收重定向ip包=1 忽略icmp广播包net.ipv4.ip_forward=0 禁止ip转发sysctl -a 查看所有的内核参数sysctl -w net.ipv4.ip_forward=0 禁止ip转发使用vi编辑/etc/sysctl.conf文件,添加网络安全参数# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) for# more details.# Controls
24、 IP packet forwardingnet.ipv4.ip_forward = 0# Controls source route verificationnet.ipv4.conf.default.rp_filter = 1# Controls the System Request debugging functionality of the kernelkernel.sysrq = 0# Controls whether core dumps will append the PID to the core filename.# Useful for debugging multi-th
25、readed applications.kernel.core_uses_pid = 1# Add the networking security parameters #net.ipv4.conf.default.send_redirects=0net.ipv4.conf.default.accept_source_route=0net.ipv4.conf.default.accept_redirects=0net.ipv4.icmp_echo_ignore_broadcasts=1net.ipv4.ip_forward=08、选装安全工具工具名称TCP Wrapper工具用途该软件为大多数网络服务提供访问控制与日志记录的功能。相关信息工具名称Tripwire工具用途该工具为关键文件创建检验值数据库,当这些关键文件发生变化时,给root以提示信息。相关信息工具名称lsof工具用途该工具报告进程打开的文件、进程侦听的端口等信息。相关信息工具名称SSH工具用途该工具为主机间远程通讯提供加密通道。用来代替rsh、rlogin、telnet等远程登录工具。相关信息