在Ubuntu上安全配置Tomcat是一个重要的步骤,可以显著提高服务器的安全性。以下是一些关键的安全配置措施:
首先,确保在系统上安装了Java运行环境。Tomcat需要Java来运行,因此必须先安装Java。
sudo apt update
sudo apt install openjdk-11-jdk
java -version
为了避免以root用户运行Tomcat带来的安全风险,建议创建一个新的用户和组来管理Tomcat进程。
sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
从Apache Tomcat官方网站下载最新版本的Tomcat,然后将其解压到指定目录。
wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
sudo tar xzvf apache-tomcat-10.0.27.tar.gz -C /opt/tomcat --strip-components=1
编辑 /opt/tomcat/conf/server.xml
文件,修改默认的HTTP和AJP端口,以增强安全性。
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
删除 $CATALINA_HOME/webapps
下的默认目录,防止自动部署可能带来的安全风险。
rm -rf /opt/tomcat/webapps/*
在 $CATALINA_HOME/conf/server.xml
中,设置 autoDeploy
和 unpackWARs
属性为 false
,以关闭自动部署功能。
<Host name="localhost" appBase="/opt/tomcat/webapps" unpackWARs="false" autoDeploy="false">
修改 $CATALINA_HOME/conf/server.xml
中的 server
字段,或者修改 $CATALINA_HOME/lib/catalina.jar
中的 ServerInfo.properties
文件,以隐藏Tomcat的版本信息。
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" server="Custom Server Name" />
在 /opt/tomcat/conf/tomcat-users.xml
文件中创建管理用户,并分配必要的角色和权限。
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>
为Tomcat配置SSL/TLS以启用HTTPS,加密客户端与服务器之间的通信。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/path/to/your/keystore.p12"
keystorePass="your_keystore_password" keyAlias="tomcat"
clientAuth="false" sslProtocol="TLS"/>
使用 ufw
或 iptables
配置Linux系统防火墙,限制外部访问Tomcat服务的端口。
sudo ufw allow 8081/tcp
sudo ufw allow 8009/tcp
sudo ufw enable
定期审查Tomcat的日志文件,监控任何异常活动或安全事件。可以配置入侵检测系统(IDS)来进一步检测和报告潜在的安全问题。