提升Ubuntu Tomcat安全性的方法主要包括以下几个方面:
配置SSL证书
-
安装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
在
标签内添加以下配置:请将
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
,添加以下内容:... ...
通过以上步骤,可以显著提高Ubuntu下Tomcat服务器的安全性。