Linux系统Java安全管理实践
一 运行身份与系统权限
sudo groupadd appgrp && sudo useradd -g appgrp appusrsudo chown -R appusr:appgrp /opt/myapp && sudo chmod -R 750 /opt/myappsudo -u appusr java -jar /opt/myapp/app.jar/etc/security/limits.conf:
appusr soft nofile 1000appusr hard nofile 2000appusr soft as 512Mappusr hard as 1024Mulimit -asestatussudo chcon -R -t httpd_exec_t /opt/myapp(按实际类型调整)二 Java安全管理器与策略配置
java -Djava.security.manager -Djava.security.policy=/opt/myapp/security.policy -jar /opt/myapp/app.jargrant codeBase "file:/opt/myapp/-" {
permission java.io.FilePermission "/opt/myapp/logs/-", "read,write,delete";
permission java.io.FilePermission "/opt/myapp/config/-", "read";
permission java.net.SocketPermission "db.example.com:5432", "connect,resolve";
permission java.net.SocketPermission "localhost:8080-8090", "listen,accept,resolve";
permission java.util.PropertyPermission "myapp.*", "read";
permission java.lang.RuntimePermission "getenv.*";
};
三 网络与加密配置
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp && sudo firewall-cmd --reloadsudo firewall-cmd --permanent --zone=public --remove-port=8080/tcp && sudo firewall-cmd --reload四 更新 日志 监控与审计
五 容器与部署加固