プログラミングメカブログ

Adults cling to the past, Children want to escape to the future

プログラミングメカブログ

Adults cling to the past, Children want to escape to the future

8月

19

SFTPをセキュアに使いたかった

  • POSTED BY 小谷松 丈樹 IN 調査
  • No Comments

開発環境サーバを構築した

ソースファイル更新をSFTPでアップロードして行う開発環境サーバを構築しました。
「SFTPのアカウントを渡す=SSHアカウントを渡す」なので、渡すのがsudoerユーザじゃないにしろ、
適当にuseraddして使わせるのはセキュアじゃないなと思いました。
よりセキュアに、できる事を絞ったユーザを作る方法を調べました。

目標

ファイルのアップデートしかできないSSHユーザを作成する

実装

SSHログインと操作可能ディレクトリを絞る

そもそも、SSHログイン自体ができなくなれば大体の事ができなくなるので絞ります。

今回の対象となるユーザ contents に対して制限をかける記述です。

  • ChrootDirectory /home/%u
    • ホームディレクトリ /home/contents 以下に閉じ込める
  • ForceCommand internal-sftp
    • SSHを禁止しSFTPのログインのみを受け付ける

で、 service sshd reload でSSHの再起動

権限系の設定

これを

こうじゃ

( ^ω^)
⊃ .. ⊂
  ‘∵
 ‘:’;

シンボリックリンク貼ろうとしたら失敗した

経緯

/var/www/html がドキュメントルートなのに、
/home/contents 以下に出られないよう設定したユーザなので、
ドキュメントルートをいじれない。
そこでシンボリックリンクだ!
という事でやってみたが、失敗しました。

調査

シンボリックリンクは、chrootの上位ディレクトリを参照する事ができません。
シンボリックリンクの正体はショートカットであって、
内部処理的には普通に /var/www/html を見に行くようです。

解決策

↑のリンクで比較されている通り、マウントはネットワークドライブみたいなものなので、
/home/contents 配下にマウントすればOKです。

結果

色々やったけど、結局はソース管理だけなんだからgit入れればいいだけだったんじゃないかなー
って今思いました。

Tags :

コメントを残す

Please type the characters of this captcha image in the input box

Please type the characters of this captcha image in the input box