CentOS 7.5ベースのシステムでアプリケーションを実行する必要があります。 LDAPサービスを公開するには、アプリケーションをポート389にバインドする必要があります。アプリケーションはSystemDによって実行されますが、アプリケーションの実行に使用する必要があるユーザーが1024未満のポートへのバインディングを許可しないため、起動しません。私はこれを試しましたが、setcap 'cap_net_bind_service=+ep' /opt/jdk8/bin/java
その後Javaは起動しません。
iptables配信、SSHトンネリングなどに基づくソリューションを見ました。私が作業しなければならないシステムは、このすべての「魔法」を許可しません。にも同じだと思いますsetcap
。
SystemDで使用できる設定はいくつありますか?同じユーザーを使用してnginx
ポート上で実行する必要があり80
、機能するため、何とか実行できると確信しています。
アプリケーションのソースコードがないため、ポートを開く方法を変更することはできません。
ベストアンサー1
Java(またはダイナミックライブラリを使用するすべての項目)に拡張機能を提供できる場合、攻撃者はライブラリを切り替えて機能を取得する可能性があります。
離れた
ポートを開き、それをファイル記述子3に接続する最小限のCプログラム(静的にリンクされています)を作成します。次に Java プログラムを実行します。 Javaプログラムはfdopenを実行し、Javaの観点からファイルのように見えるようにする必要があります。 (open "/dev/fd/3"
)このラッパーにはこれらの機能が必要です。