KUSONEKOの見る世界

strongSwan 5.9.8 にバージョンアップ

放置していたstrongSwanのバージョンアップをしました。 環境: CentOS Stream 8 strongSwan 5.9.5 → 5.9.8

Free Wi-Fi で VPN通信ができない場合の対処法

某ファミレスにて、無料で使用できるWi-Fiに接続して、VPN接続し、リモート作業をしようとした。 以前までは使えていたはずなのに、なぜか使えなくなっている。 具体的な状況は以下のとおり。 VPN接続(IKEv2)は可能  VPN接続後、SSHでサーバに接続しようしても、シェルが出てこない VPN接続後、リモートデスクトップすると繋がっているが、画面が黒いまま 以上から、VPN接続後のTCPセッションは張れるが、その後の通信が出来ていない、サイズの小さいパケットは通るが、大きいパケットが通らないと推察される。 つまり、MTUが小さい可能性がある。 この状況での対処方法を記載する。

IPsec VPN AES-CBC/GCM/ChaCha20 の実効速度を測定してみた

 以前、 AES-GCMのパフォーマンスが高い という記事を書きましたが、実際の通信速度はどれほどなのでしょうか。 今回は、AES-CBC、AES-GCM、ChaCha20-Poly1305 のそれぞれでIPsecを張った状態で、iperf3を使い測定しました。

RDPで最近知ったこと - MTUと3-way UDP handshake

 WindowsのリモートデスクトップのプロトコルであるRDPを調べていて知ったことを書いておこうと思う。 知ることになったきっかけは、VPN接続の際にリモートデスクトップでUDP通信を行うと、データサイズはどうなるのかという疑問からだった。 私はVPNのMTUについては五月蠅い方なのだが、TCPはSYNの際にiptablesやnftablesでMSSを書き換えていたこともあり、ほとんどの通信は最適化されるためあまり気にしていなかった。 しかし最近リモートデスクトップがもっと快適にならないかと考え、UDPについて見直そうと考えた。

IPsec VPN 高セキュリティ&爆速? AES-GCM + ECP に変更した

 strongSwan 5.9.0が公開されていますが、更新内容にESPのアルゴリズムAES-GCMの優先度を上げたという記載がありました。 今までAES-CBCとそんなに変わらないだろうと無視してきましたが、調べてみるとパフォーマンスが高いことが分かり、Windowsでも使用する方法があること、更に鍵交換方式にECPを使用することで、ECDSA証明書を使えることが判明し、(私の狭い)世界が一気に広がりました。  これはもうAES-GCMとECPを使用するしかないと思い、色々と調べ変更しました。 この記事では調べた結果と設定方法をまとめます。

iPhoneでPort Forwardingを使って疑似VPN BOX化

iPhoneでVPN接続してインターネット共有を有効にしても、iPhoneに接続したPCからはiPhoneのVPN回線を利用できません。 PCでVPN接続をしたい場合は、PC上でVPN設定をする必要があります。 事情によりPCにVPN設定できない場合でも、iPhoneでSSH Port Forwardingを組み合わせることで疑似的にiPhoneのVPN回線を使うことができます。 SSHを使用する理由は、ただのPort ForwardingだけができるiOSアプリが見つからなかったためです。 今回は、VPN接続先のネットワーク上のWindowsにリモートデスクトップ接続を行う例を記載します。 言わば、RDP over SSH over VPNです。

CentOS 8 で nftables を設定してみた

CentOS 8インストール後、ずっと後回しにしていたnftablesに挑戦しました。 以前設定していた国内(日本のIP)からのみ許可するsetの作成、VPN通信のTCP SynのMSSサイズを変更する設定も行っています。

iPhone でVPN接続の時だけプロキシを使用するようにした

以下の記事にて、4Gでプロキシサーバを使う方法を書きました。 【初めてのiPhone】プロキシサーバを使うAPNの設定方法 iPhoneの4G接続でプロキシサーバを使用する方法を記載しています。 kusoneko.blogspot.com こちらの記事ではプロファイルを毎回インストールし直すことで、プロキシサーバの使用/不使用を切り替えることを書いていますが、 今回は通常時にプロキシサーバを使わず、VPN接続した時だけプロキシサーバを使う方法です。 VPNのプロファイルの中には、プロキシ使用の有無を設定する箇所があり、これを使用すると、若干条件はありますがVPN接続時にプロキシサーバを経由するようになります。 この記事では、既にプロキシサーバとVPN接続環境を整えている前提での話となります。

strongSwan と HG100R-02JG をVPN接続

実家に帰省した際、実家のブロードバンドルータにログインしてみると、VPN機能があることに気が付きました。 実家のPCを、自宅のサーバに 常時VPN接続 させることには成功していますが、 ブロードバンドルータ側で常時接続していた方が良いのでは無いかと思い、試行錯誤しました。 このブロードバンドルータは HUMAX HG100R-02JG というもので、ケーブルテレビのJ:COMの機器です。 インターネットに情報がありませんでしたが、なんとかVPN接続に成功し通信が可能になりましたで、情報を残しておきます。

iPhoneで strongSwan (IPsec VPN) に接続する (Machine Certificates)

最近、iPhoneでクライアント証明書認証に再挑戦した所、成功しましたのでメモを残しておきます。 今まで出来なかったのは、コメントアウトをはずし忘れる凡ミスでした…。 というわけで、 IKEv2 で使えるクライアント証明書 も更新しています。 IKEv2で接続できた各OSの認証方式とクライアント証明書 各OSでIKEv2のVPN接続で使用できた認証方式と証明書と内容をまとめました。 kusoneko.blogspot.com ECDSA証明書でも問題なく証明書認証できるiPhoneは凄い!と感じました。 Windowsでも出来るならやり方を知りたいです。 ⇒WindowsでもECPを使用することで可能でした。 IPsec VPN 高セキュリティ&爆速? AES-GCM + ECP に変更した IPsecをAES-GCMとECPを使うよう変更しました。作成・設定方法を記載しました。セキュリティ面、パフォーマンス面ともに良いとのこと。 kusoneko.blogspot.com 環境 iPhone7 (iOS10.3.3) strongSwan 5.6.2

VPN通信のMTU, MSSを指定する方法

IPsecの最適MTUについて本気出して考えてみた VPNの最適なMTUはいくつなのかを調査・計算しました。計算機も作成しています。 kusoneko.blogspot.com 上記の記事でVPNの最適MTUとMSSを導きましたが、どのようにその値で通信させるかを考えます。 方法としては、以下の3つです。 netshで反映させる(Windowsのみ) レジストリ変更で反映させる(Windowsのみ) iptablesのmangleやnftablesでTCPハンドシェイクのMSS値を書き換える 1と2については、Windowsでしかできないことですが、TCP以外のUDPなどにも適用されます。 3については、AndroidやiPhoneにも適用させられますが、TCPのみとなります。 しかし、実際の通信はTCPがほとんどあり、リモートデスクトップのUDP通信は、1300バイト程度なので実害は無いでしょう。 RDPで最近知ったこと - MTUと3-way UDP handshake WIndowsのRDPについて調べていて分かったことを記載しました。 kusoneko.blogspot.com

IPsecの最適MTUについて本気出して考えてみた

外出先からVPNで自宅サーバ(strongSwan)に接続していますが、オーバーヘッドや暗号化遅延などでどうしても遅くなってしまいます。 WindowsのVPNインターフェースのMTUは、自動で物理インターフェースのMTUから-100の値を設定されますが、必ずしも最適な値ではありません。 しかしMTUを調整し、一度で送れるデータ量を増やしたり、無駄なフラグメントを抑えたりする事で、通信効率を上げることができます。 今回、IPsecの最適MTU、MSSをしっかり調査しましたので結果を記載致します。

自動でVPN接続と接続維持させる方法 Windows7以降

実家のPCが起動時に自宅のVPNサーバに接続するように設定したときのメモです。 また、VPN接続維持のため、Powershellを使用しますが、参考にしたサイトのままだとできなかったため修正内容も記載しておきます。

IKEv2で接続できた各OSの認証方式とクライアント証明書

長いことstrongSwanでIKEv2を使っていますが、サーバを再構築したり、Windowsのアップデートや再インストールで繋がらなくなるということがありました。 また、いつからかクライアント証明書の認証ができず、MSCHAPv2で妥協していました。 今回、実家のPCが自動でIPsec VPN接続するように試行錯誤した結果、原因が見えてきましたのでまとめることにしました。 余談ですが、実家のPCをVPN接続させたいのは、自宅のPCから実家のPCにリモートで入り、親のサポートをするためです。 なお、MSCHAPv2ではユーザ名とパスワードの入力が必要になり、実家の親に負担が掛かるため、認証画面のでないクライアント証明書による接続をする必要がありました。

iPhoneで strongSwan (IPsec VPN) に接続する (EAP-MSCHAPv2)

iPhone7 (iOS10.2) で、strongSwan 5.5.1 への接続が成功したので、記載しておきます。 接続方式としては、IKEv2 EAP-MSCHAPv2です。 strongSwanのインストールや証明書の作成については記載しません。