SELinux:socatがunreserved_port_tで実行できるようにします。

SELinux:socatがunreserved_port_tで実行できるようにします。

私はSELinuxを使用して組み込みディストリビューションを開発しています。

この問題があります。

root@unknown7:~# socat openssl-listen:7777,reuseaddr, stdio
2022/02/03 13:44:44 socat[2331] E bind(5, {AF=2 0.0.0.0:7777}, 16): Permission denied

audit2allowでは、ポリシーに次の行を追加することをお勧めします。

allow sysadm_t unreserved_port_t:tcp_socket name_bind;

ただし、これを行うとSELinuxポリシーはコンパイルされません。

| Compliling mls sysadm.mod module
| policy/modules/roles/sysadm.te:54:ERROR 'unknown type unreserved_port_t' at token ';' on line 25502:
| allow sysadm_t unreserved_port_t:tcp_socket name_bind;
| allow sysadm_t node_t:tcp_socket node_bind;
| [...]/usr/bin/checkmodule:  error(s) encountered while parsing configuration
| [...]/tmp/sysroots/x86_64-linux/usr/bin/checkmodule:  loading policy configuration from tmp/sysadm.tmp
| make: *** [tmp/sysadm.mod] Error 1
| ERROR: oe_runmake failed
| ERROR: Function failed: do_compile (log file is located at [...]/tmp/work/namc_p2041-fsl-linux/refpolicy-mls/git-r0/temp/log.do_compile.14399)
ERROR: Task 2020 ([...]/sources/meta-selinux/recipes-security/refpolicy/refpolicy-mls_git.bb, do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3770 tasks of which 3746 didn't need to be rerun and 2 failed.
Waiting for 0 running tasks to finish:

Summary: 2 tasks failed:
  [...]sources/meta-selinux/recipes-security/refpolicy/refpolicy-standard_git.bb, do_compile
  [...]/QorIQ-SDK-V2.0-20160527-yocto/sources/meta-selinux/recipes-security/refpolicy/refpolicy-mls_git.bb, do_compile
Summary: There were 4 ERROR messages shown, returning a non-zero exit code.

私の質問:

  1. SELinuxを使用してすべてのポートを開く方法はありますか?私はこれが最初にSELinuxの原則に反することを知っていますが、これは開発目的にのみ使用されます。

  2. 他の予約済みport_tsの制限を維持しながらunrestricted_port_tのみを開く方法はありますか?

  3. いくつかのポート(7777、7778など)にのみアクセスを許可したいと思います。私の方針にこれをどのように宣言しますか?新しい.te、.fc、.ifファイルを作成する必要がありますか?

関連情報