0

scp接続専用のユーザを用意しscpの設定をする(バイナリファイル配置)備忘録。

 本日は SCP 接続専用のアカウントの設定方法を紹介します。
SFTP 接続専用のアカウントを作成する方法に関しては、
書籍やインターネット上で情報が多く掲載されているのですが、
SCP 接続専用のアカウントを作成する方法については、
調べた限りでは情報がありませんでした。
今回、SCP 接続専用のアカウントを用意する設定をしてみたので、以下に紹介します。
 

SCP 接続専用とする設定は SFTP 接続専用の場合と違い、

chroot 先のディレクトリ配下にライブラリファイルを置く必要があったり、ForceCommand パラメータ内で scp 送信先のディレクトリを固定する必要があるといった制約があります。

  • SCP 接続受信専用アカウントが所属するグループ (今回は scponly とします) を作成します。
    # groupadd scponly
    
  • sshd_config に以下を追記して、sshd サービスを再起動します。scp 送信先ディレクトリは、例として /recv としています。
    Match Group scponly
    ChrootDirectory /home/%u
    ForceCommand /usr/bin/scp -t /recv
    

    この設定で、scponly グループのユーザは、scp 接続専用になります。
    ※ ForceCommand ディレクティブを使用しているので、/recv 以外のディレクトリには scp 出来ません。

  • scp 接続受信専用アカウント (今回は hachim.jp とします) を作成し、ホームディレクトリを作成します。
    # useradd -G scponly -d /recv -M hachim.jp
    # passwd hachim.jp
    (パスワードの設定を行ってください)
    # mkdir /home/hachim.jp
    		
  • chroot 環境に必要なディレクトリを作成します。
    # mkdir -p /home/hachim.jp/{dev,etc,bin,lib64,usr/bin,usr/lib64,recv}
    		
  • 必要なデバイスファイルを作成します。
    # mknod -m 666 /home/hachim.jp/dev/null c 1 3
    # mknod -m 666 /home/hachim.jp/dev/zero c 1 5
    # mknod -m 666 /home/hachim.jp/dev/tty c 5 0
    # mknod -m 666 /home/hachim.jp/dev/ptmx c 5 2
    		
  • 必要なバイナリファイルをコピーします。
    # cp -p /bin/bash /home/hachim.jp/bin/
    # cp -p /usr/bin/scp /home/hachim.jp/usr/bin/
    		
  • 必要なライブラリファイルが多いため、スクリプトを作成して実行します。
    ■ cp_binary_file1.sh
    #!/bin/sh
    TARGET_USER=hachim.jp
    cp -p /lib64/ld-linux-x86-64.so.2 /home/$TARGET_USER/lib64/
    for LIBS in `ldd /bin/bash | awk '{print $3}'`
    do
      if [[ $LIBS == /* ]]; then
        cp -p $LIBS /home/$TARGET_USER$LIBS
      fi
    done
    
    for LIBS in `ldd /usr/bin/scp | awk '{print $3}'`
    do
      if [[ $LIBS == /* ]]; then
        cp -pn $LIBS /home/$TARGET_USER$LIBS
      fi
    done
    
  • 作成したスクリプトを実行して、バイナリを実行するために必要なライブラリファイルをコピーします。
    # chmod 755 cp_binary_file1.sh
    # ./cp_binary_file1.sh
    # cp -p /lib64/{ld-linux-x86-64.so.2,libnss_files.so.2} /home/hachim.jp/lib64/
    
  • PAM 認証に必要なファイルをコピーします。
    # cp -p /etc/passwd /home/hachim.jp/etc/
    

    ※passwd ファイルがないと、scp 接続の際に “unknown user <ユーザID>” とエラーが出ます。

  • scp 送信先ディレクトリの所有者を変更します。
    # chown hachim.jp:hachim.jp /home/hachim.jp/recv/
    

    ※/home/hachim.jp の所有者、グループ、パーミッションは、root.root 755 のまま変更しないでください。所有者、グループ、パーミッションを変更すると、想定通りに動作しません。

_scp
以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です