dd-wrtでOpenVPN (6)

サーバ側(dd-wrt)の設定
Services > VPNの設定でOpenVPNの設定を入れていく。
項目
OpenVPNEnable
CVE-2019-14899 MitigationEnable
Start TypeWAN Up
Inbound Firewall on TUN(no)
Configure asGUI(server)
Server modeRouter(TUN)
Network10.10.1.0
Netmask255.255.255.0
Port1194
Tunnel Protocoludp
Encryption CipherAES-256-CBC
Has AlgorithmSHA256
First Data CipherAES-256-CBC
Second Data CipherAES-256-CBC
Third Data CipherAES-256-CBC
Advanced OptionDisable
Public Server Key(server3.key)
DH PEM(dh2048.pem)
Additional Config
TLS Key ChoiceTLS Auth
TLS Key
Certificate Revoke List

クライアント側の設定(ubuntu)
参考:https://qiita.com/noraworld/items/05658055446c41482cce
$ sudo apt-get -y install network-manager-openvpn-gnome

GUIで設定できる。(設定> Network > (+) VPN)
項目
Gatewaydd-wrtIPアドレス
Authentication TypeCertificates (TLS)
User Certificateclient1.crt
CA Certificateca.crt
Private Keyclient1.key
Private Key Password
Advanced項目(変更した項目)
項目
Use LZO data compressiony
CipherAES-256-CBC
CipherAES-256-CBC
Use custom size of cipher key256
HMAC AuthenticationSHA-256
(つづく)

dd-wrtでOpenVPN (5)

まず証明書と鍵を作成する。dd-wrt上では作業できない(しにくい)ので別マシン(VMPlayer上)のUbuntuを使う。 参考 https://forum.dd-wrt.com/phpBB2/viewtopic.php?p=1157344 https://qiita.com/MoriKen/items/50d226e8c6395487c0a6 簡易認証局を使うのでパッケージをインストール # apt-get install easy-rsa # make-cadir /tmp/openvpn # cd /tmp/openvpn # vi ./vars # source ./vars varsの内容としてCOUNTRY, PROVINCE, CITY, ORG, EMAIL, OUを自分に合わせた値にする。 認証局証明書・認証鍵を作成 # ./pkitool --initca ca.crtとca.keyができる サーバ関連 DHパラメータ # ./build-dh dh2048.pemができる VPNサーバ証明書・認証鍵作成 # ./pkitool --server server3 server3.crt, server3.csr, server3.keyができる クライアント関連 クライアント証明書・認証鍵作成 # source ./vars # ./pkitool client1 cleint1,.crt, client1.csr, client1.keyができる 後はeasy-rsaはいらない、と書いてある記事も見つかるが、維持しておかないと証明書失効リスト(CRL)が作れない。それかあらかじめ作っておく。 (つづく)

dd-wrtでOpenVPN (4)

LANセグメントの追加拡張はMR3020でやったのですんなり

https://yellow.ap.teacup.com/applet/kentaro/202102/archive?b=5

...のはずだったが上流側からのpingが通らず、半日はまる。調べていくとClient Mode / Router Modeでは(勝手に)iptablesの設定が入って、WiFiインタフェース側からの接続が禁止されている。

Chain INPUT (policy ACCEPT 417 packets, 33609 bytes)

num pkts bytes target prot opt in out source destination

1 0 0 DROP tcp -- eth2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080

2 0 0 DROP tcp -- eth2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

3 0 0 DROP tcp -- eth2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443

4 0 0 DROP tcp -- eth2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:69

5 0 0 DROP tcp -- eth2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

6 0 0 DROP tcp -- eth2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:23

Firewallコマンドで立ち上がり時に設定変更 (一応telnetだけは禁止しておく)

Firewall

iptables -F INPUT

iptables -I INPUT 1 -d 192.168.129.0/24 -i eth2 -p tcp --dport 23 -j logdrop

その他のセキュリティとしてFORWRDチェインに追加する

(つづく)

dd-wrtでOpenVPN (3)

WZR-600DHP2を分解する。下記を見て分解....ツメを折らないように気をつけろと書いてあったが結局折ってしまった。 https://openwrt.org/toh/buffalo/wzr-600dhp2 https://yuuya0x.at.webry.info/201309/article_1.html JTAGにシリアル接続する。 別件で用意してあったFT231X (https://akizukidenshi.com/catalog/g/gK-06894/)を使ってTeratermから接続。 WZR-600DHP2をブートしてしばらくしてctrl-Cを待つ画面でctrl-Cをたたくと、http://192.168.1.1/でmini webが使える。 参考: https://openwrt.org/docs/techref/bootloader/cfe https://yuuya0x.at.webry.info/201309/article_1.html dd-wrtファームを流し込む CFE mini Webで Restore default NVRAM values Firmware Fileとしてhttps://download1.dd-wrt.com/dd-wrtv2/downloads/betas/2021/01-31-2021-r45632/buffalo_wzr-600dhp2/buffalo-wzr-600dhp2-webflash.bin をupload factory-to-dd-wrt.binを選んだらvalidation errorになった。追及せず上のファイルでdd-wrt化した。 あとはClient modeでおうちLANのセグメント追加をして、そこにOpenVPNを動かすことにする。 (つづく)

dd-wrtでOpenVPN (2)

TP-Link MR3020でOpenVPNのメニューが出ないので変だなーと思って調べていくと、メモリ8MB以下の機種ではOpenVPNは動かないらしい。 https://wiki.dd-wrt.com/wiki/index.php/OpenVPN >>> This assumes DD-WRT with OpenVPN is installed on the router. OpenVPN is only available on units with at least 8mb flash ...... <<< しょうがないので安い中古を探しに行き、ワットマンでWZR-600DHP2 (https://www.buffalo.jp/product/detail/wzr-600dhp2.html) を買ってきた。予算1,000円だったが1,628円、まあいいかというところ。 早速dd-wrt化するのだが一筋縄でいかない。ファームアップデートメニューでdd-wrtファームを入れてもチェックが入ってエラーになる。記事がいくつかあって英語版のファームにしないといけないとか、ファームバージョンダウンしないといけないとか書いてある。例えば: https://okoya.seesaa.net/article/459340296.html US版のファームをhttp://buffalo.jp/support_ap/support/products/wzr_600dhp2.htmlからwzr600dhp2-ap-114.zipをダウンロードしてアップデートする。 --> 1.14では隠しメニューがなくなっていて対応できない。 日本語の古いバージョンに戻そうとしたが戻せず... https://www.buffalo.jp/support/download/detail/?dl_contents_id=61644&version=1.12をとってきてアップデートしようとしたがInvalid firmwareになった しょうがないので分解してJTAG経由入れることにする。 (つづく)

dd-wrtでOpenVPN (1)

dd-wrtルータでOpenVPNサーバを立ててみた。

- TP-Link MR3020ではメモリが足りない(8MB以上必要)なのでOpenVPNのメニューがない

- 別のルータを中古屋(ワットマン)で買ってきてdd-wrt化した。WZR-600DHP2

- 認証鍵はUbuntu (16.04)で作成した

- ところどころハマったけど一応LAN内からの接続ができた

- インターネットルータにポートフォワード設定して外から繋ぐのをやる予定

- 外からはWindows10, Linux(Ubuntu), iPhone, Windows XPなどで接続したい

(つづく)