附件二: Linux主机安全配置
1 安装安全补丁
及时获得最新的安全补丁,经测试不会对系统上所运行的应用造成不良影响后,及时安装补丁程序。保持系统始终处于安装了必要的最新安全补丁状况。
2 设置合适的口令策略文件
编辑/etc/login.defs文件,设置合适的口令策略文件,包括最小口令长度、口令使用期限等,例如设置“PASS_MIN_LEN 8“,即默认的最小口令长度为8。
/etc/login.defs :
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
PASS_MAX_DAYS 90
PASS_MIN_LEN 8
最大同时登录的会话数 /etc/security/limits.conf 中加入
* hard maxlogins 8
/etc/pam.d/login 中加入
session required /lib/security/pam_limits.so
如是32位版的linux(uname –m 检查操作系统版本),文件名应改为/lib/security/pam_limits.so
需重启sshd服务(service sshd restart)。
3 帐号锁定
/etc/pam.d/system-auth :(下面两条放到sufficient条目之前)
auth required /lib/security/pam_tally.so onerr=fail
account required /lib/security/pam_tally.so deny=30 reset
如是32位版的linux,文件名应改为/lib/security/pam_tally.so
需重启sshd服务(service sshd restart)。
4 网络访问控制 禁止root远程登录
/etc/ssh/sshd_config : (修改下面两条,需重启service sshd restart)
PermitRootLogin no
MaxAuthTries 6
屏蔽banner信息
/etc/ssh/sshd_config :
注释掉banner的相关条目
#Banner /some/path
5 设置初始文件权限
~/.bash_profile : (针对每一用户,该配置文件中增加一行)
umask 077 #适用root用户,其它用户不可读
umask 022 #适用非root用户,其它用户可读不可写
6 设置合适的历史命令数量
编辑“/etc/profile”文件,确保HISTFILESIZE和HISTSIZE都设成了一个比较小的值。
export HISTSIZE=80
export HISTFILESIZE=80
7 设置系统自动注销帐号功能
编辑/etc/profile文件,确保其中TMOUT参数设置了合适的值,例如600(10分钟),即可设置自动注销帐号功能。
export TMOUT=600
8 防止任何人使用su命令成为root(删除系统中多余的帐号,则不必做该项) 如果不想任何人都可以用“su”命令成为root 或 只让某些用户有权使用“su”命令,须在“/etc/pam.d/su”文件的头部加入下面两行,确保只有“wheel”组的成员才能用su 命令成为root:
auth sufficient /lib/security/pam_rootok.so debug auth required /lib/security/pam_wheel.so group=wheel
然后使用“usermod -G10 用户名“命令将需要su成为root的用户添加到wheel用户组。
9 关闭不必要的服务
如果安装并运行了xinetd服务:(如果没有安装veritas备份软件客户端,建议关闭xinetd服务)
(1) 确保/etc/xinetd.d/目录下的文件的存取权限值为600、拥有者为root。
(2) 确保/etc/services文件的存取权限值设定为4、拥有者为root。
(3) 编辑/etc/xinetd.d/目录下的文件,关闭所有不需要的服务,例如ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、echo、chargen、tftp以及一系列“r”服务(rsh、rlogin)。
➢ 编辑各种服务所对应的文件,确保“disable = yes”。 ➢ 为了使对系统的改变生效,需要重新启动inetd进程。
图形界面(serviceconf)关闭服务:echo, httpd, rlogin, rsh, sendmail, smb, snmpd, telnet, time, talk, vsftpd。
或请将service-off.tar文件,上传到服务器,解压 tar xf service-off.tar,
执行 ./service-off.sh 可将一般不需要的服务关闭(欲关闭的服务在service-off-list文件中)。
10 确保关键用户帐号文件安全
确保/etc/passwd、/etc/shadow和/etc/group文件存取权限值为4,400和4,拥有者为root。
给口令文件(/etc/passwd、/etc/shadow)和组文件(/etc/group)设置不可改变位,防止其不被意外删除或重写,也可防止恶意用户创建文件符号连接。
备注:若将来要在口令或组文件中增加或删除用户,必须先清除这些文件的不可改变位,否则就不能做任何改变。
11 禁用或删除uid=0的非root帐号
uid=0的用户具有超级用户权限,为确保系统的安全性,一个系统中只有root用户的uid=0。检查/etc/passwd文件,禁用或删除uid=0的非root帐号。
12 删除空口令帐号或修改空口令帐号密码
空口令帐号很容易被恶意用户利用,对系统造成威胁。检查/etc/shadow文件,删除空口令帐号或修改空口令帐号密码。
图形界面命令 system-config-users
13 设置合适的syslog.conf文件
(1) 确保/etc/syslog.conf文件的存取权限值为4,拥有者为root。 (2) 确保/etc/syslog.conf文件内容设置合适。
(3) 执行/etc/rc.d/init.d/syslog restart,确保修改的/etc/syslog.conf文件生效。 14 仅允许特定IP允许访问服务
Linux下一般在应用软件的配置中进行相关设置(如Oracle的sqlnet.ora)。