telnet管理端口保护

1. 修改默认的8005管理端口为不易猜测的端口(大于1024);

<Server port="" shutdown="dangerous">

2. 修改SHUTDOWN指令为其他字符串;

ajp连接端口保护

1. 修改默认的ajp 8009端口为不易冲突的大于1024端口;

2. 通过iptables规则限制ajp端口访问的权限仅为线上机器;

<Connector port="" 
protocol="AJP/1.3" />

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

禁用管理端

这个一定要禁止

1.  删除默认的{Tomcat安装目录}/conf/tomcat-users.xml文件,重启tomcat后将会自动生成新的文件;

2.  删除{Tomcat安装目录}/webapps下默认的所有目录和文件;

3. 将tomcat 应用根目录配置为tomcat安装目录以外的目录;

<Context path="" docBase="/home/work/local/tomcat_webapps" debug="" reloadable="false" crossContext="true"/>

对于前段web模块,Tomcat管理端属于tomcat的高危安全隐患,一旦被攻破,黑客通过上传web shell的方式将会直接取得服务器的控制权,后果极其严重,所以使用此方法进行优化;

降权启动

1. tomcat启动用户权限必须为非root权限,尽量降低tomcat启动用户的目录访问权限;

2. 如需直接对外使用80端口,可通过普通账号启动后,配置iptables规则进行转发;

这样做是避免一旦tomcat 服务被入侵,黑客直接获取高级用户权限危害整个server的安全;

文件列表访问控制

1. conf/web.xml文件中default部分listings的配置改为false;

<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>

false为不列出目录文件,true为允许列出,默认为false;

版本信息隐藏

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

2. 也可以通过修改应用程序目录下的WEB-INF/web.xml下的配置进行错误页面的重定向;

<error-page>
<error-code></error-code>
<location>/forbidden.jsp</location>
</error-page>
<error-page>
<error-code></error-code>
<location>/notfound.jsp</location>
</error-page>
<error-page>
<error-code></error-code>
<location>/systembusy.jsp</location>
</error-page>

在配置中对一些常见错误进行重定向,避免当出现错误时tomcat默认显示的错误页面暴露服务器和版本信息;

必须确保程序根目录下的错误页面已经存在;

起动关闭脚本权限回收

去除其他用户对Tomcat的bin目录下shutdown.sh、startup.sh、catalina.sh的可执行权限;

chmod -R  tomcat/bin/*
防止其他用户有起停线上Tomcat的权限;

企业级Tomcat安全管理优化方案的更多相关文章

  1. Tomcat性能优化方案

    1. 提高JVM栈内存Increase JVM heap memory 你使用过tomcat的话,简单的说就是"内存溢出". 通常情况下,这种问题出现在实际的生产环境中.产生这种问 ...

  2. Tomcat 配置详解/优化方案

     转自:http://blog.csdn.net/cicada688/article/details/14451541 Service.xml Server.xml配置文件用于对整个容器进行相关的配置 ...

  3. tomcat配置详解/优化方案

    Service.xml Server.xml配置文件用于对整个容器进行相关的配置. <Server>元素:是整个配置文件的根元素.表示整个Catalina容器. 属性:className: ...

  4. Tomcat 优化方案 和 配置详解(转)

    转自 Tomcat 优化方案 和 配置详解 http://201605130349.iteye.com/blog/2298985 Server.xml配置文件用于对整个容器进行相关的配置. <S ...

  5. Tomcat 配置详解/优化方案(转)

    转载地址:https://blog.csdn.net/cicada688/article/details/14451541/ Service.xml Server.xml配置文件用于对整个容器进行相关 ...

  6. 企业级Tomcat部署实践及安全调优

    1.1 Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人 ...

  7. Tomcat 7优化配置

    Tomcat 的优化不像其它软件那样,简简单单的修改几个参数就可以了,它的优化主要有三方面,分为系统优化,Tomcat 本身的优化,Java 虚拟机(JVM)调优.系统优化就不在介绍了,接下来就详细的 ...

  8. 大型php网站性能和并发访问优化方案(转载自php中文网)

               网站性能优化对于大型网站来说非常重要,一个网站的访问打开速度影响着用户体验度,网站访问速度慢会造成高跳出率,小网站很好解决,那对于大型网站由于栏目多,图片和图像都比较庞大,那该怎 ...

  9. 企业级Tomcat部署配置

    1.1 Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人 ...

随机推荐

  1. Tickets

    Tickets Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Stat ...

  2. ajax请求发送和页面跳转的冲突

    http://blog.csdn.net/allenliu6/article/details/77341538?locationNum=7&fps=1 在A页面中,有一个click事件,点击时 ...

  3. tamper-proof 对象 nonextensible对象 sealed对象 frozen对象

    tamper-proof 对象JavaScript的缺点之一就是每个对象都可以被相同执行上下文的代码修改,很容易导致意外覆盖,或则一不小心把native 对象覆盖.Ecmascript  5提供了 t ...

  4. 关于Spring在多线程下的个人疑问

    在Web开发中,不可避免的是需要遇到并发操作的,并发操作就有可能会引发我们的多线程安全问题.比如说,我们多线程下访问同一个变量并且有一个线程做出修改那么就会使得我们另外的线程在不知情的情况下被修改自己 ...

  5. The Lisp Curse /Lisp魔咒

    The Lisp Curse /Lisp魔咒 http://winestockwebdesign.com/Essays/Lisp_Curse.html 英文出处 http://www.soimort. ...

  6. 非对称加密技术- RSA算法数学原理分析

    非对称加密技术,在现在网络中,有非常广泛应用.加密技术更是数字货币的基础. 所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密. 但是对于其原理大部分同学应 ...

  7. C# TabControl标签的隐藏

    当你想要隐藏的时候 if (this.tabMain.TabPages[ "tabpageThePage "] != null) { this.tabMain.TabPages.R ...

  8. c#控件攻略宝典之ListBox控件

    ListBox控件的使用: 1)控件属性 Items SelectedItems SelectioModes 2)数据绑定 DataSoure DisplayMember ValueMenber 3) ...

  9. Web攻击技术

    Web攻击技术 1.针对Web的攻击技术 1.1.在客户端即可篡改请求 在Web应用中,从浏览器那接收到的Http的全部内容,都可以在客户端自由地变更.篡改,所以Web应用可能会接收到与预期数据不相同 ...

  10. C# 串口接收数据中serialPort.close()死锁

    最近在做一个有关高铁模拟仓显示系统的客户端程序,在这个程序中要运用串口serialPort传输数据,因为每次接收数据结束后要更新UI界面,所以就用到了的Invoke,将更新UI的程序代码封装到一个方法 ...