Tomcat安全配置与性能优化.docx_第1页
Tomcat安全配置与性能优化.docx_第2页
Tomcat安全配置与性能优化.docx_第3页
Tomcat安全配置与性能优化.docx_第4页
Tomcat安全配置与性能优化.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Tomcat 安全配置与性能优化 博客分类: 系统运维netkillertomcatnginxapachejvmTomcat 安全配置与性能优化目录:- Tomcat 安全配置与性能优化 Mr.Neo Chen(netkiller),陈景峰(BG7NYT) 1.JVM 1.1.使用 Server JRE 替代JDK。 1.2.JAVA_OPTS 2.Tomcat 优化 2.1.maxThreads 连接数限制 提示 2.2.虚拟主机 2.3.压错传输 提示 3.Tomcat 安全配置 3.1.安装后初始化配置 3.2.启动用户与端口 3.3.应用程序安全 3.4.JSESSIONIDTomcat 安全配置与性能优化Mr.Neo Chen(netkiller),陈景峰(BG7NYT) 中国广东省深圳市龙华新区民治街道溪山美地518131+8613113668890+8675529812080版权 2011, 2012, 2013$Date: 2013-07-23 11:48:13 +0800 (Tue, 23 Jul 2013) $摘要我的系列文档Netkiller Architect 手札Netkiller Developer 手札Netkiller PHP 手札Netkiller Python 手札Netkiller Testing 手札Netkiller Cryptography 手札Netkiller Linux 手札Netkiller Debian 手札Netkiller CentOS 手札Netkiller FreeBSD 手札Netkiller Security 手札Netkiller Version 手札Netkiller Web 手札Netkiller Monitoring 手札Netkiller Storage 手札Netkiller Mail 手札Netkiller Shell 手札Netkiller Network 手札Netkiller Database 手札Netkiller PostgreSQL 手札Netkiller MySQL 手札Netkiller NoSQL 手札Netkiller LDAP 手札Netkiller Cisco IOS 手札Netkiller Multimedia 手札Netkiller Docbook 手札Netkiller 开源软件 手札目录1. JVM1.1. 使用 Server JRE 替代JDK。1.2. JAVA_OPTS2. Tomcat 优化2.1. maxThreads 连接数限制2.2. 虚拟主机2.3. 压错传输3. Tomcat 安全配置3.1. 安装后初始化配置3.2. 启动用户与端口3.3. 应用程序安全3.4. JSESSIONID 1.JVM1.1.使用 Server JRE 替代JDK。服务器上不要安装JDK,请使用 Server JRE. 服务器上根本不需要编译器,代码应该在Release服务器上完成编译打包工作。理由:一旦服务器被控制,可以防止在其服务器上编译其他恶意代码并植入到你的程序中。1.2.JAVA_OPTSexport JAVA_OPTS=-server -Xms512m -Xmx4096m -XX:PermSize=64M -XX:MaxPermSize=512m-Xms 指定初始化时化的栈内存-Xmx 指定最大栈内存2.Tomcat 优化2.1.maxThreads 连接数限制maxThreads 是 Tomcat 所能接受最大连接数。一般设置不要超过8000以上,如果你的网站访问量非常大可能使用运行多个Tomcat实例的方法。即,在一个服务器上启动多个tomcat然后做负载均衡处理。提示很多做过php运维的朋友在这里会犯一个大错误,php优化服务器通常怎做法是安装cpu以及内存的情况配置连接数,连接数过万都很正常,但java不同jvm配置要非常小心,稍有差错就会崩溃。maxThreads 配置要结合 JVM -Xmx 参数调整,也就是要考虑内存开销。2.2.虚拟主机不要使用Tomcat的虚拟主机,每个站点一个实例。即,启动多个tomcat.这也是PHP运维在这里常犯的错误,PHP的做法是一个Web下面放置多个虚拟主机,而不是每个主机启动一个web服务器。Tomcat 是多线程,共享内存,任何一个虚拟主机中的应用出现崩溃,会影响到所有应用程序。采用多个实例方式虽然开销比较大,但保证了应用程序隔离与安全。2.3.压错传输通常所说的gzip压缩,Tomcat通过在server.xml配置设置压缩的选项。提示压缩会增加Tomcat负担,最好采用Nginx + Tomcat 或者 Apache + Tomcat 方式,压缩交由Nginx/Apache 去做。3.Tomcat 安全配置3.1.安装后初始化配置当Tomcat完成安装后你首先要做的事情如下:首次安装完成后立即删除webapps下面的所有代码rm -rf /srv/apache-tomcat/webapps/*注释或删除 tomcat-users.xml 所有用户权限,看上去如下:# cat conf/tomcat-users.xml隐藏Tomcat版本信息vim $CATALINA_HOME/conf/server.xml # curl -I http:/localhost:8080/HTTP/1.1 400 Bad RequestTransfer-Encoding: chunkedDate: Thu, 20 Oct 2011 09:51:55 GMTConnection: closeServer: Neo App Srv 1.0服务器信息已经被改为 Server: Neo App Srv 1.03.2.启动用户与端口不要使用root用户启动tomcat,Java程序与C程序不同。nginx,httpd 使用root用户启动守护80端口,子进程/线程会通过setuid(),setgid()两个函数切换到普通用户。即父进程所有者是root用户,子进程与多线程所有者是一个非root用户,这个用户没有shell,无法通过ssh与控制台登陆系统,Java 的JVM 是与系统无关的,是建立在OS之上的,你使用什么用户启动Tomcat,那麽Tomcat 就会继承该所有者的权限。这造成了一个问题,Linux系统小于1024的端口只有root可以使用,这也是为什么Tomcat默认端口是8080。如果你想使用80端口只能使用root启动Tomcat。这有带来了很多安全问题。解决方案是创建一个不同用户,如:groupadd -g 80 daemonadduser -o -home /daemon -shell /sbin/nologin -uid 80 -gid 80 -c Web Server daemon注意 /sbin/nologin , 意味着该用户不能登录,同时我也没有给它指定密码,这个用户只能用于启动tomcatchown daemon:daemon -R /srv/*su - daemon -c /srv/apache-tomcat/bin/startup.sh接下来解决80端口问题, 思路就是80去调用8080,或者映射端口。下面是影射方案,80 跳转 8080iptables -t nat -A PREROUTING -p tcp -dport 80 -j REDIRECT -to-port 8080取消跳转iptables -t nat -D PREROUTING -p tcp -dport 80 -j REDIRECT -to-port 8080查看规则iptables -t nat -L另一个就是从80请求去调用8080的方案这个方案可以在 Tomcat 前段增加反向代理,例如:Nginx,Apache,Squid,Varnish或者F5, Array这类设备等等3.3.应用程序安全关闭war自动部署 unpackWARs=false autoDeploy=false。防止被植入木马等恶意程序应用程序部署与tomcat启动,不能使用同一个用户。我的tomcat 安装在 /srv目录下,Tomcat启动用户为daemon; 应用程序放在/www目录下www所有者是www用户。这样的目的是一旦tomcat被植入web shell程序,它将不能创建或编辑/www目录下面的任何内容。adduser -home /www -c Web Application www3.4.JSESSIONID修改 Cookie 变量 JSESSIONID, 这个cookie 是用于维持Session关系。建议你改为PHPSESSIDTomcat 安全与主意事项 博客分类: 系统运维netkillertomcatjavajdkjre文章出处:http:/netkiller.github.io/www/index.htmlTomcat 安全与主意事项不要使用root用户启动tomcat关闭war自动部署 unpackWARs=false autoDeploy=f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论