微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

systemd – 如何允许基于Java的应用程序绑定到低端口

我需要在基于CentOS 7.5的系统上运行某个应用程序.此应用程序需要绑定到端口389才能公开ldap服务.
此应用程序由SystemD运行但无法启动,因为我不得不使用用于运行应用程序的用户绑定到低于1024的端口.
我已经尝试过setcap’cap_net_bind_service = ep’/ opt / jdk8 / bin / java但是之后这个Java甚至无法启动.

我已经看到了基于iptables forward,ssh tunnels etcetera解决方案.在我必须使用的系统上不允许所有这些“魔法”.我想这同样适用于setcap.

我可以在SystemD中使用一些设置吗?我确信它可以以某种方式完成,因为我必须使用相同的用户在端口80上运行Nginx并且它可以工作.

因为我没有应用程序的源代码,所以我无法改变它打开端口的方式.

解决方法:

如果您可以为java(或使用动态库的任何东西)提升功能,那么攻击者可以切换库以获得功能.

一个办法

编写一个最小的C程序(静态链接),让它打开端口,并将其附加到文件描述符3.然后执行java程序. java程序必须执行fdopen,使其看起来像java的文件(打开“/ dev / fd / 3”)这个包装器需要这些功能.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐