こんにちは、Habr!
最近、OpenVPNを介してホームネットワークのすべてのユーザーにインターネットアクセスを提供する必要がありました。 当初は、Linux
Centos 6を搭載した古代の
IBM NetVista 6646-Q1Gがこれらの目的で使用されていました。
彼はこの仕事にうまく対処しましたが、彼らが言うように、完璧に制限はありません。 もっとコンパクトなものに置き換えたかったのです。 当初、選択は
Raspberry Pi Model Bで行われましたが、現在のサーバーが実行する必要のあるタスクを正常に処理したため、50ドルの価格は恥ずかしいものでした。 私は代替案を模索し始めました。 そして、私には思えたように、理想的なソリューション-OpenVPNクライアントを含むルーター+
DD-WRTファームウェアが見つかりました。 次は、ルーターを選択する番です。
TP-Link WR841Nに決めました 。
データベース検索は、DD-WRTがそれをサポートすることを示しました。
文字通り同じ日に、デバイスを購入してステッチしました。 しかし、ここで私は失望しました-[VPN]タブのWebインターフェイスには、OpenVPNクライアントを構成するオプションがありませんでした。 Googleはこの不正の理由をすぐに発見しました:「
OpenVPNは少なくとも8MBのフラッシュを備えたユニットでのみ利用可能です(Broadcom VPNビルドを除く) 」。
賢明なこととして、
契約書を注意深く読んでください。
さて、それはさらに興味深いものです。 代替ファームウェアをすばやく検索した結果、
OpenWRTが見つかりました 。 DD-WRTとの違いは、優れたリポジトリを備えた
opkgパッケージ
マネージャーと、ニーズに合わせてシステムを柔軟に構成できることです。 実際、これは非常に重いライトバージョンのLinuxです。
OpenWRTでは、OpenVPNの設定はそのままでは機能しませんでした-問題はDD-WRTと同じです。 しかし、このファームウェアのアーキテクチャのおかげで、すべてがうまくいくという希望がありました。 tmpfsにかなりの空き領域が見つかりました。
root@OpenWrt:~
名前が示すように、/ tmpにルーターのRAMがマウントされます。 数分間のグーグル検索で、この問題の解決策が
記載された
ページに移動しました。
残念ながら、ルートファイルシステムにkmod-tun、liblzo、libopensslの各パッケージをインストールした後、スペースがほとんど残っていないため、私には向いていませんでした。 そのため、このマニュアルを少し現代化することが決定されました。 それは私が得たものです。
1. sshを介してルーターに接続し、コマンドを実行します。
opkg update opkg install kmod-tun zlib liblzo mkdir /etc/openvpn touch /etc/init.d/openvpn chmod +x /etc/init.d/openvpn
2. initスクリプトを編集します。
vi /etc/init.d/openvpn
3.構成ファイル(この場合はmy.conf)、証明書、およびキーを/ etc / openvpnフォルダーにコピーします。
4. openvpnを実行します。
/etc/init.d/openvpn start
すべてがうまくいった場合、ifconfigコマンドを実行すると、新しいtunまたはtapインターフェースが表示されます。 例:
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.54 PtP:10.8.0.53 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:100558 errors:0 dropped:0 overruns:0 frame:0 TX packets:78362 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:85115045 (81.1 MiB) TX bytes:16184384 (15.4 MiB
接続が確立されていない場合は、次のコマンドを使用してエラーの検出を試みることができます。
logread -f
次に、VPNを介したクライアントトラフィックを許可するために、ネットワークインターフェイスを追加し、ファイアウォールを構成する必要があります。 これは、Webインターフェイスを使用して実行できます。 以下のスクリーンショットの例:


このソリューションは正常にテストされており、TP-Link WR841Nルーターで動作します。また、4メガバイトROMを
搭載した他の
サポートされているOpenWRTデバイスにも適してい
ます 。