将进程或用户绑定到特定IP(Linux)

我的服务器上有3个非root用户,我想给每个用户提供不同的IP地址(我在一个网络接口上有多个IP).例如,user1将具有192.168.1.2,user2 – 192.168.1.3等等.或者,如果不可能,我如何将特定进程绑定到给定的IP地址(我建议,可以使用iptables,但是如何?).谢谢.

解决方法

iptables -t nat -A POSTROUTING -m owner --uid-owner user1 -j SNAT --to-source 192.168.1.2
iptables -t nat -A POSTROUTING -m owner --uid-owner user2 -j SNAT --to-source 192.168.1.3
iptables -t nat -A POSTROUTING -m owner --uid-owner user3 -j SNAT --to-source 192.168.1.4

您有责任确保(a)您没有使用POSTROUTING nat链,因此这些规则不会与其他任何内容发生冲突,并且(b)所有这些IP地址都存在于您的NIC上(您不会听到很多回复否则).

这也只会影响从这些用户拥有的进程本地发起的流量.如果用户正在设置网络侦听守护进程,则需要采用不同的方法来处理回复,如果服务器充当路由器,则无法使用;但你没有说这两种情况都适用,所以我没有解决这些问题.

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...