Vpn tiktai outbound trafikui: Skirtumas tarp puslapio versijų
Jump to navigation
Jump to search
(Naujas puslapis: Problema kai serveryje norime įdiegti VPN, o jis užmaskuoja visą srautą ir paslepia tiek išeinančius tiek įeinančius srautus. Ką daryti jeigu serverį norime vistiek pas...) |
|||
(nerodoma 2 tarpinės versijos, sukurtos to paties naudotojo) | |||
12 eilutė: | 12 eilutė: | ||
* y.y.y.y/y serverio ip adreso subnetas | * y.y.y.y/y serverio ip adreso subnetas | ||
* ethX serverio išorinis tinklo interfeisas | * ethX serverio išorinis tinklo interfeisas | ||
− | * serverio standartinis šliuzas, galima sužinoti parašę '''ip route show''' | + | * z.z.z.z serverio standartinis šliuzas, galima sužinoti parašę '''ip route show''' |
+ | |||
+ | === tam tikrų ip pasiekimas be VPN === | ||
+ | ip route add IP_KURI_NORIME_PASIEKTI via z.z.z.z dev ethX | ||
+ | |||
+ | Jeigu norime praleisti tik tam tikrus portus mums reiks daryti taip: | ||
+ | iptables -A INPUT -d x.x.x.x -p tcp --dport 22 -j ACCEPT | ||
+ | iptables -A INPUT -d x.x.x.x -j DROP | ||
Arba į '''/etc/network/interfaces''' prirašome | Arba į '''/etc/network/interfaces''' prirašome | ||
18 eilutė: | 25 eilutė: | ||
up ip route add table 128 to y.y.y.y/y dev ethX | up ip route add table 128 to y.y.y.y/y dev ethX | ||
up ip route add table 128 default via z.z.z.z | up ip route add table 128 default via z.z.z.z | ||
+ | |||
+ | === Helper script === | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | #!/bin/bash | ||
+ | |||
+ | DEFAULT_GW=z.z.z.z | ||
+ | EXT_IF=ethX | ||
+ | EXT_IP=x.x.x.x | ||
+ | EXT_SUB=y.y.y.y/y | ||
+ | |||
+ | IP_ACTION=add | ||
+ | |||
+ | if [[ $1 == "stop" ]]; then | ||
+ | IP_ACTION=del | ||
+ | fi | ||
+ | |||
+ | ip rule $IP_ACTION from $EXT_IP table 128 | ||
+ | ip route $IP_ACTION table 128 to $EXT_SUB dev $EXT_IF | ||
+ | ip route $IP_ACTION table 128 default via $DEFAULT_GW | ||
+ | </syntaxhighlight> | ||
{{Template:Distributions}} | {{Template:Distributions}} | ||
[[Category:Tinklas]] | [[Category:Tinklas]] |
Dabartinė 16:44, 17 sausio 2020 versija
Problema kai serveryje norime įdiegti VPN, o jis užmaskuoja visą srautą ir paslepia tiek išeinančius tiek įeinančius srautus. Ką daryti jeigu serverį norime vistiek pasiekti per jo išorinį IP (be vpn), o iš serverio daryti tinklo sesijas tiktai su vpn? VPN provaideris dažnai siūlo pirkti brangius sprendimus, tokius kaip residential ip ar port forwardus... Tokiu atveju mums reikia nustatyti, kad srautas ateinantis iš išorės kreiptūsi ne per VPN bet per išorinio tinklo interfeiso šliuzą.
Linux wordaround[keisti]
ip rule add from x.x.x.x table 128 ip route add table 128 to y.y.y.y/y dev ethX ip route add table 128 default via z.z.z.z
- x.x.x.x išorinis serverio ip
- y.y.y.y/y serverio ip adreso subnetas
- ethX serverio išorinis tinklo interfeisas
- z.z.z.z serverio standartinis šliuzas, galima sužinoti parašę ip route show
tam tikrų ip pasiekimas be VPN[keisti]
ip route add IP_KURI_NORIME_PASIEKTI via z.z.z.z dev ethX
Jeigu norime praleisti tik tam tikrus portus mums reiks daryti taip:
iptables -A INPUT -d x.x.x.x -p tcp --dport 22 -j ACCEPT iptables -A INPUT -d x.x.x.x -j DROP
Arba į /etc/network/interfaces prirašome
up ip rule add from x.x.x.x table 128 up ip route add table 128 to y.y.y.y/y dev ethX up ip route add table 128 default via z.z.z.z
Helper script[keisti]
#!/bin/bash
DEFAULT_GW=z.z.z.z
EXT_IF=ethX
EXT_IP=x.x.x.x
EXT_SUB=y.y.y.y/y
IP_ACTION=add
if [[ $1 == "stop" ]]; then
IP_ACTION=del
fi
ip rule $IP_ACTION from $EXT_IP table 128
ip route $IP_ACTION table 128 to $EXT_SUB dev $EXT_IF
ip route $IP_ACTION table 128 default via $DEFAULT_GW