推诿扯皮 發表於 2021-4-12 09:22:00

Linux 服务器安全加固(等保 2.0 标准)

<div class="article-entry-header">
<h3 class="article-entry-title">Linux 服务器安全加固(等保 2.0 标准)</h3>
</div>
<div class="article-entry-info">
<div class="base-info"><span class="label label-default"><span data-timestamp="2020-11-11T00:00:00Z" data-format="format('LL')" data-refresh="0">2020年11月11日&nbsp;&nbsp;<span class="label label-warning">原创&nbsp;&nbsp;&nbsp;<span class="label label-info">Linux</span></span></span></span></div>
<div class="main-info"><span class="label label-primary">浏览 286&nbsp;<span class="label label-success">评论 0</span></span></div>
</div>
<div class="article-entry-sum">
<p>Linux 服务器安全加固(等保 2.0 标准)</p>
</div>
<hr>
<div>
<p>&nbsp;</p>
<h2 id="身份鉴别">身份鉴别</h2>
<h3 id="配置账户密码策略">配置账户密码策略</h3>
<p><strong>参考配置操作:</strong></p>
<p>1、</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4<br><span class="line">5<br><span class="line">6<br><span class="line">7</span></span></span></span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># vim /etc/login.defs<br><br><span class="line">修改下列参数为建议值<br><span class="line">PASS_MAX_DAYS 30    #密码有效期为30天<br><span class="line">PASS_MIN_DAYS 1   #密码最短修改时间为1天<br><span class="line">PASS_MIN_LEN 8      #密码最小长度为8位<br><span class="line">PASS_WARN_AGE 7   #密码过期提前7天提示修改</span></span></span></span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>2、</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4</span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># vim /etc/pam.d/system-auth<br><br><span class="line">password requisite pam_cracklib.so行替换成如下:<br><span class="line">passwordrequisite pam_cracklib.so retry=6difok=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1</span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="table-container">
<table>
<thead>
<tr><th>参数</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td>retry</td>
<td>尝试次数</td>
</tr>
<tr>
<td>difok</td>
<td>最少不同字符</td>
</tr>
<tr>
<td>minlen</td>
<td>最小密码长度</td>
</tr>
<tr>
<td>ucredit</td>
<td>最少大写字母</td>
</tr>
<tr>
<td>lcredit</td>
<td>最少小写字母</td>
</tr>
<tr>
<td>dcredit</td>
<td>最少数字</td>
</tr>
<tr>
<td>ocredit</td>
<td>最少特殊符号</td>
</tr>
</tbody>
</table>
</div>
<p>3、口令至少5次内不能重复</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3</span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># vim /etc/pam.d/system-auth<br><br><span class="line">password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5</span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3 id="配置登录失败处理策略">配置登录失败处理策略</h3>
<p><strong>参考配置操作:</strong></p>
<p>1、限制本地登录次数</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4</span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># vim /etc/pam.d/login<br><br><span class="line">在第二行增加如下内容:<br><span class="line">authrequiredpam_tally2.sodeny=3unlock_time=1800 even_deny_root root_unlock_time=1800</span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>2、限制ssh本地登录次数</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4</span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># vim /etc/pam.d/sshd<br><br><span class="line">在第二行增加如下内容:<br><span class="line">authrequiredpam_tally2.sodeny=3unlock_time=1800 even_deny_root root_unlock_time=1800</span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>3、查看用户登录失败的次数(以root为例)</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line"># pam_tally2 --user root</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>4、解锁指定用户(以root为例)</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line"># pam_tally2 -r -u root</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>5、上述参数解释</p>
<div class="table-container">
<table>
<thead>
<tr><th>参数</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td>even_deny_root</td>
<td>也限制root用户</td>
</tr>
<tr>
<td>deny</td>
<td>设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户</td>
</tr>
<tr>
<td>unlock_time</td>
<td>设定普通用户锁定后,多少时间后解锁,单位是秒</td>
</tr>
<tr>
<td>root_unlock_time</td>
<td>设定root用户锁定后,多少时间后解锁,单位是秒</td>
</tr>
</tbody>
</table>
</div>
<blockquote>
<p><strong>注1:</strong>必须在&nbsp;<code>#%PAM-1.0</code>&nbsp;的下面,即第二行,添加内容,一定要写在前面。如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的。</p>
</blockquote>
<blockquote>
<p><strong>注2:</strong>此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。</p>
</blockquote>
<h3 id="双因子身份认证">双因子身份认证</h3>
<p><strong>未整改状态:</strong></p>
<p>当前管理员仅使用用户名+密码方式对服务器进行管理,未使用两种及两种以上组合鉴别方式对管理员身份进行鉴别。</p>
<p><strong>参考配置操作:</strong></p>
<p>建议在系统中配置堡垒机、USB Key、动态口令等,使用两种鉴别技术对系统管理员进行身份鉴别。</p>
<h2 id="访问控制">访问控制</h2>
<h3 id="修改UMASK值">修改UMASK值</h3>
<p><strong>参考配置操作:</strong></p>
<p>1、编辑/etc/profile文件,设置umask值:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3</span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># vim /etc/profile<br><br><span class="line">在末尾增加 umask 027。</span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>2、补充操作说明</p>
<p>如果用户需要使用一个不同于默认全局系统设置的 umask,可以在需要的时候通过命令行设置,或者在用户的 shell 启动文件中配置。</p>
<p>3、补充说明</p>
<p>umask 的默认设置一般为 022,这给新创建的文件默认权限755( 777-022=755),这会给文件所有者读、写权限,但只给组成员和其他用户读权限。</p>
<blockquote>
<p>umask 的计算:<br>umask 是使用八进制数据代码设置的,对于目录,该值等于八进制数据代码 777 减去需要的默认权限对应的八进制数据代码值;对于文件,该值等于八进制数据代码 666 减去需要的默认权限对应的八进制数据代码值。</p>

</blockquote>
<h3 id="设置关键目录的权限">设置关键目录的权限</h3>
<p><strong>参考配置操作:</strong></p>
<p>1、对系统中重要文件配置权限:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line"># chmod 600 /etc/security</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3 id="为不同的管理员分配不同的账号">为不同的管理员分配不同的账号</h3>
<p><strong>参考配置操作:</strong></p>
<p>为用户创建账号:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2</span></span></pre>
</td>
<td class="code">
<pre><span class="line"># useradd username #创建账号<br><span class="line"># passwd username #设置密码</span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>修改文件权限:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2</span></span></pre>
</td>
<td class="code">
<pre><span class="line"># chmod 755 directory<br><span class="line">//其中 755 为设置的权限,可根据实际情况设置相应的权限, directory 是要更改权限的目录)使用该命令为不同的用户分配不同的账号,设置不同的口令及权限信息等。</span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>更改文件或目录的所有者和组群所有者:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2</span></span></pre>
</td>
<td class="code">
<pre><span class="line"># chown [选项] [用户:组群] [文件|目录] <br><span class="line">//例如,#chown username:groupname directory,其中username为文件所有者,groupname为组群所有者,directory为文件或目录。</span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3 id="锁定系统无用账户">锁定系统无用账户</h3>
<p><strong>参考配置操作:</strong></p>
<p>通过<code>cat /etc/shadow</code>查看当前帐户列表,以下用户<code>lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody</code>密码字段列不是以<code>*</code>或者<code>!!</code>开头的,需要禁用或删除</p>
<p>命令:<code>passwd -l username</code></p>
<blockquote>
<p><strong>注解:</strong>禁用无关帐户</p>
</blockquote>
<h3 id="开启-SELinux">开启 SELinux</h3>
<p><strong>参考配置操作:</strong></p>
<p>1、开启配置文件</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4</span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line">#vi etc/selinux/config<br><br><span class="line">修改下列参数为建议值:<br><span class="line">SELINUX=enforcing</span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>2、重启操作系统,或使用命令&nbsp;<code>setenforce 1</code>&nbsp;在不重启的情况下临时开启。</p>
<p>3、执行命令&nbsp;<code>/usr/sbin/sestatus -v</code>&nbsp;或&nbsp;<code>getenforce</code>&nbsp;查看 selinux 运行状态。</p>
<blockquote>
<p><strong>注:</strong>配置后可能导致系统异常,建议在测试环境中进行验证后再对生产环境进行加固,并在加固前进行完善的系统备份工作。</p>
</blockquote>
<h2 id="安全审计">安全审计</h2>
<h3 id="配置日志审计功能">配置日志审计功能</h3>
<p><strong>未整改状态:</strong></p>
<p>系统未配置audit功能,没有使用aureport生成审计报告可以生成分析报表。</p>
<p><strong>参考配置操作:</strong></p>
<p>1、安装audit软件包</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line">yum install audit</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>2、开始audit 服务</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line">service auditd start</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>3、根据实际情况,在&nbsp;<code>/etc/audit/auditd.conf</code>&nbsp;文件中配置对audit审计工具进行配置。</p>
<p>4、根据实际情况,在&nbsp;<code>/etc/audit/audit.rules</code>&nbsp;文件中配置审核规则。</p>
<h3 id="记录设备相关安全事件">记录设备相关安全事件</h3>
<p><strong>参考配置操作</strong></p>
<p>1、修改配置文件</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4<br><span class="line">5</span></span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># vim /etc/syslog.conf,<br><br><span class="line">配置如下类似语句:<br><span class="line">*.err;kern.debug;daemon.notice;/var/adm/messages<br><span class="line">定义为需要保存的设备相关安全事件。</span></span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>2、更改日所有志文件属性,使文件只可追加不可修改:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4</span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># chattr +a /var/log/messages       #如果不存在则忽略<br><span class="line"># chattr +a /var/log/secure<br><span class="line"># chattr +a-/var/log/maillog<br><span class="line"># chattr +a/var/log/cron</span></span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>3、参数含义:</p>
<div class="table-container">
<table>
<thead>
<tr><th>参数</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td>kern</td>
<td>由kernel产生的信息;</td>
</tr>
<tr>
<td>user</td>
<td>由用户进程产生的信息。对那些由程序或不在此列出的工具产生的信息,其缺省类型都是“user”;</td>
</tr>
<tr>
<td>mail</td>
<td>邮件系统产生的信息;</td>
</tr>
<tr>
<td>daemon</td>
<td>系统守护进程的信息,如in.ftpd、telnetd;</td>
</tr>
<tr>
<td>auth</td>
<td>由login, su, getty等进行身份认证时产生的信息;</td>
</tr>
<tr>
<td>syslog</td>
<td>由syslogd自己内部产生的信息;</td>
</tr>
<tr>
<td>lpr</td>
<td>行打印spooling系统的信息;</td>
</tr>
<tr>
<td>news</td>
<td>USENET 网络新闻系统的信息;</td>
</tr>
<tr>
<td>uucp</td>
<td>UUCP系统信息;</td>
</tr>
<tr>
<td>cron</td>
<td>cron和at工具信息;</td>
</tr>
<tr>
<td>local0-7</td>
<td>保留为local使用;</td>
</tr>
<tr>
<td>mark</td>
<td>syslogd内部产生的时间戳信息;</td>
</tr>
<tr>
<td>*</td>
<td>除mark之外的所有其它类型(此符号不可用以代表所有级别)。</td>
</tr>
</tbody>
</table>
</div>
<p>保留字段中的“级别”代表信息的重要性,可以是:</p>
<div class="table-container">
<table>
<thead>
<tr><th>参数</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td>emerg</td>
<td>紧急,处于Panic状态。通常应广播到所有用户;</td>
</tr>
<tr>
<td>alert</td>
<td>告警,当前状态必须立即进行纠正。例如,系统数据库崩溃;</td>
</tr>
<tr>
<td>crit</td>
<td>关键状态的警告。例如,硬件故障;</td>
</tr>
<tr>
<td>err</td>
<td>其它错误;</td>
</tr>
<tr>
<td>warning</td>
<td>警告;</td>
</tr>
<tr>
<td>notice</td>
<td>注意;非错误状态的报告,但应特别处理;</td>
</tr>
<tr>
<td>info</td>
<td>通报信息;</td>
</tr>
<tr>
<td>debug</td>
<td>调试程序时的信息;</td>
</tr>
<tr>
<td>none</td>
<td>通常调试程序时用,指示带有none级别的类型产生的信息无需送出。如*.debug;mail.none表示调试时除邮件信息外其它信息都送出。</td>
</tr>
</tbody>
</table>
</div>
<h3 id="配置日志审计系统">配置日志审计系统</h3>
<p>建议在网络上部署日志审计系统,采集用户网络中各种不同厂商的安全设备、网络设备、主机、操作系统、以及各种应用系统产生的海量日志信息,并将这些信息汇集到审计中心,进行集中化存储、备份、查询、审计、告警、响应,并出具丰富的审计报表。</p>
<p>1、</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4</span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># vim /etc/rsyslog.conf<br><br><span class="line">*.info;mail.none;authpriv.none;cron.none       /var/log/messages<br><span class="line">将上一行中的/var/log/messages修改为: @&lt;日志服务器IP&gt;</span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>2、重新读取配置文件:<code>service rsyslog reload</code></p>
<h3 id="部署网络-数据库安全审计系统">部署网络/数据库安全审计系统</h3>
<p>在网络中部署网络/数据库安全审计系统,通过对人员访问系统的行为进行解析、分析、记录、汇报,以帮助用户事前规划预防、事中实时监视、违规行为响应、事后合规报告、事故追踪溯源,加强内外部网络行为监管、促进核心资产(数据库、服务器、网络设备等)的正常运营。</p>
<h2 id="入侵防范">入侵防范</h2>
<h3 id="配置防火墙">配置防火墙</h3>
<p><strong>参考配置操作:</strong></p>
<p>1、启动 iptables:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line"># service iptables start</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>2、开放端口(根据实际业务需求进行配置):</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4</span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># vim /etc/sysconfig/iptables <br><br><span class="line">在其中写入配置,例如增加如下一行:<br><span class="line">-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT</span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>3、重启防火墙:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line"># service iptables restart</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>4、检查防火墙策略:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line">#iptables -nvL</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3 id="部署入侵检测系统-IDS">部署入侵检测系统(IDS)</h3>
<p>准确分析、报告网络中正在发生的各种异常事件和攻击行为,实现对网络的“全面检测”,并通过实时的报警信息和多种格式报表,为用户提供翔实、可操作的安全建议,帮助用户完善安全保障措施。</p>
<h3 id="部署漏洞扫描系统">部署漏洞扫描系统</h3>
<p>实现对网络设备、操作系统、应用系统进行全面安全漏洞检测,清晰定性安全风险,给出修复建议和预防措施,及时的发现和修补漏洞隐患。</p>
<h3 id="关闭无用服务">关闭无用服务</h3>
<p><strong>未整改状态:</strong></p>
<p>系统中服务开启均为系统安装时默认状态。</p>
<p><strong>参考配置操作:</strong></p>
<p>取消所有不需要的服务,编辑&nbsp;<code>/etc/inetd.conf</code>&nbsp;文件,通过注释取消所有你不需要的服务。</p>
<p>1、更改&nbsp;<code>/etc/inetd.conf</code>&nbsp;权限为 600,只允许 root 来读写该文件。</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line"># chmod 600 /etc/inetd.conf</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>2、确定&nbsp;<code>/etc/inetd.conf</code>&nbsp;文件所有者为 root。</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line"># chown root /etc/inetd.conf</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>3、编辑&nbsp;<code>/etc/inetd.conf</code>&nbsp;文件,取消不需要的服务,如:ftp, telnet, shell, login, exec, talk, ntalk,imap, pop-2, pop-3, finger, auth 等等。把不需要的服务关闭可以使系统的危险性降低很多。</p>
<p>4、给 inetd 进程发送一个 HUP 信号:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line"># killall -HUP inetd</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>5、把&nbsp;<code>/etc/inetd.conf</code>&nbsp;文件设为不可修改。</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line"># chattr +i /etc/inetd.conf</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<blockquote>
<p><strong>注:</strong><br>/etc/inetd.conf 文件中只开放需要的服务。<br>对于启用的网络服务,使用 TCP Wrapper 增强访问控制和日志审计功能。<br>建议使用 xinetd 代替 inetd,前者在访问控制和日志审计方面有较大的增强。这样可以防止对inetd.conf的任何修改(以外或其他原因)。唯一可以取消这个属性的只有root。<br>如果要修改inetd.conf文件,首先要取消不可修改属性:<code># chattr -i /etc/inetd.conf</code><br>portmap(如果启动使用 nfs 等需要 rpc 的服务,建议关闭portmap 服务)<br>cups 服务( Common Unix Printing Service,用于打印,建议关闭)<br>named 服务(除非主机是 dns 服务器,否则关闭 named 服务)<br>apache( http)服务<br>xfs( X Font Service)服务<br>vsftpd<br>lpd<br>linuxconf<br>identd<br>smb</p>

</blockquote>
<h3 id="系统补丁更新">系统补丁更新</h3>
<p>建议定期对系统进行补丁更新,建立内网补丁服务器或由管理员手工将补丁安装到操作系统中。</p>
<blockquote>
<p>注:补丁安装应当先在测试机上完成。补丁安装可能导致系统或某些服务无法工作正常。在下载补丁包时,一定要对签名进行核实,防止系统感染病毒。</p>

</blockquote>
<h2 id="恶意代码防范">恶意代码防范</h2>
<h3 id="安装杀毒软件">安装杀毒软件</h3>
<p><strong>未整改状态:</strong></p>
<p>当前系统未安装杀毒软件,无法防止病毒对内部网络进行感染。</p>
<p><strong>参考配置操作:</strong></p>
<p>在服务器和终端设备上安装网络版杀毒软件,配置防病毒服务器,实现下发病毒扫描策略、更新病毒库、统计报警信息等,便于管理人员对整个网络中的病毒防护状况进行管理。</p>
<h2 id="资源控制">资源控制</h2>
<h3 id="设置访问控制列表">设置访问控制列表</h3>
<p><strong>未整改状态:</strong></p>
<p>系统未设置访问控制列表。</p>
<p><strong>参考配置操作:</strong></p>
<p>1、编辑&nbsp;<code>hosts.deny</code>&nbsp;文件,加入&nbsp;<code>(ALL:ALL)</code>:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3</span></span></span></pre>
</td>
<td class="code">
<pre><span class="line">#vi /etc/hosts.deny<br><br><span class="line">sshd: ALL    #拒绝一切SSH远程访问,配合文件hosts.allow使用</span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>2、编辑&nbsp;<code>hosts.allow</code>&nbsp;文件,加入允许访问的主机列表,比如:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3</span></span></span></pre>
</td>
<td class="code">
<pre><span class="line">#vi /etc/hosts.allow<br><br><span class="line">sshd:192.168.59.1:allow    #允许192.168.59.1访问SSH服务进程</span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3 id="设置登录超时时间">设置登录超时时间</h3>
<p><strong>未整改状态:</strong></p>
<p>系统未设置超时时间。系统中 root 账户是具有最高特权的,如果系统管理员在离开系统之前忘记注销 root 账户,那将会带来很大的安全隐患,应该让系统自动注销。</p>
<p><strong>参考配置操作:</strong></p>
<p>通过修改账户中&nbsp;<code>TMOUT</code>&nbsp;参数,可以实现此功能。编辑&nbsp;<code>/etc/profile</code>&nbsp;文件,在&nbsp;<code>HISTFILESIZE=</code>&nbsp;后面加入TMOUT值:</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4<br><span class="line">5<br><span class="line">6</span></span></span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line"># vim /etc/profile<br><br><span class="line">TMOUT=180         #表示 180 秒<br><span class="line">export TMOUT          #设置为全局变量<br><br><span class="line"># source /etc/profile#使配置生效</span></span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>这样,如果系统中登录的用户在 3 分钟内都没有动作,那么系统会自动注销这个账户。</p>
<h3 id="限制用户对资源的访问">限制用户对资源的访问</h3>
<p><strong>参考配置操作:</strong></p>
<p>1、编辑&nbsp;<code>/etc/security/limits.conf</code>&nbsp;文件,根据实际使用情况配置参数,限制用户对系统资源的使用限度。</p>
<div class="table-container">
<table>
<thead>
<tr><th>参数</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td>core</td>
<td>限制内核文件的大小</td>
</tr>
<tr>
<td>date</td>
<td>最大数据大小</td>
</tr>
<tr>
<td>fsize</td>
<td>最大文件大小</td>
</tr>
<tr>
<td>memlock</td>
<td>最大锁定内存地址空间</td>
</tr>
<tr>
<td>nofile</td>
<td>打开文件的最大数目</td>
</tr>
<tr>
<td>rss</td>
<td>最大持久设置大小</td>
</tr>
<tr>
<td>stack</td>
<td>最大栈大小</td>
</tr>
<tr>
<td>cpu</td>
<td>以分钟为单位的最多 CPU 时间</td>
</tr>
<tr>
<td>noproc</td>
<td>进程的最大数目</td>
</tr>
<tr>
<td>as</td>
<td>地址空间限制</td>
</tr>
<tr>
<td>maxlogins</td>
<td>此用户允许登录的最大数目</td>
</tr>
</tbody>
</table>
</div>
<p>2、编辑&nbsp;<code>/etc/pam.d/login</code>&nbsp;文件,在其末端添加如下语句</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line">session required /lib/security/pam_limits.so</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>3、编辑&nbsp;<code>/etc/security/limits.conf</code>&nbsp;文件,在其中添加如下语句</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1<br><span class="line">2<br><span class="line">3<br><span class="line">4<br><span class="line">5</span></span></span></span></span></pre>
</td>
<td class="code">
<pre><span class="line">* hard rss sizeofmem<br><span class="line">* hard nproc maxNumberOfProcesses<br><span class="line">* hard as sizeofvirtualmem<br><br><span class="line">#其中sizeofmem和sizeofvirtualmem为数值,其单位为KB;maxNumberOfProcesses也为数值,其单位为个</span></span></span></span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>4、重启服务</p>
<div class="table-container">
<table>
<tbody>
<tr>
<td class="gutter">
<pre><span class="line">1</span></pre>
</td>
<td class="code">
<pre><span class="line">/etc/init.d/sshd restart</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3 id="监控服务器资源状态">监控服务器资源状态</h3>
<p>配置资源监控系统,对服务器的 cpu、内存等资源进行实时监控,且应具有报警功能。管理员可以及时了解网络上各种设备的运行状况,可以及时发现并处理设备资源使用率过高、服务器宕机等异常状况。</p>
<p>&nbsp;</p>
</div>
<div class="article-add-info">
<p><span class="glyphicon glyphicon-time">&nbsp;博文最后更新时间:&nbsp;<span data-timestamp="2020-11-11T06:50:44Z" data-format="format('LLL')" data-refresh="0">2020年11月11日下午2点50分</span></span></p>
</div><br><br>
来源:https://www.cnblogs.com/AnKangwenqiang/p/14646572.html
頁: [1]
查看完整版本: Linux 服务器安全加固(等保 2.0 标准)