2017年11月4日土曜日

QNAP の SSH のアクセス元制限の不完全な仕様

OpenVPN で実家の LAN につなぎ、VPN 経由で NAS(QNAP)にアクセスできるようになったので、ネットワークセキュリティを強化すべく、NAS の SSH にアクセス元制限を付けた。/root/.ssh/authorized_keys の公開鍵リストに、from="(ネットワークアドレス)" のオプション設定を追記したわけだ。

ところで、元々ブリッジモードの VPN 設定だったのを、ルーターモードに変更したため、アクセス元のクライアント機のネットワークアドレス(192.168.11.0/24)は NAS 側のネットワークアドレス(192.168.0.0/24)と異なるものとなった。そのため、from にカンマ(「,」)区切りでネットワークアドレスを列挙する必要がある。

from="192.168.0.0/24,192.168.11.0/24" ssh-rsa AAAAB3N...

しかし、どうやら QNAP の SSHd では仕様が不完全なようで、from として列挙したものを与えると、正常に動作しない(すべてのネットワークからアクセスできなくなった。仕方なく、一時的に telnet を使って復旧作業をする羽目になった)。

つまり、authorized_keys の from 設定としては列挙で設定することはできず、一種類の設定しか与えることができないのである。

簡単に思い浮ぶのは、VPN をルーターモードで運用するのをやめて、ブリッジモードに戻すことである。そうすれば、クライアント機のネットワークアドレスは NAS 側のネットワークアドレスと同一なので、from のエントリーは一種類で済む。

それでもせっかくルーターモードにしたのにブリッジに戻すのも何となく嫌だったので、(専門家でもないのに独学でネットワークエンジニアの資格をパスしたという“昔取った杵柄”を活用できたのか)ポク・ポク・ポク・チーンと思い付いたのが、ネットワークアドレスに、192.168.0.0/23 という値を使う方法。23 ビットというネットマスクを使う奇策である。この設定は、192.168.0.0 〜 192.168.1.255 の範囲の IP を意味するネットワークアドレスである。

from="192.168.0.0/23" ssh-rsa AAAAB3N...

従って、OpenVPN の設定においても、ルーターモードで使うネットワークアドレスを、192.168.11.0/24 から、192.168.1.0/24 に変更し、さらに、VPN サーバーや NAS の所属するネットワーク(192.168.0.0/24)側のゲートウェイとなるルーターの静的ルーティングの設定に 192.168.1.0/24 へのゲートウェイが VPN サーバーであることを設定し直す。

これで NAS の SSHd を再起動し、VPN に接続し直し、ssh がログイン可能であることを確認できた。ただし、ssh そのものと scp は SSHd の再起動で上手く行ったが、sftp は SSHd の再起動では駄目で(おそらく独立した別個の daemon なのだろう)、NAS 自体を再起動する羽目になった(もしかしたら、管理画面の SFTP を有効にするを OFF(適用)→ ON(適用)するだけで良かったかもしれない)。


※ちなみに、僕の環境では QNAP の NFS の(共有フォルダ)設定でもアクセス制限を行っていたので、ここの設定も 192.168.0.0/23 に直した。

0 件のコメント:

コメントを投稿