服务器安全配置参考

2.1) Apache Tomcat

  • 删除Tomcat的Manager控制台软件
    删除{Tomcat安装目录}\webapps\manager文件夹

如无法做到删除,参考以下步骤检查弱口令:

操作目的

检查Tomcat弱口令

检查方法

打开Tomcat_home\conf\tomcat-users.xml,查看设置的用户密码及角色,例如:


<role rolename="manager"/>


<user username="tomcat" password="复杂的密码" roles="manager"/>

加固方法

在tomcat-users.xml中为用户设置复杂的密码

 

 

 

 

 

 

 

 

  • 设置SHUTDOWN字符串

操作目的

防止恶意用户telnet到8005端口后,发送SHUTDOWN命令停止Tomcat服务

检查方法

打开Tomcat_home\conf\server.xml,查看是否设置了复杂的字符串


<Server port="8005" shutdown="复杂的字符串">

加固方法

设置复杂的字符串,防止恶意用户猜测到

  • 设置Tomcat运行身份

操作目的

以Tomcat用户运行服务,增强安全性

检查方法

查看Tomcat的启动脚本或服务,是否以Tomcat身份运行

加固方法

Unix系统:


(1) 创建apache组:groupadd tomcat


(2) 创建apache用户并加入apache组:useradd tomcat –g tomcat


(3) 以tomcat身份启动服务

  • 禁止目录遍历

操作目的

防止直接访问目录时由于找不到默认主页而列出目录下文件

检查方法

打开Tomcat_home\conf\web.xml,查看listings是否设置为false


<init-param>


    <param-name>listings</param-name>


    <param-value>false</param-value>


</init-param>

加固方法

将listings的值修改为false

  • 限制IP或主机名访问

操作目的

对敏感目录的访问IP或主机名进行限制

检查方法

打开Tomcat_home\conf\Catalina\localhost\manager.xml


查看是否设置有IP或主机名限制

加固方法

修改Tomcat_home\conf\Catalina\localhost\manager.xml,在Context标签中加入


<Valve className="org.apache.catalina.valves.RemoteAddrValve"


        allow="192.168.1.*" />


或者


<Valve className="org.apache.catalina.valves.RemoteHostValve"


        allow="*.localdomain.com" />

  • 开启访问日志

操作目的

检查Tomcat是否记录了错误信息和访问信息

检查方法

Tomcat的日志信息默认存放在Tomcat_home\logs中,访问日志默认未开启

加固方法

如果Tomcat独立运行(未与Apache整合),可以选择开启访问日志,修改Tomcat_home\conf\server.xml,取消注释:


<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 


prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>


启用access_log后,重启tomcat,在Tomcat_home\logs中可以看到访问日志



注:这里记录的时间转换为北京时间需要+8小时

  • 自定义错误信息

操作目的

自定义Tomcat返回的错误信息

检查方法

查看Tomcat_home\webapps\APP_NAME\WEB-INF\web.xml中<error-page> </error-page> 部分的设置

加固方法

修改Tomcat_home\webapps\APP_NAME\WEB-INF\web.xml


在最后</web-app>一行之前加入以下内容


(1)表示出现404未找到网页的错误时显示notfound.html页面


<error-page>


<error-code>404</error-code>


<location>/nofound.html</location>


</error-page>


 


(2)表示出现java.lang.NullPointerException错误时显示error.jsp页面


<error-page>


<exception-type>java.lang.NullPointerException</exception-type>


<location>/ error.jsp</location>


</error-page>

 

2.2) Apache Http Server

  • 端口配置
    对外服务http使用80端口,SSL使用443端口;且只允许80运行http访问,其他服务严禁运行在80端口;使用其他端口需要提出申请,经过本部门和安全管理部门同意后方可使用。
  • 目录禁止配置为可浏览,关闭服务器端SSI包含
    Options -Indexes -Includes
  • 配置覆盖控制
    将AllowOverride设置为None
    防止通过.htaccess覆盖原有安全配置
  • 控制对root目录的访问
    <Directory />
    Options None
    AllowOverride None
    deny from all
    </Directory>
    开放指定目录:
    <Directory "/var/www/html/">
    Order allow,deny
    allow from all
    </Directory>

2.3) MySql Server

  • 移除Anonymous帐号
    Delete from mysql.user where user = ''; mysql缺省有一个空用户。

2.4) PHP

检查php.ini中与安全有关的配置项,并按下述建议进行配置。

1) safe_mode
    启用安全模式safe_mode = On (默认Off)

2) safe_mode_gid
     默认情况下,安全模式在打开文件时会做 UID 比较检查。如果想将其放宽到 GID 比较,则打开 safe_mode_gid,建议:safe_mode_gid = Off (默认Off)

3) safe_mode_include_dir
    当从此目录及其子目录(目录必须在 include_path 中或者用完整路径来包含)包含文件时越过UID/GID 检查。
    默认未包含任何目录。不建议对本项进行设置,如果确有需要使用或者执行shell的时候,在此设置目录,并把对应目录权限设置为不可写不可读只可执行。

4) safe_mode_exec_dir
     如果 PHP 使用了安全模式,system() 和其它执行系统程序的函数将拒绝启动不在本项配置目录中的程序。

5) open_basedir
     将 PHP 所能打开的文件限制在指定的目录树,包括文件本身。本配置不受安全模式打开或者关闭的影响。 当一个脚本试图用例如 fopen() 或者 gzopen() 打开一个文件时,该文件的位置将被检查——如果文件在指定的目录树之外时 PHP 将拒绝打开它。所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。
默认是允许打开所有文件,建议根据实际情况设置。
特殊值 . 指定了存放该脚本的目录将被当做基准目录。
在 Windows 中,用分号分隔目录。在任何其它系统中用冒号分隔目录。作为 Apache 模块时,父目录中的 open_basedir 路径自动被继承。
用 open_basedir 指定的限制实际上是前缀,不是目录名。即: "open_basedir = /dir/incl" 也会允许访问 "/dir/include" 和 "/dir/incls"。
如果要将访问限制在仅为指定的目录,用斜线结束路径名,例如:"open_basedir = /dir/incl/"。 

6) disable_functions
强烈建议禁用的函数:exec,passthru,popen,proc_open,shell_exec,system,phpinfo,assert,get_loaded_extensions
推荐禁用的函数:chdir,chroot,dir,getcwd,opendir,readdir,scandir,fopen,unlink,delete,copy,mkdir,rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown,readfile,file_put_contents

7) cookie只允许http方式
   session.cookie_httponly = 1,使程序(js、applet)无法讲取到Cookie。

8) https secure 开启
   session.cookie_secure = 1,仅适用于https,如果是http,不要设置这个选项。


2.5) Jboss Application Server

Jboss的管理界面有admin-console、web-console、jmx-console、jbossws和root-console,在缺省配置中,它们分别是使用默认密码或者不使用安全验证即可进入。

安全配置建议:为admin-console设置安全的密码;为web-console、jmx-console设置安全的密码或者将其删除;删除root-console。
具体方法如下:

1)修改密码

  • 修改admin-console密码:修改%JBOSS_HOME%/server/xxx/conf/props里jmx-console-users.properties和jmx-console-roles.properties。
  • 修改jmx-console密码:修改%JBOSS_HOME%/server/deploy/jmx-console.war/WEB-INF/web.xml,去掉对<security_constraint>这段的注释;jboss-web.xml,去掉对<security-domain>的注释;%JBOSS_HOME%/server/default/conf/props目录下,jmx-console-users.properties 修改admin=admin,设置用户名=设置密码;jmx-console-role.properties修改admin为上一步设置的用户名。
  • 修改web-console密码: %JBOSS_HOME%/server/deploy/management/console-mgr.sar/web-console.war/WEB-INF/下,修改web.xml,去掉对<security_constraint>这段的注释;修改jboss-web.xml,取消对<security-domain>的注释;在%JBOSS_HOME%/server/deploy/management/console-mgr.sar/web-console.war/class下,修改 web-console-users.properties,admin=admin,设置用户名=设置密码;web-console-role.properties修改admin为上一步设置的用户名。
  • 修改jbossws密码:在%JBOSS_HOME%/server/all/deploy/jmx-console.war/WEB-INF下修改web.xml和jboss-web.xml,去掉安全注释;修改server/xxx/conf/props里的jbossws-users.properties和jbossws-roles.properties,配置用户名、密码和角色。

2)删除不必要的管理界面

  • 删除jmx-console:删除%JBOSS_HOME%/deploy/mx-console.war
  • 删除web-console:删除 %JBOSS_HOME%/deploy/management/console-mgr.sar/web-console.war 
  • 删除jbossws-context:删除%JBOSS_HOME%/deploy/jbossws.sar/jbossws-context.war
  • 删除root-console: 删除%JBOSS_HOME%/deploy/jboss-web.deployer/ROOT.war和%JBOSS_HOME%/deploy/jboss-web.deployer/context.xml
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值