Apache服务器安全配置

摘要:
通过修改httpd.conf文件,还可以实现jump RewriteEngineOn的目的:启用jump RewriterRule“tttt.html$”404。html“:第一个参数是一个规则,第二个参数是要跳转到的相对地址;也就是说,当它满足规则时跳转。
用户权限分配

Linux中默认给予apache的是一个www-data账户

image

可以看到第一行为apache的主进程,以root权限进行,因为apache的web端口是80或者443,而在Linux中开启小于1024的端口需要root权限,所以主进程必须以root权限运行,第二行起为apache子进程,执行用户为www-data,是Ubuntu中运行web服务的默认用户,权限较低,可以看到创建不了文件

image

image

如果apache执行权限为高权限用户

可以尝试更改为低权限用户,apache的运行用户的配置信息可以在/etc/apache2/apache2.conf文件中看到,文件提示设置这些选项需要去/etc/apache2/envvars设置

image

到/etc/apache2/envvars下将user和group设置为www-data

image


Windows中apache安装后默认是administrator权限

如果使用此权限运行web服务一旦攻击者拿下webshell就很容易控制整个服务器,所以需要给apache降权,步骤如下

1.创建一个普通用户apache

image

image

2.添加到Guests用户组

image

3.将apache目录下的日志的可写权限赋给Guests账户

image

4.设置apache服务属性中的登陆选项卡,最后重启服务

image

5.菜刀查看权限

image



目录及文件权限

Linux在默认情况下如果当前目录不存在默认文件(如index.html),会列出当前目录

image

其权限配置在apache配置文件http.conf中,可以看到都额定/var/www/操作的有两个选项

indexes:可以在该目录中使用符号连接

FollowSymLinks:允许目录浏览,当客户仅指定要访问的目录,但没有指定要访问目录下的哪个文件,而且目录下不存在默认文档是,apache以超文本形式返回目录中的文件和子目录列表(虚拟目录不会出现在目录列表中)。

indexes决定目录可以被列出,从漏洞角度上讲也就是目录遍历漏洞

image

设置选项如下,重启服务后发现目录不在列出

image

image

另外也可以通过chmod命令进行权限控制

chmod o-r xxx.txt  将xxx.txt文件读权限去掉


Windows同样可以使用上述两种方法进行权限控制

法一:修改httpd.conf配置文件的方法与Linux下是一样的

法二:修改某文件的权限(apache已经添加到Guests用户组)

image

同理可以设置文件或目录的写、执行权限,尤其是一些文件上传目录一定要设置为不可执行,可以有效的被getshell



错误重定向

错误重定向是指通过在web程序出错令其跳转到指定的显示界面,首先可以通过设置.htaccess文件达到目的,但是Windows中正常情况下无法直接创建.xxx的文件,所有要使用DOS命令,生成.htaccess文件,在.htaccess文件中添加:ErrorDocument 404 /404.html,设置404错误重定向

image

image

同时创建404页面

image

image

随机访问不存在的文件,自动跳转到404.html

image

但这里也容易造成一个隐藏攻击点,因为一旦被被攻击者拿到webshell,发现并控制了.htaccess,攻击者可以通过修改.htaccess将.jpg文件设置为可被当作php执行的文件,后期排查留下隐患。

通过修改httpd.conf文件也可以达到跳转的目的

image

RewriteEngine On:开启跳转

RewriteRule "tttt.html$"  "404.html":第一个参数是一个正则,第二个参数使要跳转到的相对地址;也就是说当符合正则时进行跳转。比如对于本条正则当访问tttt.html时会跳转到404.html界面。

image

免责声明:文章转载自《Apache服务器安全配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ant的安装Eric6安装问题解决下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

FTP命令(2)

  1.传送单个文件 FTP可在两个方向传输文件。它可在本地计算机上取一文件将它送到远程计算机上,或者在远程计算机上取一文件将它放在本地计算机上。这可由get、put命令来实现。 get命令 get是把远程主机上的文件获取到本地来,用如下格式: ftp> get 源文件 目标文件 源文件是用户要COPY的远程计算机上文件的名字,目标文件是用户要在本...

py2exe使用总结

假如你用python写了个小程序,想给别人用或者给别人演示,但他电脑里没装python、wxpython等,这时候你可以试试py2exe,它是一个将python脚本转换成windows上的可执行程序(*.exe)的工具。安装就不多说了,简单介绍一下使用方法 一般来说,使用py2exe的步骤如下 1. 写一个用于发布程序的设置脚本 如果你有一个名为hello...

CentOS7安装openjdk、tomcat和mysql流程介绍

首先是前戏,推荐一个远程工具Xshell和Xftp搭配使用,以下是Xshell的官网 http://www.netsarang.com/products/xsh_overview.html 1.openjdk How to download and install prebuilt OpenJDK packages JDK 8 Debian, Ubu...

2-k8s笔记-Kubernetes安装配置指南

第2章 Kubernetes安装配置指南2.1 系统要求2.2 使用kubeadm工具快速安装Kubernetes集群2.2.1 安装kubeadm和相关工具2.2.2 kubeadm config2.2.3 下载Kubernetes的相关镜像2.2.4 运行kubeadm init命令安装Master2.2.5 安装Node,加入集群2.2.6 安装网络...

opencv配置(2.49)

转载自浅墨大神http://blog.csdn.net/poem_qianmo/article/details/19809337 OpenCV2.4.9和2.4.8的配置几乎一样,唯一的区别在下文中的第五步,链接库的配置,把对应的248改成249即可。 OpenCV 3.0配置更是被简化了。和2.4.8、2.4.9的区别就是下文第五步,链接库的配置,只用...

ubuntu下log4cxx安装使用

需要安装log4cxx,安装的过程中可是充满了坎坷。。。最大的问题是在make log4cxx时,总是报undefined XML什么什么的错误,查了一下也没解决了,然后把apr-utils删了重新装了一下就好了。。 log4cxx现在是apache的一个项目,用来记录日志。看名字就知道,是给c++使用的。 环境(在以下2个环境中进行验证测试): gcc...