So-net無料ブログ作成

ssh公開鍵認証で chroot SFTPファイル転送

SFTPでホームページ更新を ssh 公開鍵認証,chroot でアクセスできるディレクトリを制限する。
Windows 10 WSL で Linux が Windows 上で動く。Ubuntu や Debianもあるが,Kali Linux でやってみた。
Kali Linux には,OpenSSH 及び apache2 をインストールしてある。
コマンドプロンプトで kali と入力して Kali linux を起動する。

apache10005

ssh公開鍵認証を用意する。接続ユーザーはこの例ではatc5。
ssh-keygen コマンドで,.sshディレクトリに秘密鍵ファイル id_rsa,  公開鍵ファイルid_rsa.pub が生成される。
公開鍵ファイルは,authorized_keysにリネームしておく。
.ssh ディレクトリのパーミッションは700,.ssh/authorized_keysは600にする。

cd /home/atc5
mkdir -p .ssh
ssh-keygen -t rsa    
mv .ssh/id_rsa.pub .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

chroot の対象にするディレクトリは上位のディレクトリも含めてrootのみライト可(755以下)にしないと接続できない。rootでchroot用のディレクトリを作成する。

mkdir –p /home/chroot/atc5/html

/var/www/html/site1 がホームページのドキュメントルート。

drwxr-xr-x 1 root root 512 Mar  1 22:30 .
drwxr-xr-x 1 root root 512 Feb 27 22:55 ..
drwxrwxrwx 1 atc5 atc5 512 Mar  1 22:30 site1
drwxrwxrwx 1 usr1 usr1 512 Mar  1 22:29 site2
drwxrwxrwx 1 usr2 usr2 512 Mar  1 22:29 site3

site1ディレクトリのオーナーは atc5 なので,site1 に  chroot できない(オーナーがrootではないため)。
site1のオーナーをrootで755にした場合,chroot はできるか,atc5 は site1 内にファイルやサブディレクトリの追加ができない。
そこでディレクトリをマウントできる bind mount で,chrootの対象ディレクトリ下の html に site1 をマウントする。

mount --bind /var/www/html/site1 /home/chroot/atc5/html    

/etc/ssh/sshd_config を編集する。一番下に Match User atc5を以下のように追記する。 /home/chroot/atc5が chroot 先となる。

Match User atc5
        PasswordAuthentication no
        PubkeyAuthentication yes
        ChrootDirectory /home/chroot/atc5
        ForceCommand internal-sftp

再起動しても消えないように,bind mount を/etc/fstabに書いておく。   

/var/www/html/site1      /home/chroot/atc5/html  none    bind            0 0 

IPは 192.168.0.7 であり,WSL なので Windows 10 のIPと同じ。

wifi0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.7  netmask 255.255.255.0  broadcast 192.168.0.255

http://192.168.0.7/site1/でホームページを確認する。

site119216807


WinSCPで接続する。秘密鍵にssh-keygen コマンドで作成しておいた id_rsa ファイルを指定すると自動的にppkファイルに変換してくれる。

apache10004

公開鍵認証で接続してリモート側に html ディレクトリが表示された。chroot しているので上位のディレクトリにはアクセスできない。

apache10002


nice!(1)  コメント(0) 

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント