tomcat 安全配置

Tomcat 安全管理配置规范

一、管理端口保护8005

tcp6   0   0 127.0.0.1:8005    :::*     LISTEN    35830/java

[root@apache01 webapps]# telnet 127.0.0.1 8005
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SHUTDOWN
能过telnet命令连接到8005端口,可以执行SHUTDOWN命令关闭tomcat
  • 优化方案:
    修改默认的8005端口,修改shutdown指定字符串

    将端口修改成随机端口,将关闭命令修改成任意字符

  • ajp连接端口8009
    修改默认的8009端口,通过Iptables控制ajp端口访问

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

保护此端口的目的在于防止线下的测试流量被mod_jk转发至线上tomcat服务器

  • 禁用管理端
    删除tomcat/目录的一些host-manager docs examples 或者将tomcat的目录设定为
    tomcat以外的目录
    对于前端web模块,tomcat管理端属于tomcat高危安全隐患,一旦被攻破,×××通过上
    传web shell的方式将会直接取得服务器的控制

    修改默认的发布目录站点位置

    <Context path="/" docBase="/data/webapps/www"  debug="0" reloadable="true" crossContext="true"/>
    
  • 降权启动

    以非root用户启动tomcat

文件列表访问控制
conf/web.xml文件中default部分listings的配置必须为false;
false为不列出目录文件,true为允许,默认false
<init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param>

  • 版本信息隐藏

    1.修改conf/web.xml,重定向403,404以及500等错误到指定的错误页面,

    1. 也可以修改应用程序目录下的WEB-INF/web.xml下的配置进行错误页面的重定向
    <error-page>
    <error-code>403</error-code>
    <location>/forbidden.jsp</location>
    <error-code>404</error-code>
    <location>/notfound.jsp</location>
    </error-code>
    <error-page>
    <error-code>500</error-code>
    <location>/systembusy.jsp</location>
    </error-page>
    
	在配置中对一些常见错误进么重定向,避免当出现错误时,tomcat默认显示的错误页面暴
	露服务器和版本信息,必须确保程序根目录下的错误页面已经存在
	
* server header重写
	在HTTP Connector配置中加入server的配置
	server="webserver"
	当tomcat HTTP端口直接提供web服务时,此配置生效,加入此配置,将会替换http响
	应server header部分的默认配置,默认是Apache-Coyote/1.1
	示例:
	```
	[root@tomcat01 conf]# curl --head 127.0.0.1:8080
		HTTP/1.1 403 Forbidden
		Server: Apache-Coyote/1.1
		Cache-Control: private
		Expires: Thu, 01 Jan 1970 08:00:00 CST
		Content-Type: text/html
		Content-Length: 559
		Date: Sun, 31 Dec 2017 14:28:10 GMT
修改配置:
```
	<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout=“20000”
redirectPort=“8443” server=“nginx1.1”/>

	修改后的结果
	```
	[root@tomcat01 scripts]# curl --head 10.204.3.7:8080
		HTTP/1.1 403 Forbidden
		Cache-Control: private
		Expires: Thu, 01 Jan 1970 08:00:00 CST
		Content-Type: text/html
		Content-Length: 559
		Date: Sun, 31 Dec 2017 14:33:57 GMT
		Server: nginx1.1
	```	
		
		
	
## 二、访问限制

	通过限制,限制访问的ip来源
	ip的白名单,拒绝非白名单IP的访问,此配置主要是针对高保密级别的系统,
	```
	<Context docBase="/data/webapps/www"  debug="0" reloadable="false" crossContext="true"/>
	<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.*" deny="*.*.*.*" />
	</Context>

起停脚本权限回收
去除其他用户对tomcat的bin目录下的shutdown.sh startup.sh catalina.sh的执行权限
chmod -R 744 tomcat/bin/*

访问日志格式规范
开启tomcat默认访问日志中的referer和User-Agent记录,是为了一旦出现安全问题能够更好的根据
日志进行问题排查
```

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t %r %b %{Referer}i %{User-Agent}i $D" resolveHosts="false" />
```

三、Tomcat的状态管理和host管理

  • 管理状态页文件
	/usr/local/tomcat8/webapps/manager
  • 修改配置文件
vim /usr/local/tomcat8/conf/tomcat-users.xml
在最后</tomcat-users>段前添加的内容如下:
<role rolename="admin-gui"/>
<user username="tomcat" password="s3cret" roles="admin-gui"/>

四、访问状态页

http://10.204.3.6:8080/manager
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值