提升Ubuntu Tomcat安全性的方法主要包括以下几个方面:
安装OpenSSL:确保系统中已安装OpenSSL。如果没有,可以通过以下命令安装:
sudo apt update
sudo apt install openssl
下载并安装Tomcat:如果还没有安装Tomcat,可以通过以下命令安装:
sudo apt install tomcat9
生成SSL证书:
创建证书目录:
mkdir -p /etc/ssl/tomcat
cd /etc/ssl/tomcat
生成自签名证书和私钥:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tomcat.key -out tomcat.crt
在生成过程中,系统会要求输入一些信息,如国家、省份、组织等,根据实际情况填写即可。
配置Tomcat:
编辑server.xml
文件:
sudo nano /etc/tomcat9/server.xml
在<Host>
标签内添加以下配置:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/ssl/tomcat/tomcat.key" keystorePass="your_password" keyAlias="tomcat"/>
请将your_password
替换为生成证书时设置的密码。
重启Tomcat:配置完成后,重启Tomcat使配置生效:
sudo systemctl restart tomcat9
验证SSL配置:打开浏览器,访问https://localhost:8443
,如果能看到Tomcat的默认页面,说明SSL配置成功。
删除默认目录:安装完Tomcat后,删除$CATALINA_HOME/webapps
下默认的所有目录文件。
rm -rf /srv/apache-tomcat/webapps/*
用户管理:如果不需要通过web部署应用,建议注释或删除tomcat-users.xml
下用户权限相关配置。
隐藏Tomcat版本信息:
修改$CATALINA_HOME/conf/server.xml
,在Connector
节点添加server
字段。
或者修改$CATALINA_HOME/lib/catalina.jar::org/apache/catalina/util/ServerInfo.properties
。
关闭自动部署:如果不需要自动部署,建议关闭自动部署功能。在$CATALINA_HOME/conf/server.xml
中的host
字段,修改unpackWARs="false"
,autoDeploy="false"
。
自定义错误页面:修改web.xml
,自定义40x、50x等容错页面,防止信息泄露。
禁止列目录:修改web.xml
。
AJP端口管理:如果tomcat前端放的是apache的时候,会使用到AJP这个连接器。前端如果是由nginx做的反向代理的话可以不使用此连接器。
服务权限控制:tomcat以非root权限启动,应用部署目录权限和tomcat服务启动用户分离。
启用cookie的HttpOnly属性:修改$CATALINA_HOME/conf/context.xml
,添加以下内容:
<Context>
...
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
...
</Context>
通过以上步骤,可以显著提高Ubuntu下Tomcat服务器的安全性。