Centos安全加固文档精编版[59页].docx
-
资源ID:49049117
资源大小:191KB
全文页数:44页
- 资源格式: DOCX
下载积分:19金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
Centos安全加固文档精编版[59页].docx
最新资料推荐1 #检查FTP配置-限制用户FTP登录1.1 判断条件:root daemon bin sys adm lp uucp nuucp listen nobody noaccess nobody4,以上用户不能通过FTP登录,则符合安全要求; vi /etc/vsftpd/ftpusers 增加以下用户 sys nuucp listen noaccess nobody4 修改文件 vi /etc/vsftpd/vsftpd.conf 找到 userlist_enable=YES确保此选项被激活后 userlist_deny=YES 1.2 参考配置操作:加固方案来源于配置规范,仅供参考,实际加固方法由系统集成商、设备原厂和管理员共同确定。1、修改ftpusers文件,增加不能通过ftp登录的用户首先需确定ftpusers文件位置,可以通过以下命令知道:#cat /etc/pam.d/vsftpdauth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed其中file=/etc/vsftpd.ftpusers即为当前系统上的ftpusers文件。修改文件(假设文件为/etc/ftpusers):# vi /etc/ftpusers在文件中增加以下用户,则该用户均不允许通过ftp登录:root daemon bin sys adm lp uucp nuucp listen nobody noaccess nobody42、配置vsftpd.conf文件,设定只允许特定用户通过ftp登录:vsftpd.conf文件路径一般为/etc/vsftpd.conf或者/etc/vsftpd/vsftpd.conf。修改其中内容:userlist_enable=YES此选项被激活后,VSFTPD将读取userlist_file参数所指定的文件中的用户列表。userlist_deny=NO决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入口令的提示。NO,只允许在文件中的用户登录FTP服务器。userlist_file=/etc/vsftpd.user_list补充操作说明:/etc/ftpusers文件中存在如下不允许FTP登录的用户账号:root daemon bin sys adm lp uucp nuucp listen nobody noaccess nobody4 1.3 检查脚本: rootsmdw #bash rootsmdw # #!/bin/bash rootsmdw # FTPSTATUS=ps -ef|grep -i ftp|grep -v grep|wc -l; rootsmdw # function Check_vsftpconf > > if -f /etc/vsftpd.conf ; > then > FTPCONF="/etc/vsftpd.conf" > elif -f /etc/vsftpd/vsftpd.conf ; > then > FTPCONF="/etc/vsftpd/vsftpd.conf" > else > echo "/etc/vsftpd.conf or /etc/vsftpd/vsftpd.conf is not exist,scripts exit now" > return 0; > fi; > if "id -u" != 0 && -f "/usr/bin/sudo" ;then > echo "-$FTPCONF-" > sudo cat $FTPCONF|grep -v "#" > FTPUSER=sudo cat $FTPCONF|grep -v "#"|grep userlist_file|cut -d= -f2; > echo "-$FTPUSER-" > sudo cat $FTPUSER:="/etc/vsftpd.user_list" |grep -v "#" > userlist_enable=sudo grep -v "#" $FTPCONF|grep -i "userlist_enable=YES"|wc -l; > userlist_deny=sudo grep -v "#" $FTPCONF|grep -i "userlist_deny=NO"|wc -l; > if $userlist_enable = 1 -a $userlist_deny = 1 > then > if sudo grep -v "#" $FTPUSER|egrep $name_list|wc -l = 0 ; > then echo "FTP is running.FTP check result:true."> else echo "FTP is running.FTP check result:false." > fi; > else echo "FTP is running.FTP check result:false." > fi > else > echo "-$FTPCONF-" > cat $FTPCONF|grep -v "#" > FTPUSER=cat $FTPCONF|grep -v "#"|grep userlist_file|cut -d= -f2; > echo "-$FTPUSER-" > cat $FTPUSER:="/etc/vsftpd.user_list" |grep -v "#" > userlist_enable=grep -v "#" $FTPCONF|grep -i "userlist_enable=YES"|wc -l; > userlist_deny=grep -v "#" $FTPCONF|grep -i "userlist_deny=NO"|wc -l; > if $userlist_enable = 1 -a $userlist_deny = 1 && "$FTPUSER" != "" ; > then > if grep -v "#" $FTPUSER|egrep "root$|daemon$|bin$|sys$|adm$|lp$|uucp$|nuucp$|listen$|nobody$|noaccess$|nobody4$"|wc -l = 0 ; > then echo "FTP is running.FTP user config $ftpusers_pam is not recommended.FTP user config "$FTPUSER" is recommended.FTP check result:tr 2 #检查FTP配置-限制FTP用户登录后能访问的目录2.1 判断条件: /etc/vsftpd.conf配置包含chroot_local_user=YES;/etc/pure-ftpd/pure-ftpd.conf包含:ChrootEveryone yesAllowUserFXP noAllowAnonymousFXP no基准值:通用基准值2.2 参考配置操作:加固方案来源于配置规范,仅供参考,实际加固方法由系统集成商、设备原厂和管理员共同确定。步骤 1vsftp修改/etc/vsftpd.conf# vi /etc/vsftpd.conf确保以下行未被注释掉,如果没有该行,请添加:chroot_local_user=YES重启网络服务# rcxinetd restart步骤 2pure-ftp修改/etc/pure-ftpd/pure-ftpd.conf# vi /etc/pure-ftpd/pure-ftpd.conf确保以下行未被注释掉(并且值为以下值),如果没有该行,请添加:ChrootEveryone yesAllowUserFXP noAllowAnonymousFXP no重启ftp服务# /etc/init.d/pure-ftpd restart补充操作说明:etc/vsftpd.conf文件中存在chroot_local_user=YES并且/etc/pure-ftpd/pure-ftpd.conf中存在ChrootEveryone yes、AllowUserFXP no、AllowAnonymousFXP no;或者FTP服务未开启,以上任一条件满足即可 2.3 检查条件 rootlocalhost #bash rootlocalhost # #!/bin/bash rootlocalhost # FTPSTATUS=netstat -antp|grep -i "listen"|grep ":21>"|wc -l rootlocalhost # function Check_vsftpd > > if -f /etc/vsftpd.conf ; > then FTPCONF="/etc/vsftpd.conf"> elif -f /etc/vsftpd/vsftpd.conf ; > then FTPCONF="/etc/vsftpd/vsftpd.conf" > fi; > if "id -u" != 0 && -f "/usr/bin/sudo" ;then > sudo cat $FTPCONF|egrep -v "#|$" > if grep -v "#" $FTPCONF|grep -i "chroot_local_user=YES"|wc -l -eq 1 ; > then echo "vsftpd is running.$FTPCONF is recommended.FTP check result:true." > else echo "vsftpd is running.$FTPCONF is not recommended.FTP check result:false." > fi > else > cat $FTPCONF|egrep -v "#|$" > if grep -v "#" $FTPCONF|grep -i "chroot_local_user=YES"|wc -l -eq 1 ; > then echo "vsftpd is running.$FTPCONF is recommended.FTP check result:true." > else echo "vsftpd is running.$FTPCONF is not recommended.FTP check result:false." > fi > fi; > unset FTPCONF; > rootlocalhost # function Check_pureftpd > > if "id -u" != 0 && -f "/usr/bin/sudo" ;then > sudo cat /etc/pure-ftpd/pure-ftpd.conf|egrep -v "#|$" > ChrootEveryone=sudo cat /etc/pure-ftpd/pure-ftpd.conf|grep -v "#"|grep -i "ChrootEveryone"|grep -i "yes"|wc -l; > AllowUserFXP=sudo cat /etc/pure-ftpd/pure-ftpd.conf|grep -v "#"|grep -i "AllowUserFXP"|grep -i "no"|wc -l; > AllowAnonymousFXP=cat /etc/pure-ftpd/pure-ftpd.conf|grep -v "#"|grep -i "AllowAnonymousFXP"|grep -i "no"|wc -l; > else > cat /etc/pure-ftpd/pure-ftpd.conf|egrep -v "#|$" > ChrootEveryone=cat /etc/pure-ftpd/pure-ftpd.conf|grep -v "#"|grep -i "ChrootEveryone"|grep -i "yes"|wc -l; > AllowUserFXP=cat /etc/pure-ftpd/pure-ftpd.conf|grep -v "#"|grep -i "AllowUserFXP"|grep -i "no"|wc -l; > AllowAnonymousFXP=cat /etc/pure-ftpd/pure-ftpd.conf|grep -v "#"|grep -i "AllowAnonymousFXP"|grep -i "no"|wc -l; > fi > PUREFTPD_NO=$(expr $ChrootEveryone + $AllowUserFXP + $A 3 #检查登录提示-更改ftp警告Banner3.1 判断条件:/etc/vsftpd.conf中有ftpd_banner ,未被注释掉3.2 参考配置操作: 修改vsftp回显信息# vi /etc/vsftpd/vsftpd.conf 找到#ftpd_banner=Welcome to blah FTP service.行,下面添加ftpd_banner=” Authorized users only. All activity may be monitored and reported.”可根据实际需要修改该文件内容。重启服务: 4 #检查FTP配置-设置FTP用户登录后对文件、目录的存取权限4.1 1 判断条件:1.验证方法:登录FTP后上传文件2.预期结果:用户行为受到控制,文件权限符合预期设置。 4.2 参考配置操作:vi /etc/vsftpd/vsftpd.conf 确保以下行未被注释掉,如果没有该行,请添加:write_enable=YES /允许上传。如果不需要上传权限,此项可不进行更改。ls_recurse_enable=YES 需要未被注释local_umask=022 /设置用户上传文件的属性为755anon_umask=022 userlist_deny=YES 上面两行一起添加到尾部 ls_recurse_enable=YES /匿名用户上传文件(包括目录)的 umask 添加 - 加固方案来源于配置规范,仅供参考,实际加固方法由系统集成商、设备原厂和管理员共同确定。如果系统使用vsftp:修改/etc/vsftpd.conf(或者为/etc/vsftpd/vsftpd.conf)# vi /etc/vsftpd.conf确保以下行未被注释掉,如果没有该行,请添加:write_enable=YES /允许上传。如果不需要上传权限,此项可不进行更改。ls_recurse_enable=YESlocal_umask=022 /设置用户上传文件的属性为755anon_umask=022 /匿名用户上传文件(包括目录)的 umask重启网络服务# rcxinetd restart如果系统使用pure-ftp修改/etc/pure-ftpd/pure-ftpd.conf# vi /etc/pure-ftpd/pure-ftpd.conf确保以下行未被注释掉,如果没有该行,请添加:Umask 177:077重启ftp服务#/etc/init.d/pure-ftpd restart补充操作说明:/etc/vsftpd/vsftpd.conf文件中ls_recurse_enable值等于YES,并且local_umask等于022,并且anon_umask值等于022 4.3 检查脚本 rootsmdw #bash rootsmdw # #!/bin/bash rootsmdw # FTPSTATUS=netstat -antp|grep -i "listen"|grep ":21>"|wc -l rootsmdw # function Check_vsftpd > > if -f /etc/vsftpd.conf ; > then FTPCONF="/etc/vsftpd.conf" > elif -f /etc/vsftpd/vsftpd.conf ; > then FTPCONF="/etc/vsftpd/vsftpd.conf" > fi; > echo +vsftpd.conf+ > if "id -u" != 0 && -f "/usr/bin/sudo" ;then > sudo cat $FTPCONF|egrep -v "#|$" > else > cat $FTPCONF|egrep -v "#|$" > fi > echo +vsftpd.conf end+ > if "id -u" != 0 && -f "/usr/bin/sudo" ;then > ls_recurse_enable=sudo cat $FTPCONF|grep -i "ls_recurse_enable=YES"|wc -l; > local_umask=sudo cat $FTPCONF|grep -i "local_umask=022"|wc -l;> anon_umask=sudo cat $FTPCONF|grep -i "anon_umask=022"|wc -l; > else > ls_recurse_enable=cat $FTPCONF|grep -i "ls_recurse_enable=YES"|wc -l; > local_umask=cat $FTPCONF|grep -i "local_umask=022"|wc -l; > anon_umask=cat $FTPCONF|grep -i "anon_umask=022"|wc -l; > fi > VSFTPD_NO=$(expr $ls_recurse_enable + $local_umask + $anon_umask); > if $VSFTPD_NO -eq 3 ; > then echo "vsftpd is running.$FTPCONF is recommended.FTP check result:true." > else echo "vsftpd is running.$FTPCONF is not recommended.FTP check result:false." > fi; > unset FTPCONF VSFTPD_NO ls_recurse_enable local_umask anon_umask; > rootsmdw # function Check_pureftpd > > echo +pure-ftpd.conf+; > if "id -u" != 0 && -f "/usr/bin/sudo" ;then > sudo cat /etc/pure-ftpd/pure-ftpd.conf|egrep -v "#|$" > else > cat /etc/pure-ftpd/pure-ftpd.conf|egrep -v "#|$" > fi > echo +pure-ftpd.conf end+; > if sudo cat /etc/pure-ftpd/pure-ftpd.conf|grep -v "#"|grep -i "Umask"|grep -i "177:077"|wc -l -eq 1 ; > then echo "pure-ftpd is running.pure-ftpd.conf is recommended.FTP check result:true." > else echo "pure-ftpd is running.pure-ftpd.conf is not recommended.FTP chec 5 #检查主机访问控制(IP限制)5.1 判断条件: cat /etc/hosts.allowall:192.168.4.44:allow #允许单个IP访问所有服务进程sshd:192.168.1.:allow #允许192.168.1的整个网段访问SSH服务进程#vi /etc/hosts.denyall:all:DENY存在类似上述配置则符合安全要求,否则低于安全要求。基准值:通用基准值 #vi /etc/hosts.denyall:all:DENY存在类似上述配置则符合安全要求,否则低于安全要求。 cp -p /etc/hosts.allow /etc/hosts.allow_bakcp -p /etc/hosts.deny /etc/hosts.deny_bak vi /etc/hosts.allow all:10.:allow all:172.:allow nfs:10.:allow nfs:172.30.:allow vi /etc/hosts.deny sshd:192.168.0.:DENY - 5.2 参考配置操作:加固方案来源于配置规范,仅供参考,实际加固方法由系统集成商、设备原厂和管理员共同确定。1、执行备份:#cp -p /etc/hosts.allow /etc/hosts.allow_bak#cp -p /etc/hosts.deny /etc/hosts.deny_bak2、编辑/etc/hosts.allow和/etc/hosts.deny两个文件,文件的配置格式为:Service:host or network/netmask,host or network/netmask#vi /etc/hosts.allow增加一行 service: 允许访问的IP,举例如下:all:192.168.4.44:allow #允许单个IP访问所有服务进程sshd:192.168.1.:allow #允许192.168.1的整个网段访问SSH服务进程#vi /etc/hosts.deny增加一行 sshd:all:DENY补充操作说明:/etc/hosts.allow和/etc/hosts.deny两个文件中设定了IP范围 5.3 检查脚本 rootsdw7 #cat /etc/hosts.allow |sed '/#/d'|sed '/$/d'|egrep -iw "sshd|telnet|all"|egrep -v "all:allb" rootsdw7 # cat /etc/hosts.deny |sed '/#/d'|sed '/$/d'|egrep -iw "sshd|telnet|all" rootsdw7 # echo "allowno="egrep -iw "sshd|telnet|all" /etc/hosts.allow|egrep -v "all:allb" |sed '/#/d'|sed '/$/d'|wc -lallowno=0 rootsdw7 # echo "denyno="egrep -iw "sshd|telnet|all" /etc/hosts.deny |sed '/#/d'|sed '/$/d'|wc -l denyno=0 rootsdw7 # 6 #检查是否配置远程日志保存6.1 判断条件:配置日志发送到远程日志服务器,则符合安全要求,否则低于安全要求。 1、执行备份:touch /etc/syslog.conf vi /etc/syslog.conf 加上这一行: mail.* 172.30.0.53 cp -p /etc/rsyslog.conf /etc/rsyslog.conf_bak vi /etc/rsyslog.conf加上这一行:mail.* 172.30.0.53 6.2 参考配置操作:加固方案来源于配置规范,仅供参考,实际加固方法由系统集成商、设备原厂和管理员共同确定。1、执行备份:#cp -p /etc/syslog.conf /etc/syslog.conf_bak2、修改配置:#vi /etc/syslog.conf加上这一行: *.* 192.168.0.1可以将"*.*"替换为你实际需要的日志信息。比如:kern.* / mail.* 等等。192.168.0.1修改为实际的日志服务器。*.*和之间为一个Tab。3、重启syslog服务#/etc/init.d/syslog stop#/etc/init.d/syslog start补充操作说明:/etc/syslog.conf中存在类似 IP或者udp IP 6.3 检查脚本 rootsdw7 #!/bin/bash rootsdw7 # function Check_SYSLOGD > > if -f /etc/syslog.conf ; > then SYSLOGCONF=/etc/syslog.conf; > else SYSLOGCONF=/etc/rsyslog.conf; > fi > cat $SYSLOGCONF |sed '/#/d'|sed '/$/d'|awk '($2!/*/) && ($2!/-/) print $1"t"$2' > rootsdw7 # function Check_SYSLOGNG > > SYSLOGCONF=/etc/syslog-ng/syslog-ng.conf > for FILTER in cat $SYSLOGCONF |grep "log"|grep filter|cut -d; -f2|cut -d( -f2|cut -d) -f1|sort|uniq;do > cat $SYSLOGCONF|grep "filter $FILTER" > done > for DESTINATION in cat $SYSLOGCONF |grep "log"|awk -F; 'print $1"n"$2"n"$3'|grep destination|cut -d( -f2|cut -d) -f1|sort|uniq;do > cat $SYSLOGCONF|grep "destination $DESTINATION " > done > cat $SYSLOGCONF |grep "log" > rootsdw7 # if ps -ef|egrep '(syslogd|syslog-ng)'|grep -v "grep"|wc -l|awk 'print $1' != 0 ; > then if ps -ef|grep -i 'syslog-ng'|grep -v "grep"|wc -l|awk 'print $1' != 0 ; > then Check_SYSLOGNG; > else Check_SYSLOGD; > fi; > else echo "syslog is not running" > fi $ModLoad imuxsock $ModLoad imklog $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure cron.* /var/log/cron uucp,news.crit /var/log/spooler local7.* /var/log/boot.log :programname, startswith, 7 #检查用户缺省UMASK7.1 判断条件:umask值大于等于027则符合安全要求,否则低于安全要求。 cp -p /etc/profile /etc/profile_bak cp -p /etc/csh.login /etc/csh.login_bak cp -p /etc/csh.cshrc /etc/csh.cshrc_bak cp -p /etc/bashrc /etc/bashrc_bak cp -p /root/.bashrc /root/.bashrc_bak cp -p /root/.cshrc /root/.cshrc_bak #vi /etc/profile #vi /etc/csh.login #vi /etc/csh.cshrc #vi /etc/bashrc #vi /root/.bashrc #vi /root/.cshrc 7.2 参考配置操作:加固方案来源于配置规范,仅供参考,实际加固方法由系统集成商、设备原厂和管理员共同确定。1、执行备份:#cp -p /etc/profile /etc/profile_bak#cp -p /etc/csh.login /etc/csh.login_bak#cp -p /etc/csh.cshrc /etc/csh.cshrc_bak#cp -p /etc/bashrc /etc/bashrc_bak#cp -p /root/.bashrc /root/.bashrc_bak#cp -p /root/.cshrc /root/.cshrc_bak2、修改umask设置:#vi /etc/profile#vi /etc/csh.login#vi /etc/csh.cshrc#vi /etc/bashrc#vi /root/.bashrc#vi /root/.cshrc将umask值修改为027,保存退出。补充操作说明:umask设置不当可能导致某些应用无法正确自动创建目录或文件,从而运行异常。/etc/profile文件中umask值大于等于027 7.3 检查脚本: rootsdw1 #cat /etc/profile|sed '/#/d'|sed '/$/d'|grep -i "umask" umask 002 umask 022 umask 027 rootsdw1 # 8 #检查登录提示是否设置ssh警告Banner8.1 判断条件:对应的/etc/sshbanner文件中配置警告标示基准值:通用基准值 touch /etc/sshbanner chown bin:bin /etc/sshbanner chmod 644 /etc/sshbanner echo " Authorized users only. All activity may be monitored and reported " >/etc/sshbanner #vi /etc/ssh/sshd_config 增加行 Banner /etc/sshbanner #service sshd restart 8.2 参考配置操作:加固方案来源于配置规范,仅供参考,实际加固方法由系统集成商、设备原厂和管理员共同确定。步骤 1执行如下命令创建ssh banner信息文件:#touch /etc/sshbanner#chown bin:bin /etc/sshbanner#chmod 644 /etc/ss