确保Apache Web服务器安全的设置技巧

服务器 Alice 5年前 (2017-07-20) 1295次浏览 0个评论

  Apache服务器是一款开源的 WEB 服务器,是由非营利组织 Apache 软件基金会的支持的,我们很多的虚拟主机、VPS 等都会使用 Apache 服务器架构环境,但是任何的架构环境都会遭受各种可能的攻击、安全漏洞的检测、SQL 注入、各种拒绝服务攻击等。
  作为 VPS/服务器用户来说,一来需要多做备份确保服务器上网站数据的安全,二来还需要随时的观察我们服务器的监控动向,三来需要关注各种最新漏洞安全的更新脚本,作为基础的应用手段,我们需要确保基础的 Apache 安全设置,从基础上保证服务器的安全。
确保 Apache Web 服务器的安全设置技巧
第一、定期更新系统
  首先,我们需要确保是已经安装了最新版本和 Apache 的安全补丁和附加如 CGI,Perl 和 PHP 脚本代码。我们需要定期更新数据源依赖包操作。

# Ubuntu/Debian
apt-get update; apt-get dist-upgrade
# Fedora/Centos/RedHat
yum update

根据自己的系统环境选择更新升级命令。
第二、设置和保护我们的 SSH 安全
  我们在拿到 VPS 之后,建议修改端口、ROOT 密码、以及授权单独的非 ROOT 用户权限管理,或者我们也可以采用密钥的方式登录 SSH 客户端管理 VPS。比如可以参考”设置 Putty SSH 使用密钥登录 Linux VPS 主机”和”Xshell 设置密钥登录确保 Linux VPS 及服务器更加安全”文章设置密钥登陆。
第三、禁用未使用的服务
  为了确保我们的 Web服务器安全,建议你检查服务器上所有正在运行的服务和开放的端口,禁用我们不需要在服务器上的所有服务。
#要显示所有服务 service –status-all
#显示所有的端口规则 iptables -L
#显示所有的运行信息(redhat/centos/fedora)chkconfig –list
#检查/etc/init.d 是否有可疑脚本 ls /etc/init.d
第四、禁用不必要的 Apache 模块
默认情况下,Apache 很多模块都开启的,但是有些并不需要使用,我们可以关闭和精简。比如以前有分享过的”6 步骤实现 CentOS 系统环境精简优化”和”4 步骤实现 Debian 系统环境精简优化”可以有效的提高执行效率降低占用资源率。
A – Ubuntu/Debian
cat /etc/apache2/mods-enabled/* | grep -i loadmodule
开启模块
a2enmod module_name
关闭模块
a2dismod module_name
B – Centos/Fedora/RedHat
cat /etc/httpd/conf/httpd.conf | grep -i LoadModule
编辑 httpd.conf 文件,搜索 LoadModule 关键字,需要关闭的在前面加上#备注保存就可以,相反启动则去掉#
第五、让 Apache 以指定的用户和组来运行
大多数默认的 Apache 使用的是默认用户和组为 apache 的,为了确保安全,我们可以使用不同的用户/组。假设你运行的邮件服务器作为 nobody 用户,你用相同的用户运行的 Apache。如果您的邮件服务器被攻破,你的 Apache 也将受到影响。比如,我们在以 root 身份运行,如果有安全风险,那整个系统将在很大的风险。要检查/更改用户/组,编辑 httpd.conf 文件。
#Fedora/Centos/Redhat
vi /etc/httpd/conf/httpd.conf
#Ubuntu/Debian
vi /etc/apache2/httpd.conf
我们可以使用默认的用户组,也可以创建新的用户/组。

User apache
Group apache

第六、防止信息泄露
默认的 Apache 安装后会在默认页面体现出端口、版本信息等,我们需要隐藏这些信息。
#Fedora/Centos/Redhat
vi /etc/httpd/conf/httpd.conf
#Ubuntu/Debian
vi /etc/apache2/conf-enabled/security.conf
搜索 ServerTokens 和 ServerSignature 字符,然后对应修改
ServerTokens Prod
ServerSignature Off
然后重启 Apache
#Fedora/Centos/Redhat
service apache2 restart
#Ubuntu/Debian
service httpd restart
然后我们的 404 页面就看不到版本信息。
第七、隐藏 PHP 版本信息
#Fedora/Centos/Redhat
vi /etc/php.ini
#Ubuntu/Debian
vi /etc/php5/apache2/php.ini
然后搜索 expose_php,对应的参数 on 改成 off
第八、禁用自动索引模块
#Fedora/Centos/Redhat
/etc/httpd/conf/httpd.conf
把”LoadModule autoindex_module modules/mod_autoindex.so”一行前面加上#禁止掉
#Ubuntu/Debian
rm -rf /etc/apache2/mods-enabled/autoindex.conf
删除自动索引模块
  以上整理到的 Apache 的安全设置,还有一些设置我们可以查看.htaccess 文件的安全设置,不容小视这个小文件,有些安全设置还是需要通过.htaccess 文件的,以后有时间专门整理一篇。无论如何,不管我们使用的是虚拟主机,还是 VPS/服务器,我们需要随时监控和定时备份网站和项目数据。


女程序员博客 , 版权所有丨本站采用BY-NC-SA协议进行授权 , 转载请注明确保 Apache Web 服务器安全的设置技巧

【声明】:本博客仅为分享信息,不参与任何交易,也非中介,所有内容仅代表个人观点,均不作直接、间接、法定、约定的保证,读者购买风险自担。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。

【关于安全】:任何 IDC 都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现,请保持良好的备份习惯。

喜欢 (2)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址