飞道的博客

Tomcat安全设置规范

332人阅读  评论(0)

1、版本安全

定期升级到最新稳定版,但不建议进行跨版本升级。

 

2、服务降权

不使用root用户启动tomcat,使用用普通用户启动Tomcat。

 

3、telnet服务端口保护

更改tomcat管理端口8005为不易猜测端口,但要求端口配置在8000~8999之间,并更改shutdown执行的命令,shutdown命令可通过telnet远程对服务进行关闭,有一定的风险。

 

修改文件: /conf/server.xml

<Server port="8005" shutdown="SHUTDOWN">

例如修改为:<Server port="8123" shutdown="shutdown-xxx">

按实际情况修改

 

4、更改服务服务监听端口

若 Tomcat 都是放在内网的,则针对 Tomcat 服务的监听地址都是内网地址

 

修改文件:$CATALINA_HOME/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

例如修改为:

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

按实际情况修改

 

 

5、AJP连接端口保护 修改默认的ajp 8009端口为不易冲突(大于1024),但要求端口配置8000~8999之间。

 

修改文件:$CATALINA_HOME/conf/server.xml

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

例如修改为:

<Connector port="8199" protocol="AJP/1.3" redirectPort="8443" />

按实际情况修改

 

 

6、禁用管理端

(1)删除默认$CATALINA_HOME/conf/tomcat-users.xml文件,重启tomcat将会自动生成新的文件 (2)删除$CATALINA_HOME/webapps下载默认的所有目录和文件

 

 

7、隐藏Tomcat的版本信息

针对该信息的显示是由一个jar包控制的,该jar包存放在$CATALINA_HOME/lib目录下,名称为 catalina.jar,

在Tomcat关闭的情况下通过解压缩软件找到并修改 org/apache/catalina/util/ServerInfo.properties 文件中的 serverinfo 字段来实现来更改我们tomcat的版本信息

8、关闭war自动部署

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

 

修改文件:$CATALINA_HOME/conf/server.xml

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true">

 

 

修改为:

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="false">

 

 

9、添加自定义错误页面

为防止默认的错误信息泄露Tomcat相关信息,需自定义错误页面

编辑$CATALINA_HOME/CONF/web.xml,在</web-app>标签上添加以下内容:

<error-page>
    <error-code>404</error-code>
    <location>/404.html</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/500.html</location>
</error-page>

10、屏蔽目录文件自动列出

确认$CATALINA_HOME/CONF/web.xml文件,如下黄色字部分为false状态。

<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>

11、脚本权限回收

控制$CATALINAHOME/bin目录下的start.sh、catalina.sh、shutdown.sh的可执行权限

chmod −R 744 CATALINA_HOME/bin/*
注意:chmod −R 744 意思为当前文件夹拥有者才具备运行权限
      CATALINA_HOME/bin/* 路径根据实际部署环境填写
【2、服务降权】中提到tomcat文件夹不使用root权限对tomcat进行运行
因此通过chmod −R 744 将tomcat的文件夹bin下脚本的运行权限,局限于tomcat文件夹
拥有人账号才能运行

12、server head重写

在HTTP Connector配置中加入server的配置 server="server_name",默认是Apache-Copyote/1.1

修改文件:$CATALINA_HOME/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"/>

 

修改为:

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"

server="test"/>

13、访问日志格式规范(选择性修改)

开启tomcat默认访问日志中Referer和User-Agent记录

修改文件:$CATALINA_HOME/conf/server.xml

原始配置:

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

prefix="localhost_access_log." suffix=".txt"

pattern="%h %l %u %t "%r" %s %b" />

修改后配置:

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

directory="logs" prefix="localhost_access_log"

suffix=".txt" pattern="%h %l %u %t "%r" %s %b %{Referer}i %{User-Agent}i %D"

resolveHosts="false" />


转载:https://blog.csdn.net/weixin_45758890/article/details/105708159
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场