From 3c04a624792136642c1634c6386b3a904ed82cd2 Mon Sep 17 00:00:00 2001 From: Dushnilin Date: Sat, 29 Aug 2026 08:33:24 +0300 Subject: [PATCH] feat(server): support per-user LAN isolation with auth_user and custom route rules --- .../08_UCI_CONFIGURATION_SCHEMA.md | 6 + .../resources/view/tachyon/server.js | 23 +++ luci-app-tachyon/po/ru/tachyon.lmo | Bin 72692 -> 129792 bytes luci-app-tachyon/po/ru/tachyon.po | 13 ++ luci-app-tachyon/po/ru/tachyon.ru.lmo | Bin 121928 -> 129792 bytes luci-app-tachyon/po/templates/tachyon.pot | 17 +++ tachyon/files/etc/config/tachyon | 4 + .../files/usr/lib/singbox/generator_routes.uc | 34 +++++ tests/server_isolated_users.sh | 140 ++++++++++++++++++ 9 files changed, 237 insertions(+) create mode 100644 tests/server_isolated_users.sh diff --git a/docs/knowledge-base/08_UCI_CONFIGURATION_SCHEMA.md b/docs/knowledge-base/08_UCI_CONFIGURATION_SCHEMA.md index 60e588f9..744116c9 100644 --- a/docs/knowledge-base/08_UCI_CONFIGURATION_SCHEMA.md +++ b/docs/knowledge-base/08_UCI_CONFIGURATION_SCHEMA.md @@ -51,6 +51,12 @@ Defines an individual manual proxy outbound node. | `sid` | `string` | Conditional | Short ID for VLESS Reality (hex string). | | `fingerprint` | `string` | No | TLS fingerprint: `chrome`, `firefox`, `safari`, `randomized`. | | `method` | `string` | Conditional | Cipher method for Shadowsocks (e.g. `2022-blake3-aes-128-gcm`). | +| `routing_mode` | `string` | No | Routing mode: `rules` (default), `direct`, `section`. | +| `routing_section` | `string` | No | Bound routing section when `routing_mode = 'section'`. | +| `isolate_lan_for_users` | `boolean` | No | Restrict access to private/LAN IP addresses (`1` / `0`). | +| `isolated_users` | `list string` | No | Specific usernames (`auth_user`) restricted from LAN. If empty, restricts all users of the inbound. | +| `isolated_subnets` | `list string` | No | Optional custom subnets to block for isolated users (defaults to `ip_is_private: true`). | +| `custom_route_rules` | `list string` | No | Raw JSON sing-box route rule objects injected before general routing rules. | --- diff --git a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js index 43eadc2c..471114ff 100644 --- a/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js +++ b/luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js @@ -2720,6 +2720,29 @@ function createServerContent(section, options = {}) { return loadRoutingSectionChoices(this); }; + o = section.option( + form.Flag, + "isolate_lan_for_users", + _("Restrict LAN access for specific users"), + _( + "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode.", + ), + ); + o.modalonly = true; + o.rmempty = true; + + o = section.option( + form.DynamicList, + "isolated_users", + _("Restricted users (auth_user)"), + _( + "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound.", + ), + ); + o.depends("isolate_lan_for_users", "1"); + o.modalonly = true; + o.rmempty = true; + o = section.option( form.TextValue, "inbound_json", diff --git a/luci-app-tachyon/po/ru/tachyon.lmo b/luci-app-tachyon/po/ru/tachyon.lmo index fbc94d0b40b7aa4faac51ab0aaee9d019c01c12c..66a100c601076c97adac2c2080a678c1d288b9fe 100644 GIT binary patch literal 129792 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 >S`MwV! zu&+Us|CNW%nI0xs?oD;2$L)Ye$Oy z>OP0s57Vnf$64?fdu%Nt1SLFLZ{+4qK)3h3&e9 z(9B`qb&S|Pl=f>^;OEeU?RoQ|4h3-$1K7Td@}o|{IM+tZ`BR~m1+)EV9PocNKWIY1 z?mxz|J(=Req+pM^a(t*i1sqgx;(Hp~2Va3|6}-t+j<=gGgY|}2aDB`6ikG04!_9Tt zGH20xMh^GdcU`bNlC}>R?p;jl0DsidgN6-nt{TL4k$(omhvSVtVV^b{T4VV6#?#qe zbqmyd`27x)2N-{|{m{_iPsStN<=;#wnm`;1|3Nd49vF~5!_v$(%yJ7W2YtIS_w7pIJYrCK0 z_75q~+zLTnhFXuY*1|YxfALAs>0`39^4UIa z6I5f&z|7sumuVdx$1Ij;9nk+w3qZ?M-PM&SQOBm@>Byhc+79bj5b&Z||X##|}S5d5QgB#6PL= z*h%dtF)vbuCXYQGzE-e2*Z}G?_Iu!IwtuGnJ&R1$HZm{Jg{Bml&F21P)rw%vBB#CS zY@cxf8dKzwT7lWW1=PAI?Bqwmaz`_0cu~X-4dz_RPwk=xo$D|My@DDPO&GaAuyk`a zRHJBVB_&?n&A}!`Zw}uVc6n4^sKL0v#7x1G({xO;$GG9Wl;cfhiW{$S%Qq|atKTQ^ z;PG<$VQzno;$hEtlh-=TC#c>>jknpM#6t@0&v1P0D*9|cMcY}8Z+)HC9lo6V8rpY! zuLiU(;Is63-|;hbdoZVXL$${r3QuD`_!!!Ff>x*|a{=XF=mg7xo6J`tpfx5q49Q_u zqxxn$!7uPLbLckc+X>;~Jvqc*1)7)hgk%Grj~qdMtTv&AVLxuaOC8!^!pOxI%%v(& zw+SV?sLo(}-y_g1#X%HyH2x!TP~+nHpKb`26DTh=iWeE(WqUO3C$)G}-dW}jw4PqY zd*;$QqCbmNXpM>SixmIZQ+^pvOzO0d?RvjMy(ebcZxJj7)q_@^*ng`tb6-QK#>9nWRq$)IIQntnu!Ll2TQ+?8^Jn|dHzl`co(xg2F%(5lLQPW9Bjphow z>`r-OJL$@DiZitTJQ?aX>4BB9K7~|=gC{zUcLX4IelkVJLU@upv|W5n!@9gWr{b==}$BB+1_|KG-P_|0UN<` zFx3^^8PdWMW=*Oa4`(E_3ubo1KBU|k{RWa>@!#S(gv*TCJ`|Vmhj}Q}dB*Z457_QT zc^@-lUGgmEOEFN*8C!O9d#N+6SKy2*;(G72RA`5pMvwL}A9@1~ znEBg|OlAj)1Lv7tENe2?r+VWyGrteVqjZJh&3WeVn3=*ZyXZsXXKtW!LF1RM;GgxZ zVOtI`-yH@$G;4G-@(b*3ZK0cIO}_JxIoJqlK5NcsC4bvd+&ImetH$vvy~qN)&zj$d z)&biaSA%BE_N*{Ku-xZ6wASpvmlQXcuh(E`&Dm$WDE{oa3G6@nd_+rOm(sDma^CDx zds-Ltm$@5iJNsq*vCKiFrgI`h-ovgo6s$d`zDyGYYg63X&uO@Op`ifCQ_^zdPUhA%pbbiTR@Y^AxeiS!8Fku`xi{sTZ^@Bv zhnSNn4-DsOj3+iT-0F)I_9Oppp6lGRs%S6WTnhD?>vGAH zc`&WB>D(gM2ZCkk0Mu#jrmYlbn16j@=eajKEA6u>?``JZU8Riw)EKbA+?PwpuNaTd z3#je93f-Crmg=cNSInzAh~|m@YSVc7&r7&UafSBUG~eiX?Yk=Dt$Gn$Z(hzxEwY>HYV%gzo6GhF+n}NIw#!OBSW*4BKHt~Nob3)&$3y4$ zpX0@BPjMSEf4j`vO9h%>`}yA=920hF)N!cw0@YQ^n2#)iIxaBV4x#=3(E{qWAn@u6 z=GJSV9t$#xAT+=3Q=qjL^c}KRute^Xau!yWCofdZQIFRk1D1KcQ4yj1nVLbK~q1p@2Z@9}mm+DEt!Yk`}K63rf zV4H|1pqP=Vx2+jHZNzMC$C3jl4_(j1Z|2}UjYbks?(?71H5wYX(lt{-x6J+Ry268+|Ecdr07U1EQviePET2&mtZ zv;gu8{HIRssxN7gk;C?0b)cS0ddB3k-8&tszoeHQx0jx(gH4y@U#4}(`0mlXRxBBJ zf#L%EVj|Rb$)=OFnJ3fu+?QP2>cH&P0UEvJ_Iz#TH8Y@rOHFRkm( z*77O&1>>zT2zqu|E0ajUa*Ny0Vap1=xj)(C9eB!eWLL*n~pT_Gi9k>EkUvcnjxUfrObD?o7?mZ1- z-r5T4wc_P2J;Abn5Om8*t$uubkh8vk%~u-4kl!)CHMCC7E1Nx|c3>~cGmVw4ET=K+ z%z|pI9DBo!c_78H>dJlRmN4(6aci!8dX4H3w$~B!S=CmB{Uw`Ie59;u+sudU`x-#q zR-N`g!W>THG+FiKVrAy;d6jrPa?)FH%wywsQela(p5o>CnAwPh{_qYt#6dxEWSe{^ykG0kuEju38*@Vv@tT`WC zjoa@$1r1)?sT++0+q-v!x~?7Av5>)g-0;PxxJLYu7fX~^|NZhQx9x6Z%p_ca2m3VUxK&Iie03)pzw$UNSkEbb$l ztQ%j0+F^X&w4Q#N|Gt_I{v0$p3@TVh0@><``rjcN2>;`Dz z`tHj2pX5-A3%&JYJgLrO`<~>Fxb=ruwPjx34H~un;!|1|^ygy&)mi^-4EYf(?h}M< zC|rDxxy1lz=7y#ER|QLRb)bnGKISAdUvY&RZXExH<6kQN1a{gue?Qe(^cVCPT4m$D z6a(gA6wi?xFV9F2Ed6K&?X>a!5G%oQ7OhA0rWy|@4l#ZQ%1`Z0Z3Big$7(^1H|1{K z&Fo8YZ@y`A+5Jnax!_To)^%Sc?6M*4M|aZ^>uAB!K=Q|)O-HU$o??84&7gxft6rPW z_Rn>p)i>*$uF2f`4%BC}aoY~eXYNDWZ#H%5&8$!3th7034vib*^`|;AeRI)dT37V% zKz=dXJmVnw8TN@3?@61N>JMWcM&mlNdDTT_`yRW%ew)v=E@k^is#Bhu-%eBfAF>r} zxJA-f$o8sq{t>jrW-9wjb~*=k-QwNs8rv%sLWgW=JSmD<+{d@w@_Pa0A;$A21)8|k zbD|CNtUA!ptzk`VneWzv`fY9YcoB2+me2`Xi^Y4B*k0UMwc9$srV`(y_QUSBb%}RV z(O&K_7HYqB#aN0P_`{j<%xmi*HQFyY9(_pRTi?%Q|HwTl-iL0}&e<#M($Teu*;*Uj%aOLc|@r{PaA{RZ#!6<+M)kI$`6-q?|YgtSE6;kz1^vm zpJ1uvU-R-G;75}WF zb@Sf-w(R?4rN4obc39kPF4{|Lf}oB&JRhV9meXcJt#=I6$z%Izf2ik<(Y@v|2hnlB zc&G8~-Gb$6SD*nqJ(p8n!FSyzKtpymf57o9B^QIucb=N$BJ6VGGf?fF7rkdQCy_rw zcV3H)XKt{`LnMv9k+T?QkSc>GHF@3hM%i^hfheW7)9*p)Sm$167-2-e@# zqfH-SmkX$WlU;Kbar{f0o`E0kdj6pe+mi~Qy1Ui;?PHc&K<#$7?5@S!hSYfXAm#Tf zBtMEvhuy;~lnA?|uL(`w{l?)dbIV%LfIUr(6@P`&y1MUaz34jI|5yk0+LM2j>#1BV zADp&lH)4rJG=BFpa}t&$mpaztV$XhrP*}FWK%#^~PjxgL#zK=&#LoXwcp^g_Jk&@018= z@ZN1@znA1s+gt53(yz^ST}P_Giu`|cN@-S_)tR$&f)0(IV> zW?;xX^KavzEe=+!!u?CNT7q2<>ee%6yOtR?+kLQOQlwzXbv@MWVE^eo zn58XHtAkT7I55B11hqXlUB`=g>m;b%!5K@Ge0{e7yz<}<`^myC=WK(f9o(hDETsj2 ztq(;FxhcVaL2u(j0*Yz#4eg?GK zvDAr!n2Q=hwT@-^LTLZSwEp#v<(uqgju`}Pe(dm#Va${Dp-IQ9yixLR0Oe7W3zyH``#rPR7m!xODzdoh1% z4z)SaVe?03-GR{96Vu-;V|JwDm+OhmOCB@7xC%8rv85)*n`A@vKmEi3TOO~Rm=7*G zak_dDx3{77^g8j%i1HHS9bOq4aZfC+^)vLNE zy`L!lYHJ9#I2mPa!uF8wP}7r%OF{)pb80{nPY!&joG+}W`E)ut@@>Eu)| z#lO!RgLO~N9;FS%_=>Ska=^)Z`?-JVFy*!HDbHh6H?W?wso%I$i6+Cjef1I0`=^>_ zpI|ni_-}oxi)&xO(hGm6+o}8r&NsP@23Y0Pj$jYAA9x6@e`@CfiX-%Y`Vutsbd{*F z%*SR!Yo4}?3t(P54eEY+se`iq?a3d%o!e?;bQi|FgQW6gOx;aSAm0tVg!GV0qki zsOQzRGqZAE?0vx00iRWwT6Z(+h1^zhryZDyZ#+e#yaXPwN78zOebVvL0!1V5bXP zD=YqZ@eZ7G;q=u8qP^6r9W>~|yB)NSw7#_d9v4-wP#whj4Wjrmy4XqU4%?qqh3a1H zA!jqs>;nzG*em&W<|kC&ye`h~T*Ca4*4OHi*2;M1om3A@F4=2P++lw?ln+st+H`Iy zSa$0G^}Cdl!2Xv93#fk-E4JegvVHv@&>vSCjL%>m?gkxmrTCyyFP5l+ z1FkIosEp5owhOrOvg8oAza9b&xvJYBojLv^)cmUcn@P+X(WhwQG`(YYa5szveUc>Ts|j$cVX7u@yw{r40n z=+Dv#+Wto3O{HEr(7M>&$PS}8gx!1_w8xE3AHOnNk$-C5*lOQbuw1(tw9`%7KS~5k zT_`T1Z-)6d5-bm*{0h3+OI#PCzq!=D+098CsE&d6(7d8=&Qq}yEVsJ|RlRw^iPi=7 z5#*Q9o0m4-VXmkG4ZC@>k}dP#$54ZtUpC$qEayf-Rd0TMPkD*$eaIi?H@~&ue3aVI zcE-0%w$Z#`KSJw}erwdl7tAXMKr7sumzF134qgT|yEXrLKeiVvg+|}n9nzCo+;_6R z?U-Lnuxwxgop*b1)mLn9O!40K_Jn8enNLx>=V z59Y5{(B^j!i2DYZ|MV7M(|Z<+XF$Orv>rkCmaQ2nSk_q!^}L_(=_YgMrcm$uBUP03 zaijVYb$@(!%42N5k?Mo*{V9v-bBw2Pb7rSiQ^? zEN!55sQe)6EyXSD_BEmQ4?2qHzTkpkV9f{9qj-OEje20O2e+On@sQXNT;=Vm2WCTc9u9k{Cs?jP>!T6+r@}{WdNT#fL&-0VA9)`2XZt{E zr}-%MI@dEPcRM)z(Qk8=^Nmv!-}N3fS)R}BKW>56epK>BjXBr{YW?W)oW;yj$e%8c zZoOW>yqMZ2JT^E%^ML>KDIU`wXQ_2!d$-fjxX10qbpgh!HwE0_@#3O7Y`;ozxBE%O zK+0=upFwdN`oyMm5!*Y@g9bjaQ&aqNoZ`&n$(XT~*;u3F^!I`VzG7lk=w6n5Wa{4W2v@?-64AJY8_DCx0v%BJ8pw#nH*9RrJG{ zBT}&&lcx@~{RB%}P~YUBrvaNdo}_t)@p{emIX<7v+(4+YE76#rYE7LUEl zoJ(jr*CUdLN(CBBHJ!m`l!+R4{{aK^0>|ZJTCD`{_e|qnW?8Uy&&}Spw-4-mV zg+m>m758n=>{}J;^la(i!Gh&+v>(f7E6h25 z{d)_R?dC$Ao`=>_{I!|lJMDSnCR`sS?{31L-gpkTPyG(9`FzOiY0UYPpq|fXt6vr@ z?WO%WK3_BT0^41vKG;3qS%>dh{m9??FDloi^C0YRZ!lErh3@!u%!VDIt6s#k;e3-vMu8JvOjh2nlk2|)S9-Ce z^BU1!&h7=R|6;9jeJzXcb?d*l){p##{%h@pdcU~U>Nn;l#n6^79%ouH=hlXLzW8cL zd5QL?+d^Ic$WyDqJi7!M{Kxd)l=>*Y20Q-od;Tf5hu4I<{BindOXdigzu_Nu2SKR6 z`U9YrFS~cAxC9Sc3ypj^@wO6AYD2&wFXz5QUXgu2`APqk?@?ZVsWYut;H%Cf=r{)Z z$9!nOs~v^pcdTDMn%}rrUlvzj`^|b#r`KsO$>AA+yBezZ-X~{2^P%-ntM~qk z9y4F=3^jV6Wp#(SN=0bc`wqACnfGZ!Bi~;et@z_@2-xENw{9JTUAAukb^cJ(^{1%KT(6|HR9D?UHTG&P>~a+Ccgv>^@d1LR#ciM|p9(FS zFlT&$*7-E{ZVB_F+femS(_P(|t5g0tep+{Ro?v-U9@O~L^_7(O@Q--!Q}5HqPRw$p z%J_W7XBFl9`BE#&JD1NPLu0x9hsDsvpErCu%)GNJ)avuo#UGgq4?!D#sc1}o#r%Wo zKr4T-v7%B(CqP<+1*00;wSDH$EKB2m1 z{!RCu5^tdt-`d{{;!U}It5#6;Z)Q7a9nhb+ZnpZ?`zXh&JbE2Icm9@tZzbE$y@gtT zoBmpf=SP(1t-f8UKz_&eyC|R5eD8cbn|U<(DeC*UHz%1_(mGB1KIhIL<_A;<-M*iG z)K{?FlG^2de`GL%?XBiRU4Llrea^gK8#M8U^;uds?C-!msLGFCH`SP*w}aOB(J$hR zV7X2NH2BA~@D_rlgEWtzAM++sKiEDg6Kels!yRRQAv3}HKlT~wu)S9=sOOJ&{@s~N MJ)usLJaPH|1GruG>Hq)$ literal 72692 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 -`&J00eE#^;D5Gu^w>3|W+M>GbQ5 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 diff --git a/luci-app-tachyon/po/ru/tachyon.po b/luci-app-tachyon/po/ru/tachyon.po index fb4cb479..22254200 100644 --- a/luci-app-tachyon/po/ru/tachyon.po +++ b/luci-app-tachyon/po/ru/tachyon.po @@ -5146,3 +5146,16 @@ msgstr "Не удалось автоматически применить стр msgid "History cleared" msgstr "История очищена" + +msgid "Restrict LAN access for specific users" +msgstr "Ограничить доступ к локальной сети для отдельных пользователей" + +msgid "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode." +msgstr "Блокирует доступ к приватным/локальным IP-адресам (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 и др.) для указанных пользователей перед применением режима маршрутизации." + +msgid "Restricted users (auth_user)" +msgstr "Изолированные пользователи (auth_user)" + +msgid "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound." +msgstr "Имена пользователей (например, из пользователей VLESS/Trojan/SS/JSON inbound), которым запрещен доступ к подсетям LAN. Оставьте пустым, чтобы ограничить всех пользователей данного inbound." + diff --git a/luci-app-tachyon/po/ru/tachyon.ru.lmo b/luci-app-tachyon/po/ru/tachyon.ru.lmo index bc0283e53d64405c3b56c1b4a6abc441b0d18d5c..66a100c601076c97adac2c2080a678c1d288b9fe 100644 GIT binary patch delta 41720 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 diff --git a/luci-app-tachyon/po/templates/tachyon.pot b/luci-app-tachyon/po/templates/tachyon.pot index 1cef5033..872c36ba 100644 --- a/luci-app-tachyon/po/templates/tachyon.pot +++ b/luci-app-tachyon/po/templates/tachyon.pot @@ -7686,3 +7686,20 @@ msgstr "" #: src/tachyon/tabs/diagnostic/partials/renderStrategyFuzzerModal.ts msgid "History cleared" msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js +msgid "Restrict LAN access for specific users" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js +msgid "Blocks access to private/LAN IP addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, etc.) for selected users before applying routing mode." +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js +msgid "Restricted users (auth_user)" +msgstr "" + +#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/server.js +msgid "User names (e.g. from VLESS/Trojan/SS/JSON inbound users) that are forbidden from reaching LAN subnets. Leave empty to restrict all users on this inbound." +msgstr "" + diff --git a/tachyon/files/etc/config/tachyon b/tachyon/files/etc/config/tachyon index 822f8ff5..ae917ae7 100644 --- a/tachyon/files/etc/config/tachyon +++ b/tachyon/files/etc/config/tachyon @@ -173,6 +173,10 @@ config settings 'settings' # option reality_short_id '5a' # option reality_max_time_difference '1m' # option transport 'tcp' +# # Restrict LAN / private network access for specific guest users: +# #option isolate_lan_for_users '1' +# #list isolated_users 'friend-1' +# #list isolated_users 'friend-2' # # sing-box-extended only: # #option transport 'xhttp' # #option transport_path '/xhttp' diff --git a/tachyon/files/usr/lib/singbox/generator_routes.uc b/tachyon/files/usr/lib/singbox/generator_routes.uc index 4c6c481e..80f8b277 100644 --- a/tachyon/files/usr/lib/singbox/generator_routes.uc +++ b/tachyon/files/usr/lib/singbox/generator_routes.uc @@ -1548,6 +1548,40 @@ function add_server_routes(config, servers, sections) { runtime_servers.add_sniff_rule(config, server); let inbound = runtime_constants.server_inbound_tag(server[".name"]); + + let isolate_lan = bool_option(server, "isolate_lan_for_users", false) || bool_option(server, "block_private_for_users", false); + let isolated_users = list_option(server, "isolated_users"); + if (length(isolated_users) == 0) + isolated_users = list_option(server, "blocked_users"); + + if (isolate_lan) { + let isolate_rule = { + action: "reject", + inbound: inbound, + ip_is_private: true + }; + if (length(isolated_users) > 0) + isolate_rule.auth_user = isolated_users; + let isolated_subnets = list_option(server, "isolated_subnets"); + if (length(isolated_subnets) > 0) + isolate_rule.ip_cidr = isolated_subnets; + push(config.route.rules, isolate_rule); + } + + let custom_rules = list_option(server, "custom_route_rules"); + if (length(custom_rules) == 0) + custom_rules = list_option(server, "custom_rules_json"); + for (let rule_str in custom_rules) { + try { + let r = json(rule_str); + if (type(r) == "object") { + if (!r.inbound) + r.inbound = inbound; + push(config.route.rules, r); + } + } catch(e) {} + } + let routing_mode = option(server, "routing_mode", "rules"); if (routing_mode == "rules") { runtime_servers.clone_rules_for_inbound( diff --git a/tests/server_isolated_users.sh b/tests/server_isolated_users.sh new file mode 100644 index 00000000..d48f0ac3 --- /dev/null +++ b/tests/server_isolated_users.sh @@ -0,0 +1,140 @@ +#!/usr/bin/env bash +set -eo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +TACHYON_LIB="${TACHYON_LIB:-$ROOT_DIR/tachyon/files/usr/lib}" +if [ ! -d "$TACHYON_LIB" ]; then + TACHYON_LIB="/usr/lib/tachyon" +fi +WORK_DIR="$(mktemp -d)" + +cleanup() { + rm -rf "$WORK_DIR" +} +trap cleanup EXIT + +fail() { + printf 'FAIL: %s\n' "$1" >&2 + exit 1 +} + +fixture_with_server() { + cat >"$WORK_DIR/fixture.json" <