Linux 服务器安全加固(等保 2.0 标准) | 您所在的位置:网站首页 › 加固存储服务器 › Linux 服务器安全加固(等保 2.0 标准) |
Linux 服务器安全加固(等保 2.0 标准)
2020年11月11日 原创 Linux
浏览 286 评论 0
Linux 服务器安全加固(等保 2.0 标准) 身份鉴别 配置账户密码策略 参考配置操作: 1、 1234567 # vim /etc/login.defs修改下列参数为建议值PASS_MAX_DAYS 30 #密码有效期为30天PASS_MIN_DAYS 1 #密码最短修改时间为1天PASS_MIN_LEN 8 #密码最小长度为8位PASS_WARN_AGE 7 #密码过期提前7天提示修改 2、 1234 # vim /etc/pam.d/system-authpassword requisite pam_cracklib.so行替换成如下:password requisite pam_cracklib.so retry=6 difok=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 参数说明 retry 尝试次数 difok 最少不同字符 minlen 最小密码长度 ucredit 最少大写字母 lcredit 最少小写字母 dcredit 最少数字 ocredit 最少特殊符号3、口令至少5次内不能重复 123 # vim /etc/pam.d/system-authpassword sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5 配置登录失败处理策略参考配置操作: 1、限制本地登录次数 1234 # vim /etc/pam.d/login在第二行增加如下内容:auth required pam_tally2.so deny=3 unlock_time=1800 even_deny_root root_unlock_time=1800 2、限制ssh本地登录次数 1234 # vim /etc/pam.d/sshd在第二行增加如下内容:auth required pam_tally2.so deny=3 unlock_time=1800 even_deny_root root_unlock_time=1800 3、查看用户登录失败的次数(以root为例) 1 # pam_tally2 --user root4、解锁指定用户(以root为例) 1 # pam_tally2 -r -u root5、上述参数解释 参数说明 even_deny_root 也限制root用户 deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户 unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒 root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒注1:必须在 #%PAM-1.0 的下面,即第二行,添加内容,一定要写在前面。如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的。 注2:此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。 双因子身份认证未整改状态: 当前管理员仅使用用户名+密码方式对服务器进行管理,未使用两种及两种以上组合鉴别方式对管理员身份进行鉴别。 参考配置操作: 建议在系统中配置堡垒机、USB Key、动态口令等,使用两种鉴别技术对系统管理员进行身份鉴别。 访问控制 修改UMASK值参考配置操作: 1、编辑/etc/profile文件,设置umask值: 123 # vim /etc/profile在末尾增加 umask 027。 2、补充操作说明 如果用户需要使用一个不同于默认全局系统设置的 umask,可以在需要的时候通过命令行设置,或者在用户的 shell 启动文件中配置。 3、补充说明 umask 的默认设置一般为 022,这给新创建的文件默认权限755( 777-022=755),这会给文件所有者读、写权限,但只给组成员和其他用户读权限。 umask 的计算:umask 是使用八进制数据代码设置的,对于目录,该值等于八进制数据代码 777 减去需要的默认权限对应的八进制数据代码值;对于文件,该值等于八进制数据代码 666 减去需要的默认权限对应的八进制数据代码值。 设置关键目录的权限参考配置操作: 1、对系统中重要文件配置权限: 1 # chmod 600 /etc/security 为不同的管理员分配不同的账号参考配置操作: 为用户创建账号: 12 # useradd username #创建账号# passwd username #设置密码修改文件权限: 12 # chmod 755 directory//其中 755 为设置的权限,可根据实际情况设置相应的权限, directory 是要更改权限的目录)使用该命令为不同的用户分配不同的账号,设置不同的口令及权限信息等。更改文件或目录的所有者和组群所有者: 12 # chown [选项] [用户:组群] [文件|目录] //例如,#chown username:groupname directory,其中username为文件所有者,groupname为组群所有者,directory为文件或目录。 锁定系统无用账户参考配置操作: 通过cat /etc/shadow查看当前帐户列表,以下用户lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody密码字段列不是以*或者!!开头的,需要禁用或删除 命令:passwd -l username 注解:禁用无关帐户 开启 SELinux参考配置操作: 1、开启配置文件 1234 #vi etc/selinux/config修改下列参数为建议值:SELINUX=enforcing 2、重启操作系统,或使用命令 setenforce 1 在不重启的情况下临时开启。 3、执行命令 /usr/sbin/sestatus -v 或 getenforce 查看 selinux 运行状态。 注:配置后可能导致系统异常,建议在测试环境中进行验证后再对生产环境进行加固,并在加固前进行完善的系统备份工作。 安全审计 配置日志审计功能未整改状态: 系统未配置audit功能,没有使用aureport生成审计报告可以生成分析报表。 参考配置操作: 1、安装audit软件包 1 yum install audit2、开始audit 服务 1 service auditd start3、根据实际情况,在 /etc/audit/auditd.conf 文件中配置对audit审计工具进行配置。 4、根据实际情况,在 /etc/audit/audit.rules 文件中配置审核规则。 记录设备相关安全事件参考配置操作 1、修改配置文件 12345 # vim /etc/syslog.conf,配置如下类似语句:*.err;kern.debug;daemon.notice; /var/adm/messages定义为需要保存的设备相关安全事件。 2、更改日所有志文件属性,使文件只可追加不可修改: 1234 # chattr +a /var/log/messages #如果不存在则忽略# chattr +a /var/log/secure# chattr +a -/var/log/maillog# chattr +a /var/log/cron3、参数含义: 参数说明 kern 由kernel产生的信息; user 由用户进程产生的信息。对那些由程序或不在此列出的工具产生的信息,其缺省类型都是“user”; mail 邮件系统产生的信息; daemon 系统守护进程的信息,如in.ftpd、telnetd; auth 由login, su, getty等进行身份认证时产生的信息; syslog 由syslogd自己内部产生的信息; lpr 行打印spooling系统的信息; news USENET 网络新闻系统的信息; uucp UUCP系统信息; cron cron和at工具信息; local0-7 保留为local使用; mark syslogd内部产生的时间戳信息; * 除mark之外的所有其它类型(此符号不可用以代表所有级别)。保留字段中的“级别”代表信息的重要性,可以是: 参数说明 emerg 紧急,处于Panic状态。通常应广播到所有用户; alert 告警,当前状态必须立即进行纠正。例如,系统数据库崩溃; crit 关键状态的警告。例如,硬件故障; err 其它错误; warning 警告; notice 注意;非错误状态的报告,但应特别处理; info 通报信息; debug 调试程序时的信息; none 通常调试程序时用,指示带有none级别的类型产生的信息无需送出。如*.debug;mail.none表示调试时除邮件信息外其它信息都送出。 配置日志审计系统建议在网络上部署日志审计系统,采集用户网络中各种不同厂商的安全设备、网络设备、主机、操作系统、以及各种应用系统产生的海量日志信息,并将这些信息汇集到审计中心,进行集中化存储、备份、查询、审计、告警、响应,并出具丰富的审计报表。 1、 1234 # vim /etc/rsyslog.conf*.info;mail.none;authpriv.none;cron.none /var/log/messages将上一行中的/var/log/messages修改为: @ 2、重新读取配置文件:service rsyslog reload 部署网络/数据库安全审计系统在网络中部署网络/数据库安全审计系统,通过对人员访问系统的行为进行解析、分析、记录、汇报,以帮助用户事前规划预防、事中实时监视、违规行为响应、事后合规报告、事故追踪溯源,加强内外部网络行为监管、促进核心资产(数据库、服务器、网络设备等)的正常运营。 入侵防范 配置防火墙参考配置操作: 1、启动 iptables: 1 # service iptables start2、开放端口(根据实际业务需求进行配置): 1234 # vim /etc/sysconfig/iptables在其中写入配置,例如增加如下一行:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 3、重启防火墙: 1 # service iptables restart4、检查防火墙策略: 1 #iptables -nvL 部署入侵检测系统(IDS)准确分析、报告网络中正在发生的各种异常事件和攻击行为,实现对网络的“全面检测”,并通过实时的报警信息和多种格式报表,为用户提供翔实、可操作的安全建议,帮助用户完善安全保障措施。 部署漏洞扫描系统实现对网络设备、操作系统、应用系统进行全面安全漏洞检测,清晰定性安全风险,给出修复建议和预防措施,及时的发现和修补漏洞隐患。 关闭无用服务未整改状态: 系统中服务开启均为系统安装时默认状态。 参考配置操作: 取消所有不需要的服务,编辑 /etc/inetd.conf 文件,通过注释取消所有你不需要的服务。 1、更改 /etc/inetd.conf 权限为 600,只允许 root 来读写该文件。 1 # chmod 600 /etc/inetd.conf2、确定 /etc/inetd.conf 文件所有者为 root。 1 # chown root /etc/inetd.conf3、编辑 /etc/inetd.conf 文件,取消不需要的服务,如:ftp, telnet, shell, login, exec, talk, ntalk,imap, pop-2, pop-3, finger, auth 等等。把不需要的服务关闭可以使系统的危险性降低很多。 4、给 inetd 进程发送一个 HUP 信号: 1 # killall -HUP inetd5、把 /etc/inetd.conf 文件设为不可修改。 1 # chattr +i /etc/inetd.conf注:/etc/inetd.conf 文件中只开放需要的服务。对于启用的网络服务,使用 TCP Wrapper 增强访问控制和日志审计功能。建议使用 xinetd 代替 inetd,前者在访问控制和日志审计方面有较大的增强。这样可以防止对inetd.conf的任何修改(以外或其他原因)。唯一可以取消这个属性的只有root。如果要修改inetd.conf文件,首先要取消不可修改属性:# chattr -i /etc/inetd.confportmap(如果启动使用 nfs 等需要 rpc 的服务,建议关闭portmap 服务)cups 服务( Common Unix Printing Service,用于打印,建议关闭)named 服务(除非主机是 dns 服务器,否则关闭 named 服务)apache( http)服务xfs( X Font Service)服务vsftpdlpdlinuxconfidentdsmb 系统补丁更新建议定期对系统进行补丁更新,建立内网补丁服务器或由管理员手工将补丁安装到操作系统中。 注:补丁安装应当先在测试机上完成。补丁安装可能导致系统或某些服务无法工作正常。在下载补丁包时,一定要对签名进行核实,防止系统感染病毒。 恶意代码防范 安装杀毒软件未整改状态: 当前系统未安装杀毒软件,无法防止病毒对内部网络进行感染。 参考配置操作: 在服务器和终端设备上安装网络版杀毒软件,配置防病毒服务器,实现下发病毒扫描策略、更新病毒库、统计报警信息等,便于管理人员对整个网络中的病毒防护状况进行管理。 资源控制 设置访问控制列表未整改状态: 系统未设置访问控制列表。 参考配置操作: 1、编辑 hosts.deny 文件,加入 (ALL:ALL): 123 #vi /etc/hosts.denysshd: ALL #拒绝一切SSH远程访问,配合文件hosts.allow使用 2、编辑 hosts.allow 文件,加入允许访问的主机列表,比如: 123 #vi /etc/hosts.allowsshd:192.168.59.1:allow #允许192.168.59.1访问SSH服务进程 设置登录超时时间未整改状态: 系统未设置超时时间。系统中 root 账户是具有最高特权的,如果系统管理员在离开系统之前忘记注销 root 账户,那将会带来很大的安全隐患,应该让系统自动注销。 参考配置操作: 通过修改账户中 TMOUT 参数,可以实现此功能。编辑 /etc/profile 文件,在 HISTFILESIZE= 后面加入TMOUT值: 123456 # vim /etc/profileTMOUT=180 #表示 180 秒export TMOUT #设置为全局变量 # source /etc/profile #使配置生效 这样,如果系统中登录的用户在 3 分钟内都没有动作,那么系统会自动注销这个账户。 限制用户对资源的访问参考配置操作: 1、编辑 /etc/security/limits.conf 文件,根据实际使用情况配置参数,限制用户对系统资源的使用限度。 参数说明 core 限制内核文件的大小 date 最大数据大小 fsize 最大文件大小 memlock 最大锁定内存地址空间 nofile 打开文件的最大数目 rss 最大持久设置大小 stack 最大栈大小 cpu 以分钟为单位的最多 CPU 时间 noproc 进程的最大数目 as 地址空间限制 maxlogins 此用户允许登录的最大数目2、编辑 /etc/pam.d/login 文件,在其末端添加如下语句 1 session required /lib/security/pam_limits.so3、编辑 /etc/security/limits.conf 文件,在其中添加如下语句 12345 * hard rss sizeofmem* hard nproc maxNumberOfProcesses* hard as sizeofvirtualmem#其中sizeofmem和sizeofvirtualmem为数值,其单位为KB;maxNumberOfProcesses也为数值,其单位为个 4、重启服务 1 /etc/init.d/sshd restart 监控服务器资源状态配置资源监控系统,对服务器的 cpu、内存等资源进行实时监控,且应具有报警功能。管理员可以及时了解网络上各种设备的运行状况,可以及时发现并处理设备资源使用率过高、服务器宕机等异常状况。
博文最后更新时间: 2020年11月11日下午2点50分 |
CopyRight 2018-2019 实验室设备网 版权所有 |