Java 在 Linux 上的安全配置方法
一 基础环境与最小权限
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64;export PATH=$JAVA_HOME/bin:$PATHchmod +x your-app.jarsudo groupadd java_app_group && sudo useradd -g java_app_group java_app_usersudo chown -R java_app_user:java_app_group /opt/myapp && sudo chmod -R 750 /opt/myappsudo -u java_app_user java -jar /opt/myapp/app.jar二 JVM 与 Java 安全策略
-Djava.security.manager -Djava.security.policy=/opt/myapp/security.policygrant { permission java.security.AllPermission; };(仅测试用,生产应细化到最小集)-Xmx 限制堆上限;-XX:+HeapDumpOnOutOfMemoryError 便于事后分析;-XX:OnError、-XX:OnOutOfMemoryError 触发告警或优雅停机脚本。三 容器与系统资源限制
--cap-drop=ALL,按需仅保留必要能力),并挂载只读卷用于代码与配置。[Service]
User=java_app_userExecStart=/usr/bin/java -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -jar /opt/myapp/app.jarLimitNOFILE=4096MemoryLimit=1Gchcon -R -t java_home_t /opt/myapp,或基于策略模块精细化控制)。四 网络与传输安全
sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp && sudo firewall-cmd --reload<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/path/to/keystore.jks" keystorePass="your_password"/>五 运维与持续安全