CentOS7.0系统安全加固手册
目录
一、用户帐号和环境……………………………………………………………………………………. 2 二、系统访问认证和授权……………………………………………………………………………… 3 三、核心调整……………………………………………………………………………………………… 4 四、需要关闭的一些服务……………………………………………………………………………… 5 五、SSH安全配置……………………………………………………………………………………….. 5 六、封堵openssl的Heartbleed漏洞…………………………………………………………………. 6 七、开启防火墙策略……………………………………………………………………………………. 6 八、启用系统审计服务…………………………………………………………………………………. 8 九、部署完整性检查工具软件………………………………………………………………………. 10 十、部署系统监控环境……………………………………………………………………………….. 11
以下安全设置均是在CentOS7.0_x64环境下minimal安装进行的验证。 一、用户帐号和环境
二、系统访问认证和授权
三、核心调整
四、需要关闭的一些服务
五、SSH安全配置
六、封堵openssl的Heartbleed漏洞
检测方法:在服务器上运行以下命令确认openssl版本 # openssl version OpenSSL 1.0.1e-fips 11 Feb 2013 以上版本的openssl存在Heartbleed bug,需要有针对性的打补丁。 升及补丁: #yum -y install openssl 验证: # openssl version -a OpenSSL 1.0.1e-fips 11 Feb 2013 built on: Thu Jun 5 12:49:27 UTC 2014 以上built on 的时间是2014.6.5号,说明已经修复了该漏洞。 注:如果能够临时联网安装以上补丁,在操作上会比较简单一些。如果无法联网,则有两种处理办法:首选从安装光盘拷贝独立的rpm安装文件并更新;另一个办法是提前下载最新版本的openssl源码,编译并安装。
七、开启防火墙策略在CentOS7.0中默认使用firewall代替了iptables service。虽然继续保留了iptables命令,但已经仅是名称相同而已。除非手动删除firewall,再安装iptables,否则不能继续使用以前的iptables配置方法。以下介绍的是firewall配置方法: #cd /usr/lib/firewalld/services //该目录中存放的是定义好的网络服务和端口参数,只用于参考,不能修改。这个目录中只定义了一部分通用网络服务。在该目录中没有定义的网络服务,也不必再增加相关xml定义,后续通过管理命令可以直接增加。 #cd /etc/firewalld/services/ //从上面目录中将需要使用的服务的xml文件拷至这个目录中,如果端口有变化则可以修改文件中的数值。
八、启用系统审计服务审计内容包括:系统调用、文件访问、用户登录等。编辑/etc/audit/audit.rules,在文中添加如下内容:
-w /var/log/audit/ -k LOG_audit -w /etc/audit/ -p wa -k CFG_audit -w /etc/sysconfig/auditd -p wa -k CFG_auditd.conf -w /etc/libaudit.conf -p wa -k CFG_libaudit.conf -w /etc/audisp/ -p wa -k CFG_audisp -w /etc/cups/ -p wa -k CFG_cups -w /etc/init.d/cups -p wa -k CFG_initd_cups -w /etc/netlabel.rules -p wa -k CFG_netlabel.rules -w /etc/selinux/mls/ -p wa -k CFG_MAC_policy -w /usr/share/selinux/mls/ -p wa -k CFG_MAC_policy -w /etc/selinux/semanage.conf -p wa -k CFG_MAC_policy -w /usr/sbin/stunnel -p x -w /etc/security/rbac-self-test.conf -p wa -k CFG_RBAC_self_test -w /etc/aide.conf -p wa -k CFG_aide.conf -w /etc/cron.allow -p wa -k CFG_cron.allow -w /etc/cron.deny -p wa -k CFG_cron.deny -w /etc/cron.d/ -p wa -k CFG_cron.d -w /etc/cron.daily/ -p wa -k CFG_cron.daily -w /etc/cron.hourly/ -p wa -k CFG_cron.hourly -w /etc/cron.monthly/ -p wa -k CFG_cron.monthly -w /etc/cron.weekly/ -p wa -k CFG_cron.weekly -w /etc/crontab -p wa -k CFG_crontab -w /var/spool/cron/root -k CFG_crontab_root -w /etc/group -p wa -k CFG_group -w /etc/passwd -p wa -k CFG_passwd -w /etc/gshadow -k CFG_gshadow -w /etc/shadow -k CFG_shadow -w /etc/security/opasswd -k CFG_opasswd -w /etc/login.defs -p wa -k CFG_login.defs -w /etc/securetty -p wa -k CFG_securetty -w /var/log/faillog -p wa -k LOG_faillog -w /var/log/lastlog -p wa -k LOG_lastlog -w /var/log/tallylog -p wa -k LOG_tallylog -w /etc/hosts -p wa -k CFG_hosts -w /etc/sysconfig/network-scripts/ -p wa -k CFG_network -w /etc/inittab -p wa -k CFG_inittab -w /etc/rc.d/init.d/ -p wa -k CFG_initscripts -w /etc/ld.so.conf -p wa -k CFG_ld.so.conf -w /etc/localtime -p wa -k CFG_localtime -w /etc/sysctl.conf -p wa -k CFG_sysctl.conf -w /etc/modprobe.conf -p wa -k CFG_modprobe.conf -w /etc/pam.d/ -p wa -k CFG_pam -w /etc/security/limits.conf -p wa -k CFG_pam -w /etc/security/pam_env.conf -p wa -k CFG_pam -w /etc/security/namespace.conf -p wa -k CFG_pam -w /etc/security/namespace.init -p wa -k CFG_pam -w /etc/aliases -p wa -k CFG_aliases -w /etc/postfix/ -p wa -k CFG_postfix -w /etc/ssh/sshd_config -k CFG_sshd_config -w /etc/vsftpd.ftpusers -k CFG_vsftpd.ftpusers -a exit,always -F arch=b32 -S sethostname -w /etc/issue -p wa -k CFG_issue -w /etc/issue.net -p wa -k CFG_issue.net 重启audit服务 #service auditd restart
九、部署完整性检查工具软件AIDE(Advanced Intrusion Detection Environment,高级入侵检测环境)是个入侵检测工具,主要用途是检查文档的完整性。 AIDE能够构造一个指定文档的数据库,他使用aide.conf作为其配置文档。AIDE数据库能够保存文档的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文档大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小连同连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文档的校验码或散列号。 在系统安装完毕,要连接到网络上之前,系统管理员应该建立新系统的AIDE数据库。这第一个AIDE数据库是系统的一个快照和以后系统升级的准绳。数据库应该包含这些信息:关键的系统二进制可执行程式、动态连接库、头文档连同其他总是保持不变的文档。这个数据库不应该保存那些经常变动的文档信息,例如:日志文档、邮件、/proc文档系统、用户起始目录连同临时目录 安装方法: #yum -y install aide 注:如果主机不能联网安装AIDE,那么也可以从安装光盘拷贝至目标主机。
检验系统文件完整性的要求: 因为AIDE可执行程序的二进制文档本身可能被修改了或数据库也被修改了。因此,应该把AIDE的数据库放到安全的地方,而且进行检查时要使用确保没有被修改过的程序,最好是事先为AIDE执行程序生成一份MD5信息。再次使用AIDE可执行程序时,需要先验证该程序没有被篡改过。
配置说明:
建立、更新样本库: 1)执行初始化,建立第一份样本库 # aide –init # cd /var/lib/aide/ # mv aide.db.new.gz aide.db.gz //替换旧的样本库 2)更新到样本库 #aide –update # cd /var/lib/aide/ # mv aide.db.new.gz aide.db.gz //替换旧的样本库
执行aide入侵检测: 1)查看入侵检测报告 #aide –check 报告的详细程度可以通过-V选项来调控,级别为0-255,-V0 最简略,-V255 最详细。 或 #aide –compare 这个命令要求在配置文件中已经同时指定好了新、旧两个库文件。 2)保存入侵检测报告(将检查结果保存到其他文件) aide –check –report=file:/tmp/aide-report-20120426.txt 3)定期执行入侵检测,并发送报告 # crontab -e 45 17 * * * /usr/sbin/aide -C -V4 | /bin/mail -s ”AIDE REPORT $(date +%Y%m%d)” abcdefg#163.com 或 45 23 * * * aide -C >> /var/log/aide/’date +%Y%m%d’_aide.log
记录aide可执行文件的md5 checksum: #md5sum /usr/sbin/aide
十、部署系统监控环境该段落因为需要安装或更新较多的依赖包,所以目前仅作为参考。 为了在将来合适的时候,可以支持通过一台集中的监控主机全面监控主机系统和网络设备的运行状态、网络流量等重要数据,可以在安全加固主机的系统中预先安装和预留了系统监控软件nagios和cacti在被监控主机中需要使用的软件支撑环境。 由于以下软件在安装过程中需要使用源码编译的方式,由此而引发需要安装GCC和OPENSSL-DEVEL。而为了安装GCC和OPENSSL-DEVEL而引发的依赖包的安装和更新大约有20个左右。这就违返了安全加固主机要保持最小可用系统的设计原则,所以该部分监控软件支撑环境的部署工作不作为默认设置,但仍然通过下文给出了部署参考,以用于系统运行运维过程中需要部署全局性监控系统时使用。
1)安装net-snmp服务 #yum -y install net-snmp #chkconfig snmpd off —将该服务设置为默认关闭,这里只是为以后部署cacti先预置一个支撑环境
如果不能联网安装,则可以使用安装光盘,并安装以下几个rpm包: lm_sensors , net-snmp , net-snmp-libs , net-snmp-utils
2)安装nagios-plugin和nrpe
a. 增加用户&设定密码 # useradd nagios # passwd nagios b. 安装Nagios 插件 # tar zxvf nagios-plugins-2.0.3.tar.gz # cd nagios-plugins-2.0.3 # ./configure –prefix=/usr/local/nagios # make && make install 这一步完成后会在/usr/local/nagios/下生成三个目录include、libexec和share。 修改目录权限 # chown nagios.nagios /usr/local/nagios # chown -R nagios.nagios /usr/local/nagios/libexec c. 安装NRPE # tar zxvf nrpe-2.15.tar.gz # cd nrpe-2.15 # ./configure # make all 接下来安装NPRE插件,daemon和示例配置文件。 c.1 安装check_nrpe 这个插件 # make install-plugin 监控机需要安装check_nrpe 这个插件,被监控机并不需要,在这里安装它只是为了测试目的。 c.2 安装deamon # make install-daemon c.3 安装配置文件 # make install-daemon-config 现在再查看nagios 目录就会发现有5个目录了 (责任编辑:IT) |