目录
1 talnet管理端口保护
2 AJP连接端口保护
3 禁用管理器
4 降权启动
5 控制文件列表的访问
6 隐藏版本信息
7 server header重写
8 限制IP访问
9 修改脚本权限
10 访问日志格式规范
1 talnet管理端口保护
配置内容:
(1)修改默认8005管理端口(要求:在8000~8999之间)
(2)修改shutdown指令为其他字符串。
配置:
以我的为例,我的Tomcat安装在application目录下。
vi /application/tomcat/conf/server.xml
将 <Server port="8005" shutdown="SHUTDOWN"> 中的8005和shutdown修改即可,例如:<Server port="8123" shutdown="mortal">。
2 AJP连接端口保护
配置内容:
(1)修改默认的AJP 8009端口(要求:在8000~8999之间)
(2)限制AJP端口访问的权限为线上机器(iptables规则)。
【防止线下的测试流量被转发到Tomcat服务器端】
配置:
vi /application/tomcat/conf/server.xml
将port="8009"中8009修改即可,例如:port="8234"。
3 禁用管理器
配置内容:
(1)删除Tomcat目录下的/conf/tomcat-users.xml文件,重启Tomcat后会自动生成新文件。
(2)删除Tomcat目录下的/webapps目录下所有内容。
(3)将Tomcat应用根目录配置为Tomcat安装目录以外的目录。
【Tomcat管理端如果被黑客攻破,将会获取服务器的控制权,后果不敢想象!】
配置:
rm -rf /application/tomcat/conf/tomcat-users.xml
rm -rf /application/tomcat/webapps/*
vi /application/tomcat/conf/server.xml
将<Host name="localhost" appBase="webapps" 中的webapps修改即可,例如:<Host name="localhost" appBase="/application/test/webapps"。
【要求修改后的目录必须存在!不存在则使用mkdir -p命令创建】
4 降权启动
配置内容:
降低Tomcat启动用户的目录访问权限(必须为非root权限)。
【避免Tomcat服务被入侵时,直接获取高级用户权限,后果极其严重!】
配置:
(1)创建用户
useradd tomcat
(2)新建目录
mkdir -p /home/tomcat
(3)将原本的Tomcat复制到新创建的目录下并改名为tomcat_1
cp -a /application/tomcat/ /home/tomcat/tomcat_1
(4)修改属组和属主
chown -R tomcat:tomcat /home/tomcat/tomcat_1/
(5)通过普通用户将新生成的tomcat_1运行起来
su -c '/home/tomcat/tomcat_1/bin/startup.sh' tomcat
【关闭使用 su -c '/home/tomcat/tomcat_1/bin/shutdown.sh' tomcat 命令即可】
5 控制文件列表的访问
配置内容:
修改Tomcat目录下的 /conf/web.xml 文件中的default部分。
【true表示允许列出目录文件,false表示不列出目录文件】
配置:
vi /application/tomcat/conf/web.xml
默认就是false,不需要修改。
6 隐藏版本信息
配置内容:
(1)修改Tomcat目录下的 /conf/web.xml 文件中的403、404、500等错误页面。
(2)修改Tomcat应用程序目录下的 WEB-INF/web.xml 文件中配置进行错误页面的重定向。(在Tomcat安装目录中,webapps是放置web应用的目录。在Tomcat的webapps目录下,针对每个web应用程序都有一个目录,例如:在 webapps 下新建一个名为 myapp 的目录,那么 myapp 目录下的 WEB-INF 目录就是存放 Web 应用程序的配置文件和类文件的目录。WEB-INF 目录下的 web.xml 是该web应用的核心配置文件,其他在WEB-INF/classes和WEB-INF/lib下的文件则是该web应用程序所使用的类和jar包。)
【避免出现错误时错误页面暴露出服务器或者版本信息,还必须确保修改后的重定向页面必须存在】
配置:
vi /application/tomcat/conf/web.xml
在文件最下方</web-app>上面添加如下内容:
<error-page>
<error-code>403</error-code>
<location>/forbidden.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/force.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/mortal.jsp</location>
</error-page>
其中网站发布目录的根目录下面(Tomcat中webapps/)必须存在forbidden.jsp、force.jsp、mortal.jsp!
7 server header重写
配置内容:
在Connector参数中加入server配置。
【修改HTTP响应中的Server头来重写Tomcat服务器的标识,重启Tomcat之后,相应的HTTP响应中的Server头就会被重写为你设置的标识。】
配置:
vi /application/tomcat/conf/server.xml
Connector参数:
在其中添加如下内容:
server=”myweb-server”
添加完成后保存退出即可。
8 限制IP访问
配置内容:
通过配置,限制IP的访问来源。
【配置信任IP的白名单,同时拒绝非白名单IP的访问。】
配置:
修改Tomcat主配置文件server.xml
vi /application/tomcat/conf/server.xml
在host参数下面添加如下内容:
<Context path="" docBase="/application/tomcat/webapps/test" debug="0" reloadable="false" crossContext="true"/>
<Value className=”org.apache.catalina.values.RemoteAddrValue” allow=”192.168.10.123,192.168.124*” deny=”*.*.*.*”/>
</Context>
添加完毕后保存退出。
9 修改脚本权限
配置内容:
去除其他用户对Tomcat目录下的bin目录下的文件(例如:shutdown.sh、startup.sh、catalina.sh等)的可执行权限。
【防止其他用户有启动/停止Tomcat的权限】
配置:
chmod -R 774 /application/tomcat/bin/*
10 访问日志格式规范
配置内容:
开启Tomcat默认访问日志中Referer和User-Agent记录。
【一旦出现安全问题能够更好的根据日志进行问题排查和解决】
配置:
vi /application/tomcat/conf/server.xml
在%b后添加如下内容:
%{Referer}i %{User-Agent}i %D" resolveHosts="false"
添加完成后,保存退出即可。