2017年10月25日水曜日

SSH の公開鍵認証+IP制限

過去に NAS(QNAP)の SSH の設定を色々いじっている時にも SSH について触れたことがあったが、その時は rsync の環境を構築しようとしていた記事の中で SSH も含めていたため、なぜ SSH 単独の話題ではなかったのかという事情についてまでは忘れていた。その時の本目的はあくまでも NAS を使ったデータのバックアップ環境の確立だったので、SSH 自体は使っても使わなくてもよかったからだ。

その当時においては、当初、VPN から NAS にアクセスして、NFS を使う方策を試みたが、VPN が PPTP を使ったセキュリティ的に脆弱なものであり、SSH によって rsync ができるようになったので、VPN も NFS も忘れていた。ところが、今現在、OpenVPN でセキュリティ的に十分な環境が整い、Mac から VPN 経由で NAS をクラウド的に利用する方法を模索し始めてみると、Samba よりも NFS の方がちゃんと動くし、Windows 抜きで Mac か Linux かで動かすのだから、よりによって(本来 Windows ちゃんと仲良く戯れるための)Samba など使わないに越したことはないのだ。

ともかく、VPN 前提で考えてみると QNAP の SSH のセキュリティも改めてちゃんと見直したくなり、アクセスを LAN からのアクセスに制限できないかと調べてみると、ちゃんと方法があったので、早速そうした。方法はサーバー(QNAP)側 .ssh/authorized_keys のエントリーに、from="192.168.0.0/24" のような形式のオプションを追加することである。次のような感じで:

from="192.168.0.0/24" ssh-rsa AAAAB3...AgRiOf my Ubuntu
from="192.168.0.0/24" ssh-rsa AAAAB3...v17zrd my Macbook

こうすることで、SSH は LAN 内からの接続しか受け付けなくなった。


注 1: VPN 経由での接続

OpenVPN を使ってアクセスする際、ssh admin@192.168.0.1 のように、IP アドレスで NAS にアクセスする必要がある。myqnapcloud.com の方を使うと IP アドレスは当然グローバルアドレスになってしまうので、アクセスを拒絶される。

注 2: 公開鍵の作成

過去記事でも触れたが改めてここでもまとめておく。コマンドは:

ssh-keygen -t rsa -C "作成するキーペアに関するコメント情報"

どちらかというとパスフレーズは使わなくてもよい。

注 3: 公開鍵の QNAP NAS への配置

scp か sftp を使ってアップロードする。QNAP の場合、SSH や scp、sftp でログインした場合のホームは /root である。/share/homes/admin ではない。authorized_keys は /root/.ssh/authorized_keys として配置することになる。GUI の File Station で操作できる相手ではない点に留意する。

注 4: ssh/scp/sftp

ssh と scp/sftp とではポート(以下の例では 50022)の指定の指定方法に大文字小文字の違いがある。

ssh -p 50022 admin@192.168.0.1
scp -P 50022 (ローカルパス) admin@192.168.0.1:(サーバー側のパス)
scp -P 50022 admin@192.168.0.1:(サーバー側のパス) (ローカルパス) 
sftp -P 50022 admin@192.168.0.1

0 件のコメント:

コメントを投稿