Spring Boot Init.d 服务安全防护 (Securing an init.d service)

给Spring Boot 应用创建指定的用户

当以root用户身份执行时,跟使用 root 启动init.d服务的情况一样。 Spring Boot 内嵌的启动脚本使用 jar 文件所属用户去启动应用。 您不应该以root身份运行应用程序,因此您的应用程序的 jar 文件不应该由root拥有。相反,创建一个特定的用户来运行应用程序,并使用修改 jar文件的所有者。如下:

# 创建用户
[root@my love~]#  adduser  bootapp
# 修改文件所属用户
[root@my love~]# chown bootapp:bootapp your-app.jar

现在,内嵌的可执行脚本将以 bootapp 用户运行应用程序。

将Spring Boot 应用所属账号 shell 设置为 /usr/sbin/nologin

为了减少应用程序的用户帐户遭到入侵的机会,您应该考虑防止其使用可登陆的 shell。 例如,将帐户的shell设置为 /usr/sbin/nologin

# 将bootapp 用户的 shell  环境设置为 /usr/sbin/nologin 
[root@my love~]# usermod -s /usr/sbin/nologin bootapp
# 此时切换用户,会给出相应的提示信息
[root@my love~]# su bootapp
This account is currently not available.

防止应用程序相关文件被串改

首先,配置其权限,使其不能被写入,并且只能由其所有者读取或执行:

[root@my love~]# chmod 500 your-app.jar

其次,如果应用程序或运行它的帐户被泄露,还应该采取措施防止可执行文件被损坏。 如果攻击者确实获得访问权限,他们可以使 jar 文件变得可写,并更改其内容。为了防止这种情况,使用 chattr 使其变得不可变:

# chattr -i your-app.jar 可以取消这一限制,此命令只能使用 root 用户运行。
[root@my love~]# chattr +i your-app.jar

这将阻止任何用户修改该jar,包括root。

如果你的应用程序还有相应的.conf , 也应该修改相应的权限,所属账户等配置。

[root@my love~]# chmod 400 your-app.conf
[root@my love~]# chown root:root your-app.conf

你可能感兴趣的:(Spring Boot Init.d 服务安全防护 (Securing an init.d service))