私の国のWeb検閲は日ごとに強さを増しています。明白な解決策はVPNを使用することですが、接続が遅くなり、パブリックVPNサービスの無害性は保証されません。
だから私は次の解決策を考えました:
ルーターは従来の方法でほとんどのWebサイトにアクセスしますが、1つの追加のネットワークインターフェイスのふりをする一定のVPN接続を維持します。検閲されたWebサイトの1つにアクセスすると、ルーターはこの仮想インターフェイスを介してトラフィックを渡します。
これはRouterOSで可能ですか?どうやってするか?
私のルーターはRB2011UiAS-2HnD-IN、RouterOS v 6.30.2です。
実行する必要があるコマンドを示すためだけに、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
を実行するだけです。