Linuxでsftpサーバを構築する

お手軽にファイル共有を実現する目的でLinuxを使うことにした。

きめごと

  • 通常時はuserユーザを使用する。
  • userユーザをchroot化する。
  • chroot対象を”/home/user1/chroot”にする。

手順

ユーザ作成

useradd user1
passwd user1

sshdコンフィグ調整

vi /etc/ssh/sshd_config

“/etc/ssh/sshd_config”最終行のあたりに以下設定があるので修正する。

# Subsystem sftp /usr/libexec/openssh/sftp-server <- コメントアウトしておく
Subsystem sftp internal-sftp <- 追記
Match User user1 <- 追記
ChrootDirectory /home/user1/chroot <- 追記
ForceCommand internal-sftp <- 追記

権限・所有者調整

mkdir /home/user1/chroot
chown root:root -R /home/user1/chroot
chmod 755 /home/user1/chroot
mkdir /home/user1/chroot/work
chown user1:user1 /home/user1/chroot/work
chmod 755 /home/user1/chroot/work

selinux無効化(恒久設定。要再起動。)

setenforce 0
vi /etc/selinux/config
→SELINUX行の右辺をdisabledにする。

selinux無効化(暫定設定。再起動不要。)

setenforce 0

selinux無効化の確認

getenforce

sshd再起動

/etc/init.d/sshd restart    # CEntOS6
systemctl restart sshd      # CentOS7

以上。

Leave a Comment