安全加固

制作证书文件

通过命令keytool -v -genkey -validity 3600 -alias axeac -keyalg RSA -keystore d:/axeac.keystore生成证书文件。

    C:\Users\Ben>keytool -v -genkey -validity 3600 -alias axeac -keyalg RSA -keystore d:/axeac.keystore
输入密钥库口令:axeac.
再次输入新口令:axeac.
您的名字与姓氏是什么?
  [Unknown]:  127.0.0.1  客户移动办公服务的访问地址
您的组织单位名称是什么?
  [Unknown]:  axeac
您的组织名称是什么?
  [Unknown]:  axeac
您所在的城市或区域名称是什么?
  [Unknown]:  beijing
您所在的省/市/自治区名称是什么?
  [Unknown]:  beijing
该单位的双字母国家/地区代码是什么?
  [Unknown]:  zh
CN=127.0.0.1, OU=axeac, O=axeac, L=beijing, ST=beijing, C=zh是否正确?
  [否]:  y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 3,600 天):
         CN=127.0.0.1, OU=axeac, O=axeac, L=beijing, ST=beijing, C=zh
输入axeac的密钥口令
        (如果和密钥库口令相同, 按回车):
[正在存储d:/axeac.keystore]

修改 axeac\runtime\conf\server.xml,修改系统端口号

<Connector port="8080" protocol="HTTP/1.1"
1、首先关闭 http(80 开头)端口
2、增加<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"  URIEncoding="UTF-8"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="D:/axeac.keystore" keystorePass="axeac."/>

tomcat 安全设置

Tomcat安全加固

Tomcat 服务默认启用了管理后台功能,使用该后台可直接上传 war 文件包对站点进行部署和管理。如果疏忽,可能导致管理后台存在空口令或者弱口令的漏洞,使得黑客或者不法分子可以利用该漏洞直接上传 Web shell 脚本导致服务器沦陷。 通常 Tomcat 后台管理的 URL 地址为 http://iP:8080/manager/html/ 黑客通过猜解到的口令登录 Tomcat 管理后台后,可以上传 Webshell 脚本导致服务器被入侵。 安全加固方案 由于此类型漏洞可能对业务系统造成比较严重的危害,建议您针对 Tomcat 管理后台进行以下安全加固配置。

  1. 网络访问控制 如果您的业务不需要使用 Tomcat 管理后台管理业务代码,直接将 Tomcat 部署目录中 webapps 文件夹中的 manager、host-manager 文件夹全部删除,并注释 Tomcat 目录中 conf 文件夹中的 tomcat-users.xml 文件中的所有代码。 如果您的业务系统确实需要使用 Tomcat 管理后台进行业务代码的发布和管理,建议为 Tomcat 管理后台配置强口令,并修改默认 admin 用户,且密码长度不低于10位,必须包含大写字母、特殊符号、数字组合。
  2. 开启 Tomcat 的访问日志 修改 conf/server.xml 文件,将下列代码取消注释: 启用访问日志功能,重启 Tomcat 服务后,在 tomcat_home/logs 文件夹中就可以看到访问日志。
  3. Tomcat 默认帐号安全 修改 Tomcat 安装目录 conf 下的 tomcat-user.xml 文件,重新设置复杂口令并保存文件。重启 Tomcat 服务后,新口令即生效。
  4. 修改默认访问端口 修改 conf/server.xml 文件把默认的 8080 访问端口改成其它端口。
  5. 重定向错误页面 修改访问 Tomcat 错误页面的返回信息,在 webapps\manger 目录中创建相应的401.html、404.htm、500.htm 文件,然后在 conf/web.xml 文件的最后一行之前添加下列代码:
<error-page>
      <error-code>401</error-code>
      <location>/401.htm</location>
</error-page>
<error-page> 
      <error-code>404</error-code>
      <location>/404.htm</location>
</error-page>  
<error-page>
      <error-code>500</error-code>
       <location>/500.htm</location>
</error-page>
  1. 禁止列出目录

防止直接访问目录时由于找不到默认页面,而列出目录下的文件的情况。 在 web.xml 文件中,将 listings</param-name> 改成 false</param-name> 。

  1. 删除文档和示例程序 删除 webapps 目录下的 docs、examples、manager、ROOT、host-manager 文件夹。

只有指定的主机或 IP 地址才可以访问部署在 Tomcat 下的应用。Tomcat 提供了两个参数供你配置:RemoteHostValve 和 RemoteAddrValve,前者用于限制主机名,后者用于限制 IP 地址。 通过配置这两个参数,可以让你过滤来自请求的主机或 IP 地址,并允许或拒绝 哪些主机/IP。 方法/步骤 1、全局设置,对 Tomcat 下所有应用生效 server.xml 中添加下面一行,重启服务器即可:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>  此行放在</Host>之前。例:
(1)只允许192.168.1.10访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10" eny=""/>
(2)只允许192.168.1.*网段访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
(3)只允许192.168.1.10、192.168.1.30访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30" deny=""/>
(4)根据主机名进行限制:
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="abc.com" deny=""/>

2、局部设置,仅对具体的应用生效根据项目配置情况进行设置: (1)使用 conf 目录下 xml 文件进行配置${tomcat_root}\conf\proj_1.xml (2)直接在 server.xml 中进行设置${tomcat_root}\conf\server.xml 在上述文件对应项目的</Context>前增加下面一行:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>

7.为了避免黑客针对某些版本进行攻击,因此我们需要隐藏或者伪装 Tomcat 的版本信息。

修改后范例:

image

针对该信息的显示是由一个jar包控制的,该jar包存放在 Tomcat 安装目录下的lib目录下,名称为 catalina.jar 通过修改 org/apache/catalina/util/ServerInfo.properties 文件中的 serverinfo 字段来实现来更改我们tomcat的版本信息

[root@localhost lib]# mkdir -p org/apache/catalina/util [root@localhost lib]# cd org/apache/catalina/util [root@localhost util]# vi ServerInfo.properties server.info=Nginx 1.1 # 版本号

8.默认Tomcat 是开启了对war包的热部署。为了防止被植入木马等恶意程序,因此我们要关闭自动部署。

9.线上是不使用 Tomcat 默认提供的管理页面的,因此都会在初始化的时候就把这些页面删掉。这些页面是存放在 Tomcat 安装目录下的webapps目录下的。

我们只需要删除该目录下的所有文件即可。另外conf/Catalina/localhost目录下的2个配置文件 host-manager.xml 和 manager.xml 也需要一并删掉

10.为了进一步安全,建议使用专用用户 tomcat 或者 nobody 用户来启动 Tomcat,为了防止 Tomcat 被植入 web shell 程序后,可以修改项目文件。因此我们要将 Tomcat 和项目的属主做分离,这样子,即便被搞,他也无法创建和编辑项目文件。

tomcat 安全设置

只有指定的主机或 IP 地址才可以访问部署在 Tomcat 下的应用。Tomcat 提供了两个参数供你配置:RemoteHostValve 和 RemoteAddrValve,前者用于限制主机名,后者用于限制 IP 地址。 通过配置这两个参数,可以让你过滤来自请求的主机或 IP 地址,并允许或拒绝 哪些主机/IP。 方法/步骤 全局设置,对 Tomcat 下所有应用生效 server.xml 中添加下面一行,重启服务器即可:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>  此行放在</Host>之前。例:
(1)只允许192.168.1.10访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10" eny=""/>
(2)只允许192.168.1.*网段访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
(3)只允许192.168.1.10、192.168.1.30访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30" deny=""/>
(4)根据主机名进行限制:
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="abc.com" deny=""/>

2、 局部设置,仅对具体的应用生效根据项目配置情况进行设置: (1)使用 conf 目录下 xml 文件进行配置${tomcat_root}\conf\proj_1.xml (2)直接在 server.xml 中进行设置${tomcat_root}\conf\server.xml 在上述文件对应项目的</Context>前增加下面一行:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
Copyright © 快虎信息 2019 all right reserved,powered by Gitbook该文件修订时间: 2019-03-24 15:03:51

results matching ""

    No results matching ""