社区讨论

雷竞技网站MikroTik应用
fakeusername2022
新手
主题作者
职位: 36
加入: 2022年8月14日星期日下午4:36

RouterOS内核和Docker容器中缺少TPRl雷竞技OXY模块

2023年2月15日星期三上午10:03


我正在创建一个使用iptables的容器,并特别专注于利用TPROXY (https://www.kernel.org/doc/Documentatio…tproxy.txt),但我不能在docker环境中添加任何Iptable规则(我使用运行的shell连接到它)。
我对RouterOS内部docker的RUN模式很好奇。l雷竞技容器启动时是否带有“——privileged”和“——cap-add=NET_ADMIN”?
如何在Routeros的docker容器中使用Iptables和Tproxy ?l雷竞技
谢谢:)
最后编辑:fakeusername20222023年2月16日(星期四)12:27上午,共编辑1次。
elbob2002
成员的候选人
成员的候选人
职位: 201
加入: 2018年5月15日星期二晚上8:15
地点:爱尔兰

关于Mikrotik的Docker容器运行模式雷竞技网站

2023年2月15日星期三下午2:16

l雷竞技RouterOS不使用Docker。

我认为它用了LXC或者一个导数。这里可以进行修正。
用户头像
Amm0
论坛专家
论坛专家
职位: 1413
加入: 2016年5月1日星期日晚上7:12
地点:加州

关于Mikrotik的Docker容器运行模式雷竞技网站

2023年2月15日星期三下午2:43

AFAIK没有与“——特权”期权等价物。在路由器上获得根权限是Mikrotik所防范的,所以-privileged不太可能。雷竞技网站

类似地,对于NET_ADMIN, RouterOS不允l雷竞技许容器直接访问系统以太网设备——流量只通过VETH。NET_ADMIN将允许访问所有接口,而不仅仅是VETH。
fakeusername2022
新手
主题作者
职位: 36
加入: 2022年8月14日星期日下午4:36

关于Mikrotik的Docker容器运行模式雷竞技网站

2023年2月15日星期三下午3:22

关于如何为Routeros创建一个支持iptables的docker容器,它的模块包括tproxy,有什么建议吗l雷竞技?!
l雷竞技Routeros的防火墙本身不允许类似tproxy的功能,是吗?!
用户头像
Amm0
论坛专家
论坛专家
职位: 1413
加入: 2016年5月1日星期日晚上7:12
地点:加州

关于Mikrotik的Docker容器运行模式雷竞技网站

2023年2月15日星期三下午4:01

我不太了解TOR生态系统。但是您可以在VETH上使用vlan作为容器。假设VETH上有两个vlan:
一个VLAN可以是IN流量,一个VLAN可以是OUT流量。
但是容器中的TOR软件必雷电竞app下载官方版苹果须安装好才能使用这种方案。不知道是否可能。
fakeusername2022
新手
主题作者
职位: 36
加入: 2022年8月14日星期日下午4:36

关于Mikrotik的Docker容器运行模式雷竞技网站

2023年2月15日星期三下午4:47

用户头像
Amm0
论坛专家
论坛专家
职位: 1413
加入: 2016年5月1日星期日晚上7:12
地点:加州

关于Mikrotik的Docker容器运行模式雷竞技网站

2023年2月15日星期三下午5:20

哈哈错误的容器。同样的回答。MT不允许容器中有根类物质。没有NET_ADMIN或——privilege

雷竞技网站Mikrotik建议未来提供一些TAP/TUN支持。这是一个棘手的问题,因为他们试图避免一个被破坏的容器入侵路由器。有了这些选项,那就无关紧要了。
用户头像
Amm0
论坛专家
论坛专家
职位: 1413
加入: 2016年5月1日星期日晚上7:12
地点:加州

关于Mikrotik的Docker容器运行模式雷竞技网站

2023年2月15日星期三下午5:24

TOR ? !
我把我的错误归咎于@fakeusername2022用户名;)
fakeusername2022
新手
主题作者
职位: 36
加入: 2022年8月14日星期日下午4:36

关于Mikrotik的Docker容器运行模式雷竞技网站

2023年2月15日星期三晚上9:46

向前一步……
我列出了从RouterOS到运行容器的所有公开内核模块(你知道容器没有任何Linul雷竞技x内核,只依赖于主机内核)。因此,只有主RouterOS内核中加载的内核模块对它们可用)。l雷竞技

这是输出。其他人可能会觉得这很有趣:
代码:选择所有
lsmod模块所使用的大小chacha20poly1305 16384 0 esp6 20480 0 ah6 16384 0 esp4 20480 2 ah4 16384 0 camellia_generic 32768 0 twofish_generic 20480 0 twofish_common 24576 1 twofish_generic sch_rate 16384 51 sch_pcq 20480 4 ip6_tables 24576 0 imq 16384 0 cls_linear 20480 8 imq cls_fw 20480 1 imq sch_htb 28672 4 wireguard 65536 0 ip6_udp_tunnel 16384 1 wireguard udp_tunnel 20480 1 wireguard curve25519_x86_64 40960 1 wireguard libcurve25519_generic 49152 2 curve25519_x86_64 wireguardlibchacha20poly1305 16384 1 wireguard poly1305_x86_64 28672 1 libchacha20poly1305 chacha_x86_64 28672 1 libchacha20poly1305 libchacha 16384 1 chacha_x86_64 libblake2s 16384 1 blake2s_x86_64 vth 20480 0 iptable_raw 16384 1 ipt_SAME 16384 0 xt_NETMAP 16384 0 xt_REDIRECT 16384 0 xt_MASQUERADE 16384 3 xt_nat 16384 9 iptable_nat 16384 1 ipt_TARPIT 16384 0 ipt_REJECT 16384 0 nf_reject_ipv4 16384 1 ipt_REJECTiptable_filter 16384 1 nf_defrag_ipv4 16384 0 ipt_psd 16384 0 ip_tables 24576 4 iptable_filter,iptable_raw,iptable_nat,iptable_mangle ipt_snif 16384 0 snif 16384 1 ipt_snif ipt_ulog 16384 2 xt_tls 16384 2 xt_layer7 20480 0 xt_HL 16384 0 xt_DSCP 16384 0 xt_TCPMSS 16384 1 xt_CT 16384 0 xt_policy 16384 0 xt_addrtype 16384 6 xt_hl 16384 0 xt_realm 16384 0 xt_physdev 16384 0 xt_length 16384 0 xt_connbytes 16384 0 xt_helper 16384 0 xt_tcpmss 16384 0 xt_dscp 16384 0 xt_hashlimit 20480 0 xt_statistic 16384 0 xt_string 16384 2 xt_connmark 16384 15 xt_conntrack 16384 0 xt_multiport 16384 10 xt_mark 16384 14 xt_mac 16384 0 xt_tcpudp 16384 5 ts_kmp 16384 2 vmxnet3 45056 0 xt_misc 20480 42 x_tables 24576 41 xt_dscp,ipt_psd,xt_conntrack,xt_statistic,iptable_filter,ipt_SAME,xt_multiport,xt_length,xt_string,xt_tcpudp,xt_DSCP,xt_tcpmss,xt_hashlimit,xt_addrtype,xt_physdev,xt_nat,ipt_snif,xt_layer7,xt_helper,xt_NETMAP,xt_policy,ip6_tables,xt_HL,xt_mac,xt_tls,ipt_TARPIT,ipt_ulog,ipt_REJECT,xt_connmark,xt_CT,xt_realm,iptable_raw,ip_tables,xt_hl,xt_misc,xt_MASQUERADE,iptable_mangle,xt_TCPMSS,xt_REDIRECT,xt_mark,xt_connbytes nf_conntrack_ipv4 16384 0 des3_ede_x86_64 40960 0 nf_nat 28672 6 ipt_SAME,xt_nat,xt_NETMAP,iptable_nat,xt_MASQUERADE,xt_REDIRECT des_generic 16384 0 nf_conntrack_netlink 28672 0 libdes 24576 2 des_generic,des3_ede_x86_64 nfnetlink 16384 1 nf_conntrack_netlink sha512_ssse3 45056 0 sstp 45056 1 sha256_ssse3 32768 1 blowfish_generic 16384 0 blowfish_common 20480 1 blowfish_generic echainiv 16384 2 ovpn 24576 1 sha1_ssse3 28672 28 l2tp 69632 1 ppp_mppe 16384 0 sha512_generic 16384 1 sha512_ssse3 arc4 16384 0 af_key 28672 4 bridge2_netfilter 20480 0 libarc4 16384 1 arc4 sha1_generic 16384 1 sha1_ssse3 wlan 294912 3 xfrm_user 28672 2 vrf 20480 0 ppp_deflate 16384 0 aesni_intel 323584 56 zlib_inflate 20480 1 ppp_deflate capsmanglue 12288 1 wlan xfrm_algo 16384 6 esp6,af_key,esp4,ah6,ah4,xfrm_user zlib_deflate 24576 1 ppp_deflate ppp_generic 28672 132 l2tp,ppp_mppe,ppp_deflate,sstp btest 16384 0 glue_helper 16384 1 aesni_intel lm87 20480 0 hwmon_vid 16384 1 lm87 ledgroup 20480 0 tun 32768 0 slhc 16384 0 crypto_simd 16384 1 aesni_intel cryptd 16384 29 crypto_simd ulog 16384 2 ipt_ulog bridge2 118784 1 bridge2_netfilter switch 45056 1 bridge2 phy_helper 45056 1 switch packet_hook 131072 18 bridge2,l2tp,switch,xt_layer7,wlan,vmxnet3,xt_misc tunnel6 16384 1 packet_hook nf_conntrack 73728 14 xt_conntrack,nf_conntrack_ipv4,nf_nat,packet_hook,xt_nat,xt_helper,xt_NETMAP,nf_conntrack_netlink,xt_connmark,xt_CT,xt_misc,xt_MASQUERADE,xt_REDIRECT,xt_connbytes jiffies 16384 61 softdog 16384 2 wdat_wdt 16384 0 ipv6 299008 166 bridge2,l2tp,vrf,esp6,packet_hook,ovpn,bridge2_netfilter,ah6,wireguard nf_defrag_ipv6 16384 2 nf_conntrack,ipv6 logring 40960 202 unix 32768 334

ALSO as perLinux内核文档:
Iptables和nf_tables扩展
要使用tproxy,你需要为iptables编译以下模块:

NETFILTER_XT_MATCH_SOCKET
NETFILTER_XT_TARGET_TPROXY
或者nf_tables的流模块:
NFT_SOCKET
NFT_TPROXY

所以我认为在RouterOS上使用“TPROXY”目标是不可能的。l雷竞技也许Mikr雷竞技网站otik开发团队会考虑将这些模块加载到RouterOS内核中,以提供一些容器所需的灵活性和功能。l雷竞技

注:
这些是上面提到的模块,在我运行Ubuntu LTS的虚拟机上找到:
代码:选择所有
root@ubuntu-lts-hyperv:~# locate NETFILTER_XT_TARGET_TPROXY NFT_SOCKET NFT_TPROXY /usr/src/linux-headers-5.15.0-60-generic/include/config/NETFILTER_XT_MATCH_SOCKET /usr/src/linux-headers-5.15.0-60-generic/include/config/NFT_SOCKET /usr/src/linux-headers-5.15.0-60-generic/include/config/NFT_TPROXY
用户头像
Amm0
论坛专家
论坛专家
职位: 1413
加入: 2016年5月1日星期日晚上7:12
地点:加州

关于Mikrotik的Docker容器运行模式雷竞技网站

2023年2月16日星期四上午12:39

伟大的信息。这实际上让我感觉好多了——你不应该这么做的;)

完全满足需求——它是一个路由器,现在是“软件可扩展”的容器,所以是的,自定义软件(例如容雷电竞app下载官方版苹果器)可能想直接访问原始接口。

我认为他们在慢慢来,先让现有的功能适应。/container完全可以用于“服务”(例如,有第五个接口就可以了)。但是对于SDN/“数据包处理的东西”,你需要更多的选项来完整地保留网络接口本身。不管它是直接映射到Docker选项——privilege, NET_ADMIN之类的,还是别的什么,不知道。但是MT必须考虑到他们的容器未来类似sdn的用例。

谁在线

浏览此论坛的用户:无注册用户,0嘉宾