我的家庭服务器有两个主要接口,eth1
(一个标准的互联网连接)和tun0
(一个 OpenVPN 隧道)。我想iptables
用来强制 UID 1002 拥有的本地进程生成的所有数据包通过 退出tun0
,所有其他数据包通过 退出eth1
。
我可以轻松标记匹配的数据包:
iptables -A OUTPUT -m owner --uid-owner 1002 -j MARK --set-mark 11
Run Code Online (Sandbox Code Playgroud)
现在,我想在 POSTROUTING 链(可能是 mangle 表的)中放置一些规则来匹配标有 11 的数据包并将它们发送到tun0
,然后是匹配所有数据包并将它们发送到 的规则eth1
。
我找到了 ROUTE 目标,但这似乎只是重写了源接口(除非我读错了)。
iptables 有这个能力吗?我是否必须弄乱路由表(通过ip route
或仅使用旧route
命令)?
编辑:我想也许我应该提供更多信息。我目前没有其他iptables规则(虽然我可能会创建一些规则来执行不相关的任务)。此外,输出ip route
为:
default via 192.168.1.254 dev eth1 metric 203
10.32.0.49 dev tun0 proto kernel scope link src 10.32.0.50
85.17.27.71 via 192.168.1.254 dev eth1
192.168.1.0/24 dev eth1 …
Run Code Online (Sandbox Code Playgroud) 我一直在尝试正确设置我的 samba 共享。
我正在寻找的设置是有几个公开可用的共享,来宾帐户可以并且可以浏览这些共享都可以。我有正确的设置。
设置只有某些用户可以查看的共享时会出现问题,尽管我设置了一个只允许某些用户访问的共享。我一直无法向客人隐藏此共享。
我查看了 browseable = yes 选项,但这对所有人都隐藏了它,包括已登录的用户。
关于如何解决这个问题的任何想法?
我对此私人共享的设置如下:
[private]
comment = private share for certain users
path = /media/drive/private
create mask = 0777
directory mask = 0777
writable = yes
public = no
users = admin
Run Code Online (Sandbox Code Playgroud)
我目前有
security = share
Run Code Online (Sandbox Code Playgroud)
但曾尝试使用 browseable = no with
security = user
Run Code Online (Sandbox Code Playgroud)