web 服务器安全设置在哪里 web 服务器安全配置

Web服务器安全配置分为两大块。一部分是操作系统层面,包含防火墙规则、内核参数、文件权限;另一部分是Web服务软件自身配置文件,文件位置取决于你使用Nginx、Apache还是IIS。

Nginx的配置入口 Nginx配置文件路径由安装方式决定。包管理器安装,主配置文件一般在/etc/nginx/nginx.conf;源码编译安装,路径通常是/usr/local/nginx/conf/nginx.conf。全局安全配置写在主配置文件的http块内。如果启用conf.d目录,可以单独新建/etc/nginx/conf.d/security.conf,集中存放安全相关配置。

web 服务器安全设置在哪里 web 服务器安全配置

基础操作是隐藏版本号,在http块添加server_tokens off;,Nginx响应头不会返回版本号,攻击者无法根据版本匹配已知漏洞。接着限制HTTP请求方法,只放行GET、HEAD、POST,其余请求全部拒绝,配置写在server块。拦截敏感目录也在这个位置,例如location ~ /.git { deny all; }屏蔽.git目录,同理拦截.htaccess、.env文件。安全响应头可以统一在Nginx配置添加,X-Frame-Options、X-Content-Type-Options、Content-Security-Policy,通过add_header指令添加到server块。

Apache的配置入口 Apache主配置文件路径:CentOS/RHEL系列为/etc/httpd/conf/httpd.conf;Debian/Ubuntu系列为/etc/apache2/apache2.conf。Debian系还有独立安全配置文件/etc/apache2/conf-available/security.conf,可以修改各类安全默认参数。

Apache优先配置两项:ServerTokens Prod和ServerSignature Off。前者压缩响应头服务器信息,后者关闭错误页面底部版本标识,两者配合减少信息泄露。目录浏览功能默认可能开启,在Directory段添加Options -Indexes关闭。收紧.htaccess权限,对外站点目录设置AllowOverride None,只有确实需要目录级别配置的路径按需开启,防止攻击者上传.htaccess修改站点行为。服务器运行PHP的话,php.ini需要调整,设置expose_php = Off、display_errors = Off,禁用exec、system、shell_exec这类高危函数。

IIS的配置入口 IIS配置层级和前两者不同。服务器全局配置保存在applicationHost.config,路径一般在C:WindowsSystem32inetsrvconfig。站点单独配置存放在站点目录web.config,站点配置优先级更高,会覆盖服务器全局同名设置。

IIS优先配置请求过滤,可以在站点web.config或者PowerShell修改applicationHost.config,拦截.git、.bak、.config这类敏感后缀访问,防止扫描器下载源码和备份文件。设置URL长度上限和上传文件大小,URL最大4096字符,单文件上传上限30MB,抵御畸形请求消耗资源。关闭TRACE、DELETE这类不必要HTTP动词,仅保留业务所需类型。应用程序池不要使用高权限账户,NTFS权限移除Everyone完全控制权限,只保留管理员与应用池标识读取权限。

操作系统层面别忽略 不管用哪款Web服务软件,操作系统安全设置直接影响站点安全水平。Linux系统检查SELinux或者AppArmor是否启用,强制访问控制机制能在Web进程被入侵时限制文件访问范围。SSH管理端口关闭密码登录,改用密钥认证,搭配fail2ban自动封禁暴力破解IP。网站根目录权限基线:目录755,文件644;上传目录单独设置权限,禁止上传目录执行脚本。

Linux服务器安全自查,可以运行Lynis审计工具,扫描输出权限、账号、防火墙、系统更新等风险项,比人工逐项检查效率更高。修改配置之后必须校验语法,Nginx执行nginx -t,Apache执行apachectl configtest,校验无误再重载服务。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。

相关推荐