标签:nec 更改 su - 处理 方式 webapps manage 切换 isa
sudo /etc/rc.d/init.d/iptables save
编辑server.xml: vi /usr/local/tomcat8/conf/server.xml
<span style="font-family:Consolas, Liberation Mono, Menlo, Courier, monospace;"> </span><span style="font-family:Microsoft YaHei;"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" server="APP Srv1.0"/></span>
针对该信息的显示是由一个jar包控制的,该jar包存放在 Tomcat 安装目录下的lib目录下,名称为 catalina.jar。
我们可以通过 jar xf 命令解压这个 jar 包会得到两个目录 META-INF 和 org ,通过修改 org/apache/catalina/util/ServerInfo.properties 文件中 的 serverinfo 字段来实现来更改我们tomcat的版本信息。
文件信息如下:
[root@localhost ~]
# cat /usr/local/tomcat8/lib/org/apache/catalina/util/ServerInfo.properties |grep -v ‘^$|#‘
server.info=Apache Tomcat
/8
.0.23
server.number=8.0.23.0
server.built=Mar 18 2016 20:31:49 UTC
还有另外一种方法来实现隐藏或伪装Tomcat的版本信息,其本质和上面一样,操作如下:
[root@localhost ~]
# cd /usr/local/tomcat8/lib
[root@localhost lib]
# mkdir -p org/apache/catalina/util
[root@localhost lib]
# cd org/apache/catalina/util
[root@localhost util]
# vim ServerInfo.properties
server.info=nolinux
# 如果想修改成其它版本号,把这个地方的值改成其它值就行了
生产环境一般不适用Tomcat默认的管理界面,这些页面存放在Tomcat 的webapps安装目录下,
把该目录下的所有文件删除即可:rm -rf /usr/local/tomcat8/webapps/*
另外删除相关的配置文件 host-manager.xml 和 manager.xml,在Tomcat 安装目录 conf/Catalina/localhost目录下。
注释或删除tomcat_user.xml 中的所有用户权限。
tomcat默认 开启了对war热部署。为了防止被植入木马恶意攻击,我们要关闭war包自动部署。
关闭自动加载最新代码(设置reloadable)
修改实例:
<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false" reloadable="false">
server.xml中定义了可以直接关闭 Tomcat 实例的管理端口。我们通过 telnet 连接上该端口之后,输入 SHUTDOWN (此为默认关闭指 令)即可关闭 Tomcat 实例(注意,此时虽然实例关闭了,但是进程还是存在的)。由于默认关闭 Tomcat 的端口和指令都很简单。默认端口为 8005,指令为SHUTDOWN 。因此我们需要将关闭指令修改复杂一点。
当然,在新版的 Tomcat 中该端口仅监听在127.0.0.1上,因此大家也不必担心。除非黑客登陆到tomcat本机去执行关闭操作。
修改实例:
<Server port="8005" shutdown="9SDKJ29jksjf23sjf0LSDF92JKS9DKkjsd">
或者禁用8005端口
<Server port="-1" shutdown="SHUTDOWN">
使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。
编辑配置文件 server.xml : vi /usr/local/tomcat8/conf/server.xml
默认配置:
<!-- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/> -->
修改实例:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="30" maxIdleTime="60000"
prestartminSpareThreads="true" maxQueueSize="100"/>
参数讲解:
默认配置:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
修改配置:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000"
maxConnections="10000" redirectPort="8443" executor="tomcatThreadPool" enableLookups="false" acceptCount="100" maxPostSize="10485760"
maxHttpHeaderSize="8192" compression="on" disableUploadTimeout="true" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" acceptorThreadCount="2" compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript" URIEncoding="utf-8"/>
<span style="font-family:Microsoft YaHei;"> <!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />--></span>
默认tomcat是root身份运行的,这样不安全。不要使用root用户启动tomcat。Java程序与C程序不同。nginx,httpd 使用root用户启动守护80端口,子进程/线程会通过setuid(),setgid()两个函数切换到普通用户。即父进程所有者是root用户,子进程与多线程所有者是一个非root用户,这个用户没有shell,无法通过ssh与控制台登陆系统,Java 的JVM 是与系统无关的,是建立在OS之上的,你使用什么用户启动Tomcat,那麽Tomcat 就会继承该所有者的权限。为了防止 Tomcat 被植入 web shell 程序后,可以修改项目文件。因此我们要将 Tomcat 和项目的属主做分离,这样子,即便被搞,他也无法创建和编辑项目文件。
[root@localhost ~]# groupadd tomcat [root@localhost ~]# useradd -g tomcat tomcat [root@localhost ~]# passwd tomcat [root@localhost ~]# chown tomcat.tomcat -R /usr/local/tomcat [root@localhost ~]# su - tomcat /usr/local/tomcat/bin/startup.sh [root@localhost ~]# echo ‘su - tomcat -c "tomcat /usr/local/tomcat/bin/startup.sh"‘ >> /etc/rc.local #开机启动
标签:nec 更改 su - 处理 方式 webapps manage 切换 isa
原文地址:http://www.cnblogs.com/Easonlou/p/6638920.html