web-dev-qa-db-ja.com

特定のWebサイトのみのMikrotikおよびVPN

私の国のWeb検閲は日ごとに強さを増しています。明白な解決策はVPNを使用することですが、接続が遅くなり、パブリックVPNサービスの無害性は保証されません。

だから私は次の解決策を考えました:

ルーターは従来の方法でほとんどのWebサイトにアクセスしますが、1つの追加のネットワークインターフェイスのふりをする一定のVPN接続を維持します。検閲されたWebサイトの1つにアクセスすると、ルーターはこの仮想インターフェイスを介してトラフィックを渡します。

これはRouterOSで可能ですか?どうやってするか?

私のルーターはRB2011UiAS-2HnD-IN、RouterOS v 6.30.2です。

6
Paul

実行する必要があるコマンドを示すためだけに、PPTP VPNを使用するとします。
PPTPの暗号化は長い間破られているため、より安全なもの(OpenVPNなど)を使用することをお勧めします。原理は、使用するVPN /トンネルテクノロジーに関係なく同じです。

したがって、最初にデフォルトゲートウェイルートを追加せずにVPNを作成します。

/interface pptp-client
add add-default-route=no allow=pap,chap,mschap1,mschap2 connect-to=VPN_SERVER_IP \
dial-on-demand=no disabled=no max-mru=1440 max-mtu=1440 mrru=dis \
name=VPN_NAME password="MY_STRONG_PASSWORD" profile=default-encryption user=USERNAME

次に、VPN経由のデフォルトゲートウェイを新しいルーティングマークvpnで追加して、新しいルーティングテーブルを作成します。これにより、VPN経由でパケットをルーティングできます。

/ip route add dst-address=0.0.0.0/0 distance=1 gateway=VPN_GATEWAY_IP routing-mark=vpn

VPNがダウンしている場合に発信トラフィックをブロックする場合、次のルートはオプションです:

/ip route add dst-address=0.0.0.0/0 type=unreachable distance=2 routing-mark=vpn

また、VPNインターフェース経由で送信されるパケットに対して、いくつかのNAT=を実行する必要があります。

/ip firewall nat add chain=srcnat out-interface=VPN_NAME action=masquerade

次に、目的の宛先IPに一致するmangleルールを追加し、それらに対してmark-routingを実行して、作成したvpnルートテーブルを使用するようにします。

/ip firewall mangle add chain=prerouting dst-address-list=VPN action=mark-routing new-routing-mark=vpn

最後に、VPN経由でルーティングするIPを使用して、ファイアウォールにAddress Listを作成します。

/ip firewall address-list add list=VPN address=1.1.1.1
/ip firewall address-list add list=VPN address=2.2.2.2
/ip firewall address-list add list=VPN address=3.3.3.3
/ip firewall address-list add list=VPN address=4.4.4.4

VPN経由でルーティングするIPの数だけ、最後のルールを必要なだけ繰り返します。

上記のルールは、ルーターの背後にあるVPNなどにアクセスできるユーザーについてのセキュリティを提供しないことに注意してください。ルールをより安全にするために、ルールに適切なソースIPチェックを追加する必要がある場合があります。

また、この方法では、VPNを介してIP全体がルーティングされます。 VPNを介して特定のポート/プロトコルをルーティングする必要がある場合は、必要なものに一致する追加のマングルルールを作成し、それらに対してmark-routingを実行するだけです。

8
Cha0s