Linu系统安全加固手册.docx
- 文档编号:15927757
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:13
- 大小:19.96KB
Linu系统安全加固手册.docx
《Linu系统安全加固手册.docx》由会员分享,可在线阅读,更多相关《Linu系统安全加固手册.docx(13页珍藏版)》请在冰点文库上搜索。
Linu系统安全加固手册
密级:
商业秘密
LINUX评估加固手册
安氏领信科技发展有限公司
二〇〇七年五月
1、系统补丁的安装
RedHat使用RPM包实现系统安装的管理,系统没有单独补丁包(Patch)。
如果出现新的漏洞,则发布一个新的RPM包,版本号(Version)不变,Release做相应的调整。
因此检查RHLinux的补丁安装情况只能列出所有安装的软件,和RH网站上发布的升级软件对照,检查其中的变化。
通过访问官方站点下载最新系统补丁,RedHat公司补丁地址如下:
-qa查看系统当前安装的rpm包
rpm-ivhpackage1安装RPM包
rpm-Uvhpackage1升级RPM包
rpm-Fvhpackage1升级RPM包(如果原先没有安装,则不安装)
2、帐户、口令策略的加固
2.1、删除或禁用系统无用的用户
询问系统管理员,确认其需要使用的帐户
如果下面的用户及其所在的组经过确认不需要,可以删除。
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等。
也可以通过passwdgroupdel来锁定用户、删除组。
passwd-luser1锁定user1用户
passwd-uuser1解锁user1用户
groupdellp删除lp组。
2.2、口令策略的设置
RedHatLinux总体口令策略的设定分两处进行,第一部分是在/etc/文件中定义,其中有四项相关内容:
PASS_MAX_DAYS密码最长时效(天)
PASS_MIN_DAYS密码最短时效(天)
PASS_MIN_LEN最短密码长度
PASS_WARN_AGE密码过期前PASS_WARN_AGE天警告用户
编辑/etc/文件,设定:
PASS_MAX_DAYS=90
PASS_MIN_DAYS=0
PASS_MIN_LEN=8
PASS_WARN_AGE=30
另外可以在/etc/system-auth文件中的cracklib项中定义口令强度:
difok
minlen
dcredit
ucredit
lcredit
ocredit
使用vi编辑/etc/system-auth文件,设置cracklib的属性
#%
#Thisfileisauto-generated.
#Userchangeswillbedestroyedthenexttimeauthconfigisrun.
authrequired/lib/security/
authsufficient/lib/security/likeauthnullok
authrequired/lib/security/
accountrequired/lib/security/
accountrequired/lib/security/
passwordrequired/lib/security/retry=3type=difok=4minlen=12dcredit=1ucredit=2lcredit=2ocredit=1
passwordsufficient/lib/security/nullokuse_authtokmd5shado
w
passwordrequired/lib/security/
sessionrequired/lib/security/
sessionrequired/lib/security/
2.3、系统是否允许root远程登录
RedHat在文件/etc/securetty中定义root用户可以登录的端口;默认其中只包含vc/1-11和tty1-11,即root用户只能从本地登录。
2.4、root的环境变量设置
系统的环境变量在下列文件中设置:
Bash:
/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc
/etc/bashrc
Tcsh/Csh:
/etc/
/etc/
~/.tcshrc或~/.cshrc
~/.history
~/.login
~/.cshdirs
printenv查看用户的环境变量
检查环境变量PATH,确保其中不包含本地目录(.)。
3、网络与服务加固
3.1、rc.d中的服务的设置
RedHat的服务主要由/etc/inittab和/etc/rc.d/S*文件启动,事实上,/etc/inittab的主要任务是为每一个runlevel指定启动文件,从而启动/etc/rc.d/S*文件。
例如,在默认的运行级别3中系统将运行/etc/目录中所有S打头的文件。
runlevel检查当前运行级别(第一项是pre-runlevel,第二项是当前的runlevel)
chkconfig–list检查所有级别中启动的服务情况
chkconfig–list|grep3:
on检查某一级别(例如级别3)中启动的服务
chkconfigsendmailoff将sendmail从启动目录中除去
检查以下服务,如果不需要,关闭之在(/etc/inittab中注释掉);否则,参照进行配置:
portmap(启动rpcbind/portmap服务)
nfslock(启动和)
httpd(启动apache)
named(启动bind)
sendmail(启动sendmail)
smb(启动samba服务)
snmpd(启动snmp服务)
snmptrapd(启动snmptrap服务)
nfs(启动nfs服务)
3.2、/etc/中服务的设置
由INETD启动的服务在文件/etc/定义。
建议关闭由inetd启动的所有服务;如果有管理上的需要,可以打开telnetd、ftpd、rlogind、rshd等服务。
可从/etc/中删除的服务(在/etc/中注释掉):
shell
kshell
login
klogin
exec
comsat
uucp
bootps
fingersystat
netstat
tftp
talk
ntalk
echo
discard
chargen
daytime
time
comsat
websm
instsrv
imap2
pop3
kfcli
xmquery
RedHatLinux以后使用了新版本的xinetd取代了老版本的inetd,在配置方面最大的不同在于使用了/etc/配置目录取代了/etc/配置文件。
每一项服务/etc/中都有一个相应的配置文件,例如telnetd的配置文件是/etc/telnet。
查看每一个配置文件disable属性的定义(yes/no)就可以确定该服务是否启动(默认是yes)。
使用vi编辑/etc/中的配置文件,在不需要启动的服务配置文件中添加disable=yes。
建议关闭所有服务,如果管理需要,则可以打开telnetd和ftpd服务。
使用vi编辑/etc/rlogin文件,控制rlogin服务的启动状态
#default:
on
#description:
rlogindistheserverfortherlogin
(1)program.Theserver\
#providesaremoteloginfacilitywithauthenticationbasedon\
#privilegedportnumbersfromtrustedhosts.
servicelogin
{
disable=yes
socket_type=stream
wait=no
user=root
log_on_success+=USERID
log_on_failure+=USERID
server=/usr/sbin/
3.3、NFS的配置
NFS系统的组成情况:
nfsdNFS服务进程,运行在服务器端,处理客户的读写请求
mountd加载文件系统服务进程,运行在服务器端,处理客户加载nfs文件系统的请求
/etc/exports定义服务器对外输出的NFS文件系统
/etc/fstab定义客户端加载的NFS文件系统
如果系统不需要NFS服务,可以使用chkconfig关闭NFS服务;如果不能关闭,使用showmount-e或直接查看/etc/exports文件检查输出的文件系统是否必要,以及属性是否妥当(readonly等)。
chkconfig--listnfs显示NFS服务是否在系统启动时启动
/etc/nfsstart|stop启动|停止nfs服务
showmount-e显示本机输出的NFS文件系统
mount显示本机加载的文件系统(包括NFS文件系统)
3.4、SNMP的配置
如果系统不需要SNMP服务,可以关闭该服务(使用chkconfig命令);如果不能关闭,需要在/etc/中指定不同的communityname。
chkconfig--listsnmpd显示snmpd服务是否在系统启动时启动
chkconfigsnmpdoff将snmpd服务从启动目录中去掉
/etc/snmpdstart|stop启动|停止snmpd服务
3.5、Sendmail的配置
如果系统不需要Sendmail服务,可以关闭该服务(使用chkconfig命令);如果不能关闭,将sendmail服务升级到最新,并在其配置文件/etc/中指定不同banner(参见示例)。
chkconfig--listsendmail显示sendmail服务是否在系统启动时启动
chkconfigsendmailoff将sendmail服务从启动目录中去掉
/etc/sendmailstart|stop启动|停止sendmail服务
3.6、DNS(Bind)的配置
如果系统不需要DNS服务,可以关闭该服务(使用chkconfig命令);如果不能关闭,将DNS服务升级到最新,并在其配置文件修改版本号(参见示例)。
chkconfig--listnamed显示named服务是否在系统启动时启动
chkconfignamedoff将named服务从启动目录中去掉
/etc/namedstart|stop启动|停止named服务
3.7、网络连接访问控制的设置
RedHat以后版本中存在以下集中方式可以对网络连接设置访问控制:
1、使用iptable或ipchains进行网络访问控制;参见iptables和ipchains的manual。
2、使用xinetd本身的访问控制机制对xinetd启动的服务进行网络访问控制;xinetd可以在其配置文件中使用only_from和no_access指令限制可以访问该服务的主机,tcpd的配置文件是/etc/和/etc/;具体配置方法参见manual。
使用xinetd自带的访问控制机制控制对telnet服务的访问
#default:
on
#description:
Thetelnetserverservestelnetsessions;ituses\
#unencryptedusername/passwordpairsforauthentication.
servicetelnet
{
disable=no
flags=REUSE
socket_type=stream
wait=no
user=root
server=/usr/sbin/
log_on_failure+=USERID
#allowaccessfromhostfreebsdandnetwork/24
only_from=freebsd/24
#alsoallowaccessfromhost
only_from+=
#denyaccessfromhostfreebsdifuncommentthefollowingline
#no_access=freebsd
}
3、使用pam系统中的pam_access模块提供的访问控制机制;配置文件是/etc/security/,该文件中提供了该文件的语法。
使用pam_access进行网络访问控制
在pam文件中添加pam_access模块(以system-auth文件为例)
#%
#Thisfileisauto-generated.
#Userchangeswillbedestroyedthenexttimeauthconfigisrun.
authrequired/lib/security/
authsufficient/lib/security/likeauthnullok
authrequired/lib/security/
accountrequired/lib/security/
accountrequired/lib/security/
passwordrequired/lib/security/retry=3type=difok=4mi
nlen=12dcredit=1ucredit=2lcredit=2ocredit=1
passwordsufficient/lib/security/nullokuse_authtokmd5shado
w
passwordrequired/lib/security/
sessionrequired/lib/security/
sessionrequired/lib/security/
4、信任主机的设置
参照(/etc/中服务的启动情况)检查rlogin、rsh、rexec服务是否启动。
如果启动,查看配置文件/etc/(全局配置文件)和~/.rhosts(单独用户的配置文件)文件,检查文件是否配置妥当。
建议关闭R系列服务(rlogin、rsh、rexec);如果不能关闭,则需要检查配置文件,确保没有失当的配置(不能存在”+”或”++”,如果存在,咨询系统管理员是为何这样配置)。
5、日志审核的设置
对ssh、su登录日志进行记录
编辑syslogd配置文件
#vi/etc/
加入以下信息,使和登陆验证有关的日志信息记录到secure文件中
#Theauthprivfilehasrestrictedaccess.
authpriv.*/var/log/secure
重新启动syslogd:
#/etc/syslogrestart
6、物理安全加固
启动LILO时需要密码
第一步:
编辑文件(vi/etc/),加入或改变这三个参数(加#的部分):
boot=/dev/hda
prompt
timeout=00#把该行改为00,系统启动时将不再等待,而直接启动LINUX
message=/boot/message
linear
default=linux
restricted#加入该行
password=is-0ne#加入该行并设置自己的密码(明文)
image=/boot/vmlinuz-2.4.18
label=linux
root=/dev/hda6
read-only
第二步:
因为“/etc/”文件中包含明文密码,所以要把它设置为root权限读取。
#chmod0600/etc/
第三步:
更新系统,以便对“/etc/”文件做的修改起作用。
#/sbin/lilo-v
第四步:
使用“chattr”命令使“/etc/”文件不可改变。
#chattr+i/etc/
这样可以在一定程度上防止对“/etc/”任何改变(意外或其他原因)
最后将/etc/文件权限改为600
#chmod600/etc/
password用于系统启动时应当输入密码;
restricted用于命令行启动系统时(如:
进入单用户模式)需要输入密码。
7、系统内核参数的配置
RedHatLinux使用sysctl命令控制内核参数,并可以在/etc/中设置启动的内核参数。
比较重要的网络安全参数有:
不接收源路由ip包
不发送重定向ip包
不接收重定向ip包
忽略icmp广播包
禁止ip转发
sysctl-a查看所有的内核参数
sysctl-w禁止ip转发
使用vi编辑/etc/文件,添加网络安全参数
#Forbinaryvalues,0isdisabled,1isenabled.Seesysctl(8)for
#moredetails.
#ControlsIPpacketforwarding
=0
#Controlssourcerouteverification
=1
#ControlstheSystemRequestdebuggingfunctionalityofthekernel
=0
#ControlswhethercoredumpswillappendthePIDtothecorefilename.
#Usefulfordebuggingmulti-threadedapplications.
=1
####Addthenetworkingsecurityparameters####
、选装安全工具
工具名称
TCPWrapper
工具用途
该软件为大多数网络服务提供访问控制与日志记录的功能。
相关信息
,当这些关键文件发生变化时,给root以提示信息。
相关信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linu 系统安全 加固 手册