一. linux加固目标和对象
项目加固的目标: 解决今年信通公司在风险评估工作中发现的linux服务器存在的安全问题,并结合南方电网安全基线标准修订版部署相关要求,将linux服务器的安全状况提升到一个较高的安全防护水平,尽可能降低由linux服务器带来的安全风险对电网信息业务正常运行的安全威胁。
项目加固的对象:本次信息安全加固对象主要包括贵州电网信通公司信息系统内的linux系统。具体设备见附录《linux系统主机》
二. 加固方案
2.1 设备管理
2.1.1 加固内容:安装SSH
描 述:SSH 是通过加密进行连接,提高信息传递的安全性
步 骤: 1.上传ssh ssl rpm包。
2.安装ssl包:rpm –ivh openssl-xxxx.rpm
2.安装rpm包: rpm –ivh openssh-server-xxxx.rpm
注意事项: 需要先安装ssl再安装ssh
存在风险应急处理措施: 不存在风险,安装不成功可用
rpm –E openssh-server-xx.rpm 回退
是否实施:
2.1.2 加固内容:使用TCP Wrapper配置访问控制
描 述:设置访问策略,可以防止非授权访问
步 骤: 1.打开hosts.allow文件添加允许ssh登录的ip,添加行格式为:
sshd:192.168.0.1 (单个地址)
sshd:192.168.0.0/255.255.255.0 (地址段)
2.打开hosts.deny文件添加一条拒绝所有的行:
sshd:ALL
注意事项: 做安全加固的PC机地址必须在允许的地址列表里
存在风险应急处理措施: 设置后,不在允许地址里的pc机将不能登录服务器。回退方法:删除hosts.allow和hosts.deny文件里添加的行
是否实施:
2.2 用户账号与口令安全
2.2.1 加固内容:限制系统无用的默认账号登录
描 述: 限制无用帐号可以防止攻击者通过默认帐号进行攻击的行为
步 骤: 使用命令锁定无用帐号:#passwd –l 帐号名,需要锁定如下帐号:
Daemon
Bin
Sys
Adm
Uucp
Lp
nobody
注意事项: 这些帐号默认都为锁定,不能登录
存在风险应急处理措施: 不存在风险。回退方法: #passwd –u 帐号名
是否实施:
2.2.2 加固内容:禁止root远程登录
描 述:禁止root远程登录,可以防止远程给自己以root权限进行连接
步 骤: 1.修改文件/etc/ssh/sshd_config,把参数PermitRootLogin no 取消注释,并把“no”改为“yes”
2.重启sshd:#service sshd restart
注意事项: 无
存在风险应急处理措施: 配置后,root不能远程登录,需要准备一个普通管理员帐号登录后再切换成root。回退措施:把/etc/ssh/sshd_config中的 PermitRootLogin改为yes,重启sshd
是否实施:
2.2.3 加固内容:设置口令策略
描 述:设置口令策略,可以提高帐号的安全性
步 骤: 修改文件/etc/login.defs
PASS_MAX_DAYS 180 密码使用最长期限为180天
PASS_MIN_DAYS 1 密码1天之内不能更改
PASS_WARN_AGE 28 密码过期之前28天提示修改
PASS_MIN_LEN 8 密码长度最小8位字符
注意事项: 修改了密码策略后,不符合标准的密码会在用户登录时强制修改密码
存在风险应急处理措施: 不存在风险。回退措施:根据在加固前所记录的帐户属性,修改设置到系统加固前状态
是否实施:
2.2.4 加固内容:控制用户登录会话时间
描 述:设置登录超时可以控制用户登录会话,提高系统安全性
步 骤: 设置用户600秒后连接自动断开
- 在/etc/profile文件添加行
TMOUT=600
- 重读环境变量
#export /etc/profile
注意事项: 无
存在风险应急处理措施: 无风险。回退方法:在/etc/profile文件里注释TMOUT=600
是否实施:
2.2.5 加固内容:禁止root用户使用FTP
描 述:禁止root用户使用ftp可以防止传输的文件具有高权限
步 骤: 1.在/etc/ftpusers文件里添加root
2.重启vsftpd。 #service vsftpd restart
注意事项: 无
存在风险应急处理措施: 不存在风险。回退方法:/etc/ftpusers文件里删除root并重启vsftpd
是否实施:
2.3 日志与审计
2.3.1 加固内容:捕获authpriv消息
描 述:启用日志,可以记录,查询攻击行为
步 骤: 1. 打开syslog配置文件etc/syslog.conf添加行:
authpriv.* /var/log/secure
2.重启syslogd:#service syslogd restart
注意事项: 系统默认保存authpriv日志
存在风险应急处理措施: 不存在风险。回退方法:删除或注释配置文件添加行并重启syslogd服务。
是否实施:
2.3.2 加固内容:日志存储在日志服务器中(可选)
描 述:日志存储在日志服务器中,可以防止攻击者删除日志,也可以使日志长时间保存。
步 骤:1.日志服务器的配置:
#vi /etc/sysconfig/syslog
将SYSLOGD_OPTIONS="-m 0" 修改成:SYSLOGD_OPTIONS="-r -m 0"
-r 表示启用记录远程主机的日志
2.本机配置:
修改/etc/syslog.conf文件
# vi /etc/syslog.conf
*.* @192.168.0.1 表示将本机的日志记录到192.168.0.1这台服务器上。
3.重启2台服务器日志服务
/etc/init.d/syslog restart
注意事项: 如无日志服务器本项不做加固
存在风险应急处理措施:删除或注释配置文件添加行并重启日志服务
是否实施:
2.3.3 加固内容:日志必须保存6个月或180天
描 述:日志保存的时间长,可以查询较长时间的日志
步 骤: 无
注意事项: 系统默认日志保存时间为永久,本项不做加固
存在风险应急处理措施:
是否实施:
2.3.4 加固内容:日志系统配置文件保护
描 述:日志文件的保护,可以防止攻击者对日志配置文件的访问
步 骤: 修改日志配置文件只有管理员可读
chmod 400 /etc/syslog.conf
注意事项: 无
存在风险应急处理措施: 无风险。回退措施:chmod 644 /etc/syslog.conf
是否实施:
2.4 服务优化
2.4.1 加固内容:关闭xinetd控制服务
描 述:关闭不需要的服务可以提高系统的安全性,也可以优化系统。
步 骤:修改/etc/xinetd.d/下各服务的配置文件:
把 disable = no 改为 yes
保存退出,重启xinetd
#service xinetd restart
需要关闭的服务:
telnet klogin kshell ntalk tftp
注意事项: ntalk也许会没有没有
存在风险应急处理措施: 不存在风险。回退措施:配置文件里的 disable = yes 改为 no ,重启xinetd服务
是否实施:
2.4.2 加固内容:关闭FTP服务(可选)
描 述:关闭不需要的服务,可以提高系统安全性
步 骤: 1. 闭ftp服务:
service vsftpd stop
2.禁止开机启动:
chkconfig vsftpd off
注意事项: 无
存在风险应急处理措施: 不存在风险。1.启动ftp服务:service vsftpd start 2.设置开机启动ftp服务:chkconfig vsftpd on
是否实施:
2.4.3 加固内容:关闭sendmail服务(可选)
描 述: 关闭sendmail服务可以防止利用此服务对系统进行攻击。
步 骤:1.关闭sendmail服务:
service sendmail stop
2.禁止开机启动:
chkconfig sendmail off
注意事项: sendmail关闭后系统将收不到邮件
存在风险应急处理措施: 无风险。回退操作: 1. service sendmail stop
2. chkconfig sendmail off
是否实施:
2.4.4 加固内容:关闭pop3、imap服务
描 述:关闭不需要的服务,可以提高系统安全性
步 骤: 1.关闭dovecot服务:
#service dovecot stop
2.禁止开机启动:
#chkconfig dovecot off
注意事项: linux的pop3和imap由dovecot管理,但是系统默认不装dovecot
存在风险应急处理措施: 邮件服务器上不能关闭此服务。回退方法:
1.启动dovecot服务:#service dovecot start
2.设置开机启动dovecot服务: #chkconfig dovecot on
是否实施:
2.4.5 加固内容:关闭图形化窗口服务
描 述:如果不需要可以进行关闭,防止潜在攻击行为
步 骤: 1.关闭图形化:
#init 3
2.设置开机不启动图形化
#vi /etc/inittab
修改开机启动runlevel为3
id:3:initdefault
注意事项: 重启后开机将不启动图形化
存在风险应急处理措施: 不存在风险。回退方法:#init 5
是否实施:
2.4.6 加固内容:关闭普通服务
描 述:关闭不需要的服务可以提高系统的安全性,也可以优化系统。
步 骤: 1.使用 service <服务名> stop 停止服务
2.使用命令“chkconfig --level <init级别> <服务名> off”设置服务在各init级别下开机不启动
3.可以使用 chkconfig –list 查看服务开机启动状态
4.需要关闭服务:
nfs、nfslock、autofs、ypbind
ypserv、yppasswdd、portmap
smb、netfs、lpd、apache
httpd、tux、snmpd、named
postgresql、mysqld、webmin、
kudzu、squid、cups、ip6tables
iptables、pcmcia、bluetooth
NSResponder、apmd、avahi-daemon
canna、cups-config-daemon
FreeWnn、gpm、hidd等
注意事项: nfs、httpd、iptables也许能用到。有些服务默认并没有安装
存在风险应急处理措施: 无。回退方法:
启动服务:service 服务名 start
设置开机启动服务:chkconfig 服务名 on
是否实施:
2.5 安全防护
2.5.1 加固内容:设置UMASK值
描 述: 设置umask值可以定义新建文件的访问权限
步 骤: 在/etc/profile添加行: umask=022
注意事项: 无
存在风险应急处理措施:修改后,新建文件权限默认为644.回退方法:改/etc/profile文件到加固前状态
是否实施:
2.5.2 加固内容:敏感文件的安全保护
描 述:可以防止攻击者对关键文件的攻击行为
步 骤:修改如下文件的权限:
#chmod 644 /etc/passwd
#chmod 644 /etc/group
#chmod 400 /etc/shadow
注意事项:
存在风险应急处理措施: 无。修改文件的权限到加固之前的权限。
是否实施: