爱谁谁爱咋咋 發表於 2023-6-25 00:00:00

Linux Apache Web服务器安全的8种安全设置技巧

<p>
        Apache服务器是一款开源的WEB服务器,是由非营利组织Apache软件基金会的支持的,我们很多的虚拟主机、VPS等都会使用Apache服务器架构环境,但是任何的架构环境都会遭受各种可能的攻击、安全漏洞的检测、SQL注入、各种拒绝服务攻击等。</p>
<p>
        作为我们VPS/服务器用户来说,我们一来需要多做备份确保服务器上网站数据的安全,二来还需要随时的观察我们服务器的监控动向,三来需要关注各种最新漏洞安全的更新脚本,作为基础的应用手段,我们需要确保基础的Apache安全设置,从基础上保证服务器的安全。</p>
<p>
        <img title="Linux Apache Web服务器安全的8种安全设置技巧" alt="Linux Apache Web服务器安全的8种安全设置技巧" src="https://zhuji.jb51.net/uploads/img/202305/00acc54a9eea00987aa67c89e39f8501.jpg"></p>
<p>
        <strong>第一、定期更新系统</strong></p>
<p>
        首先,我们需要确保是已经安装了最新版本和Apache的安全补丁和附加如CGI,Perl和PHP脚本代码。我们需要定期更新数据源依赖包操作。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_312175">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain"># Ubuntu/Debian</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                         </div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">apt-get update; apt-get dist-upgrade</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                         </div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain plain"># Fedora/Centos/RedHat</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                         </div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="plain plain">yum update</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        根据自己的系统环境选择更新升级命令。</p>
<p>
        <strong>第二、设置和保护我们的SSH安全</strong></p>
<p>
        我们在拿到VPS之后,建议修改端口、ROOT密码、以及授权单独的非ROOT用户权限管理,或者我们也可以采用密钥的方式登录SSH客户端管理VPS。比如可以参考"设置Putty SSH使用密钥登录Linux VPS主机"和"Xshell设置密钥登录确保Linux VPS及服务器更加安全"文章设置密钥登陆。</p>
<p>
        <strong>第三、禁用未使用的服务</strong></p>
<p>
        为了确保我们的Web服务器安全,建议你检查服务器上所有正在运行的服务和开放的端口,禁用我们不需要在服务器上的所有服务。</p>
<p>
        #要显示所有服务 service --status-all<br>
        #显示所有的端口规则 iptables -L<br>
        #显示所有的运行信息(redhat/centos/fedora)chkconfig --list<br>
        #检查/etc/init.d是否有可疑脚本 ls /etc/init.d</p>
<p>
        <strong>第四、禁用不必要的Apache模块</strong></p>
<p>
        默认情况下,Apache很多模块都开启的,但是有些并不需要使用,我们可以关闭和精简。比如以前有分享过的"6步骤实现CentOS系统环境精简优化"和"4步骤实现Debian系统环境精简优化"可以有效的提高执行效率降低占用资源率。</p>
<p>
        <strong>A - Ubuntu/Debian</strong></p>
<p>
        <code>cat /etc/apache2/mods-enabled/* | grep -i loadmodule</code></p>
<p>
        开启模块</p>
<p>
        <code>a2enmod module_name</code></p>
<p>
        关闭模块</p>
<p>
        a2dismod module_name</p>
<p>
        <strong>B - Centos/Fedora/RedHat</strong></p>
<p>
        <code>cat /etc/httpd/conf/httpd.conf | grep -i LoadModule</code></p>
<p>
        编辑httpd.conf文件,搜索LoadModule关键字,需要关闭的在前面加上#备注保存就可以,相反启动则去掉#</p>
<p>
        <strong>第五、让Apache以指定的用户和组来运行</strong></p>
<p>
        大多数默认的Apache使用的是默认用户和组为apache的,为了确保安全,我们可以使用不同的用户/组。假设你运行的邮件服务器作为nobody用户,你用相同的用户运行的Apache。如果您的邮件服务器被攻破,你的Apache也将受到影响。比如,我们在以root身份运行,如果有安全风险,那整个系统将在很大的风险。要检查/更改用户/组,编辑httpd.conf文件。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_212098">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">#Fedora/Centos/Redhat</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">vi /etc/httpd/conf/httpd.conf</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">#Ubuntu/Debian</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">vi /etc/apache2/httpd.conf</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        我们可以使用默认的用户组,也可以创建新的用户/组。</p>
<p>
         </p>
<div class="codetitle">
        <span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code46072">
        <br>
        User apache<br>
        Group apache</div>
<p>
         </p>
<p>
        <strong>第六、防止信息泄露</strong></p>
<p>
        默认的Apache安装后会在默认页面体现出端口、版本信息等,我们需要隐藏这些信息。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_618183">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">#Fedora/Centos/Redhat</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">vi /etc/httpd/conf/httpd.conf</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">#Ubuntu/Debian</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">vi /etc/apache2/conf-enabled/security.conf</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        搜索ServerTokens和ServerSignature字符,然后对应修改</p>
<p>
        ServerTokens Prod<br>
         ServerSignature Off</p>
<p>
        然后重启Apache</p>
<p>
        #Fedora/Centos/Redhat<br>
        service apache2 restart<br>
        #Ubuntu/Debian<br>
        service httpd restart</p>
<p>
        然后我们的404页面就看不到版本信息。</p>
<p>
        <strong>第七、隐藏PHP版本信息</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_798073">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">#Fedora/Centos/Redhat</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">vi /etc/php.ini</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">#Ubuntu/Debian</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">vi /etc/php5/apache2/php.ini</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        然后搜索expose_php,对应的参数on改成off</p>
<p>
        <strong>第八、禁用自动索引模块</strong></p>
<p>
        #Fedora/Centos/Redhat<br>
        /etc/httpd/conf/httpd.conf</p>
<p>
        把"LoadModule autoindex_module modules/mod_autoindex.so"一行前面加上#禁止掉</p>
<p>
        #Ubuntu/Debian<br>
        rm -rf /etc/apache2/mods-enabled/autoindex.conf</p>
<p>
        删除自动索引模块</p>
<p>
        总结,以上老左就整理到8点Apache的安全设置,还有一些设置我们可以查看.htaccess文件的安全设置,我们不容小视这个小文件,有些安全设置还是需要通过.htaccess文件的,以后有时间专门整理一篇。无论如何,不管我们使用的是虚拟主机,还是VPS/服务器,我们需要随时监控和定时备份网站和项目数据。</p>
頁: [1]
查看完整版本: Linux Apache Web服务器安全的8种安全设置技巧