Web 环境安全 优化建议例(web优化的几个方面)
nanshan 2024-10-26 11:13 12 浏览 0 评论
Web 环境安全包含常见易出现安全问题的 Web 支撑服务组件,典型的如 PHP、Apache、Tomcat、Nginx、IIS、MySQL 、Redis、JBoss、Jetty、vsFTPd。
必备要求
- 建议从官方下载稳定版组件进行部署安装,注意不要下载和使用 beta 版本。
- Web 服务组件必须以普通账户权限运行。
- 禁止 HTTP 目录索引,外部用户可直接访问 Index/ 等目录。
- 不允许使用弱密码,需使用随机字符串作为初始默认密码。
- 合理配置目录访问权限,禁止未授权的目录访问行为,如 .git/.svn 等目录 。
- 默认关闭组件或程序调试模式,避免敏感信息泄露。
优化建议
PHP 安全优化建议
控制脚本访问权限
PHP 默认配置允许 PHP 脚本程序访问服务器上的任意文件,为避免 PHP 脚本访问不该访问的文件,从一定程度上限制了 PHP 木马的危害,需设置 PHP 只能访问网站目录或者其他必须可访问的目录。
/usr/local/apache2/web/为网站根目录,打开php.ini,安全加固配置方式如下:
open_basedir = /usr/local/apache2/web/
需要多个目录时,以冒号隔开如:
open_basedir = /usr/local/apache2/web/:/tmp/:/data/adc/
隐藏 PHP 版
攻击者在信息收集时候无法判断程序版本,增加防御系数。打开php.ini 安全加固配置方式如下,隐藏版本设置:
expose_php =off
off
修改 PHP 配置文件php.ini,添加如下配置:
safe_mode = on
safe_mode_gid = off
关闭全局变量,配置如下:
register_globals = off
er_globa
Web 木马程序通常利用 PHP 的特殊函数执行系统命令,查询任意目录文件,增加修改删除文件等。PHP 木马程序常使用的函数为: dl, eval, assert, exec, popen, system, passthru, shell_exec 等。
修改 PHP 配置文件php.ini,添加如下配置:
disable_functions= dl,eval,assert,exec,passthru,popen,proc_open,shell_exec,system,phpinfo,assert
可酌情调整函数内容。
nfo,assert
magicquotesgpc 会把引用的数据中包含单引号 ' 和双引号 " 以及反斜线 \ 自动加上反斜线,自动转译符号,确保数据操作的正确运行,magicquotesgpc 的设定值将会影响通过 Get/Post/Cookies 获得的数据,可以有效的防止 SQL 注入漏洞。
打开php.ini,安全加固配置方式如下,打开 magicquotesgpc 设置:
magicquotesgpc = On*
otesgpc 设置:
magicquotesgpc = On*
其他参考配置
- 开启 magic_quotes_runtime,对文件或者数据库中取出的数据过滤,能很好的解决二次注入漏洞。
magic_quotes_runtime = On - 关闭错误信息提示:
display_errors = off
display_startup_errors = off - 开启错误日志记录,闭 display_errors 后能够把错误信息记录下来,便于查找服务器运行的原因,同时也要设置错误日志存放的目录,建议跟 webserver 的日志放在一起。
log_errors = On
error_log = /usr/local/apache2/logs/php_error.log - 不允许调用 dl:
enable_dl = off - 关闭远程文件,允许访问 URL 远程资源使得 PHP 应用程序的漏洞变得更加容易被利用,PHP 脚本若存在远程文件包含漏洞可以让攻击者直接获取网站权限及上传 Web 木马,一般会在 PHP 配置文件中关闭该功能,若需要访问远程服务器建议采用其他方式,如 libcurl 库:
allow_url_fopen = off
allow_url_include = off - 开启 http only:
session.cookie_httponly = 1
cookie domain - 开启 https secure:
session.cookie_secure = 1 - 适当的 PHP redirects:
cgi.force_redirect = 0 - SQL 的安全模式:
sql.safe_mode = on
Apache 安全优化建议
Ap
Apache 安装好后,存在默认的示例页面:
需要删除两个目录:icons、manual ,并且注释或删除 Apache 配置文件中的以下两行内容:
Alias /icons/ "/usr/share/apache2/icons/"
AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru))?(/.*)?$ "/usr/share/apache2/manual$1
如果 Apache 以 daemon 普通用户启动,则黑客通过网站漏洞入侵服务器后,将获得 Apache 的 daemon 权限,因此需要确认网站 Web 目录和文件的属主与 Apache 启动用户不同,防止网站被黑客恶意篡改和删除。网站 Web 目录和文件的属主可以设置为 root 等(非 Apache 启动用户)。Web 目录权限统一设置为755,Web 文件权限统一设置为644( cgi 文件若需执行权限可设置为 755),只有上传目录等需要可读可写权限的目录可以设置为777。
假设网站目录为/usr/local/apache2/htdocs/,上传目录为/usr/local/apache2/htdocs/upload/
chown -R root:root /usr/local/apache2/htdocs/
chmod 755 /usr/local/apache2/htdocs/
find /usr/local/apache2/htdocs/ -type d -exec chmod 755 {} \;
find /usr/local/apache2/htdocs/ -type f -exec chmod 644 {} \;
chmod –R 777 /usr/local/apache2/htdocs/upload/
为了防止黑客在777权限目录中上传或者写入 Web 木马,因此需要设置 777 权限的目录不能执行或访问脚本。禁止执行或访问脚本的安全配置如下:
Web 木马,因此需要设置 777 权限的目录不能执行或访问脚本。禁止执行或访问脚本的安全配置如下:
<Directory "/usr/local/apache2/htdocs/yourpath">
Options None
AllowOverride None
Order deny,allow
deny from all
<FilesMatch "\.(jpg|jpeg|gif|png)#34;>
Order deny,allow
allow from all
</FilesMatch>
</Directory>
消除目录浏览漏洞
Apache 默认允许目录浏览,如果目录下没有索引文件则会出现目录浏览漏洞。
需要把 Apache 配置文件中的全部 “Indexes” 删除或者改为 “-Indexes”
开启访问日志
开启日志有助于发生安全事件后方便进行入侵回溯,分析原因及定位攻击者:
CustomLog /www/logs/access_log common
默认情况下,Apache 已开启访问日志记录,请在 Apache 配置文件中确认已开启访问日志。
其他参考配置
- FollowSymLinks此指令为默认启用,因此在创建符号链接到网页服务器的文档 root 目录时,请慎重行事。例如,请勿为“/”提供符号链接。
- ServerTokens ProductOnly
serversignature Off
Apache 默认输出的 banner 会泄漏关键信息,如服务器 OS 类型、Apache 版本、安装的应用程序类型及版本。暴露过多的信息只会给黑客带来便利。
在 Apache 配置文件中,修改 ServerToken、ServerSignatre 设置(如果没有这两行配置,请自行添加)。 - UserDir此指令可确认系统中用户帐户是否存在,所以要默认禁用UserDir指令。
要在服务器上启用用户名目录浏览,则须使用以下指令:
UserDir enabled
UserDir disabled root
这些指令用于/root/之外的所有用户目录,可激活其用户目录浏览这一功能。在禁用帐户列表中添加用户,要在UserDir disabled命令行添加以空格分隔的用户列表。
Tomcat 安全优化建议
Apache 软件下载
应该从 Tomcat 官方提供的下载页面进行安装部署。
Tom
编辑server.xml配置文件,确保在 HOST 标签中有记录日志功能,配置如下:
<valve cassname=”org.apache.catalina.valves.AccessLogValve”
Directory=”logs” prefix=”localhost_access_log.”
Suffix=”.txt”
Pattern=”common” resloveHosts=”false”/>
false”/>
注意:
默认 Tomca
为了限制脚本的访问权限,防范 webshell 木马,建议启动时增加安全参数启动,如采用如下方式启动 Tomcat:
Tomcat/bin/startup.sh –security
n/startup.
删除tomcat/webapps/目录下的所有文件及目录,已知webapps目录包含:
Tomcat/webapps/docs/
Tomcat/webapps/examples/
Tomcat/webapps/host-manager/
Tomcat/webapps/manager/
Tomcat/webapps/ROOT/
删除 Tomcat 的 admin 控制台软件:删除{Tomcat安装目录}\webapps下admin.xml文件。
删除 Tomcat 的 Manager 控制台软件:删除{Tomcat安装目录}\webapps下manager.xml文件。
安装目录}\webapps下manager.xml文件。
删除 jspx 文件解析
Tomcat 默认是可以解析 jspx 文件格式的后缀,解析 jspx 给服务器带来了极大的安全风险,若不需要使用 jspx 文件,建议删除对 jspx 的解析,具体操作为修改 conf/web.xml 文件,将如下
Tomcat 在程序执行失败时会有错误信息提示,可能泄漏服务器的敏感信息,需要关闭错误提示信息。可以通过指定错误页面的方式不将错误信息显示给用户,修改tomcat/conf/web.xml,增加如下配置项:
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
r-code>
<location>/500.jsp</location>
</error-page>
注意:
可以根据需要自行增加相应的错误码,常见的如500,404等,location 选项为指定跳转的页面,该 jsp 文件需要自己生成。
Nginx 安全优化建议
Nginx 软件的下载
应该从 Nginx 官方提供的下载页面下载进行部署按照,需要下载最新稳定版本。注意不要下载
cat/etc/nginx/nginx.conf
Nginx 默认不允许目录浏览,请检查目录浏览的相关配置,确保没有目录浏览漏洞。确保 autoindex 的配置为 off ,即 autoindex off 或者没有配置 autoindex。
没有目录
开启日志有助于发生安全事件后回溯分析整个事件的原因及定位攻击者。
默认情况下,Nginx 已开启访问日志记录,请在 Nginx 配置文件中确认已开启访问日志access_log
/backup/nginx_logs/access.log combined;
N
cat/etc/nginx/nginx.conf
添加这行配置:server_tokens off
ces
删除 Nginx 默认首页 index.html,业务可以自行创建默认首页代替之。
删除如下配置信息:
这行配置:server_tokens off
删除默认页
删除 Nginx 默认首页 index.html,业务可以自行创建默认首页代替之。
删除如下配置信息:
:
location /doc { root /usr/share; autoindex on; allow 127.0.0.1; deny all; } location /images { root /usr/share; autoindex off; }
删除首页 index.html 后,新建其他首页内容不允许出现如下首页内容:
其他配置
- 隐藏 Nginx 版本信息,打开配置文件 隐藏版本设置:
Server_tokens off;
攻击者在信息收集时候无法判断程序版本,增加防御系数。 - 禁用非必要的请求方法:
if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; }
trace 请求用于网络诊断,会暴露信息,只允许 GET、HEAD、POST 请求,其他请求直接返回444状态码 (444是 Nginx 定义的响应状态码,会立即断开连接,没有响应正文,TRACE 请求 Nginx 内置405拒绝)。
相关推荐
- 三种自建KMS激活系统自动激活windows方法
-
第一种:在windows服务器上搭建主要针对vol版本(win7、win10、win20xx、win2012等等)平台:我自己搭建的windows虚拟机,windows2016的操作系统软件:...
- 重装系统被收98元?避开Windows付费陷阱的实用指南
-
重装系统被收98元?避开Windows付费陷阱的实用指南有网友反映,在重装Windows系统后,屏幕突然弹出“激活系统需支付98元服务费”的提示,疑惑自己是不是遭遇了付费陷阱。事实上,微软官方的Wi...
- Windows Server2012远程桌面服务配置和授权激活
-
安装:注意:安装完毕之后需手动重启一下计算机配置终端服务管理工具---远程桌面服务---RD授权诊断程序,查看当前服务器有没有授权授权:运行—>gpedit.msc->计算机配置---管理...
- 新书速览|Windows Server 2022 系统与网站配置实战
-
讲述桌面体验、ServerCore/NanoServer,容器与云系统的配置1本书内容《WindowsServer2022系统与网站配置实战》秉持作者一贯理论兼具实践的写作风格,以新版的Wi...
- Windows激活全攻略:KMS神钥与专业工具的完美结合!
-
对于许多Windows用户来说,系统的激活是一个必经的过程。虽然Windows操作系统在未经激活的状态下也可以使用一段时间,但长期来看,未激活的系统会限制某些功能并频繁提示用户激活。以下是两种流行的激...
- 微软Win9全新激活技术曝光(微软系统激活有什么用)
-
2014-07-0905:46:00作者:徐日俄罗斯Wzor日前披露了更多关于Windows9的最新消息,据悉,Windows9将会在今年秋季亮相,其宣传口号是“想要开始按钮和开始菜单?如你所...
- 快速激活Windows 10/11:CMD命令详细教程
-
#记录我的2024#激活Windows操作系统是确保系统功能和安全更新正常运行的重要步骤。本文将为您分享如何使用命令提示符(CMD)在Windows10和Windows11上进行激活的详细步骤。...
- Wndows 2019 RDS应用发布部署(rds的安装和应用程序的发布)
-
安装前的准备1、需要提供服务器作为应用中心,应用中心的推荐配置如下表所示。规格建议1-10人11-20人21-50人51-100人100+人CPU4核8核16核内存8GB16GB32GB64GB系统盘...
- 解决 Windows 系统激活难题(如何解决windows激活问题)
-
今天,一位朋友给我说,他手头有三台电脑,均同时弹出系统未激活的提示。他对此毫无头绪,便急忙将电脑上出现的激活提示信息一股脑发给了我。我看到其中一台显示的是“Windows10企业版LTSC尚...
- 自建KMS激活服务器(自建kms激活服务器的风险)
-
自建KMS激活服务器Win10和office安装后,都需要激活才可以使用,一般可以输入购买的MAK激活码进行在线激活,也可以通过KMS激活,网上也有很多激活工具,但这些工具一般都含有病毒或木马程序,容...
- 30秒免费激活windows和office亲测有效!
-
“第三方工具有病毒?”“KMS服务器激活总失效?”今天给大家分享一个开源激活工具——MicrosoftActivationScripts(MAS),无需密钥、不装软件,30秒永久激活Window...
- 「操作系统」Windows 10 LTSC 2019 企业版C大集成更新版
-
Windows10LTSC企业版CHIANNET集成更新优化整合多镜像版,CHIANNET,是USBOS超级PE维护盘工具箱作者,长久以来一直默默的更新着,USBOSPE软件,电脑城装机及...
- 一文看懂Windows激活:自查方法+授权类型科普(Win7/Win10通用)
-
一、如何判断Windows是否永久激活?无论是Win7还是Win10,均可通过以下方法快速验证:命令提示符法(通用):按下Win+R,输入slmgr.vbs/xpr并按回车键运行即可查看是否...
- 部分Windows Server 2019/2022用户反馈无法运行微软Teams应用
-
IT之家7月2日消息,科技媒体borncity今天(7月2日)发布博文,报道称在多个WindowsServer版本上,MicrosoftTeams应用近期出现了运行故障。用...
- 这种Windows激活方式已有20年...(windows现在激活)
-
2006年微软正式发布WindowsVista,随之而来引入了一项新的激活机制「OEM激活」,这项机制在Vista和Win7上最为流行。其实WindowsServer自2008开始至2025版本一...
你 发表评论:
欢迎- 一周热门
-
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
NAS:DS video/DS file/DS photo等群晖移动端APP远程访问的教程
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
手机如何设置与显示准确时间的详细指南
-
如何修复用户配置文件服务在 WINDOWS 上登录失败的问题
-
一加手机与电脑互传文件的便捷方法FileDash
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
- 最近发表
-
- 三种自建KMS激活系统自动激活windows方法
- 重装系统被收98元?避开Windows付费陷阱的实用指南
- Windows Server2012远程桌面服务配置和授权激活
- 新书速览|Windows Server 2022 系统与网站配置实战
- Windows激活全攻略:KMS神钥与专业工具的完美结合!
- 微软Win9全新激活技术曝光(微软系统激活有什么用)
- 快速激活Windows 10/11:CMD命令详细教程
- Wndows 2019 RDS应用发布部署(rds的安装和应用程序的发布)
- 解决 Windows 系统激活难题(如何解决windows激活问题)
- 自建KMS激活服务器(自建kms激活服务器的风险)
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)