linux – 将端口限制为单个应用程序

我想将一系列udp端口限制为单个应用程序(或用户).我想要实现的不仅仅是阻止来自其他uid的bind(),还要从可以自动分配的池中删除范围.

例如,如果有人试图显式绑定12345,但没有运行指定的应用程序,则应该获得EPERM.如果有人试图绑定一个未指定的端口,他们永远不应该尝试随机绑定12345.

有没有可以提供帮助的系统?我尝试浏览apparmor / selinux文档,但他们似乎只做阻塞部分.

解决方法

Linux上执行此操作的最简单方法是在标准短暂端口范围的顶部或底部范围预留块.

通过运行了解您当前的范围

cat /proc/sys/net/ipv4/ip_local_port_range

然后通过回显不同的东西来设置它(并修改sysctl.conf或类似的东西以使其在启动时发生).我的系统使用32768-61000,所以我可以将它更改为32768-60000与SELinux / AppArmor一起为我的应用程序保留60001-61000.

echo "32768 60000" > /proc/sys/net/ipv4/ip_local_port_range

我不知道如何在短暂的范围中间划出一个缺口.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...