Help us understand the problem. What is going on with this article?

SSHDを複数起動してSFTPとSSHを分けてみる

More than 3 years have passed since last update.

About

前から気になっていたので、試してみました。sshdでsubsystemの指定でsftpサーバ利用できますが、sshのポートが同じになってしまいます。sftpサーバは社外に公開しつつも、セキュリティを考えるとsshログインできるユーザを絞りたい。proftpd等を使えばsftp機能があるみたいなのですが、シンプルにやりたかったので試してみました。

環境

  • CentOS 7

ssh側

特別な設定は必要ありません。

sftp側

設定

もう1台sshdを起動するには、ポートやプロセスなどが重複しないように設定が必要です。

systemd用のファイル

/etc/systemd/system/sshd_sftp.service
[Unit]
Description=OpenSSH server daemon only sftp
After=syslog.target network.target auditd.service

[Service]
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_sftp
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

設定ファイル

:/etc/ssh/sshd_sftp
Port 19321
Protocol 2
SyslogFacility AUTHPRIV


PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no


GSSAPIAuthentication yes
GSSAPICleanupCredentials yes

UsePAM yes

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

X11Forwarding yes
PidFile /var/run/sftp.pid

# ssh/sftpを利用できるグループを制限。
AllowGroups sftp-user

UseDNS no
GSSAPIAuthentication no

Subsystem   sftp    internal-sftp -f local5 -l INFO
Match group sftp-user
    PasswordAuthentication yes
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory /home/%u/chroot/

sftp-user グループに所属するはパスワード認証を許可しつつ、chrootを使って権限を閉じるようにしています。ここで重要なのが、AllowGroupsの設定です。sftp-userに所属するユーザのみがsshdサーバにアクセスできるため、22番ポートでSSHログインできるユーザもこちらのポートにはアクセスできないようにできます。

まとめ

強引なやり方ではありますが、やりたいことはできました。

tjinjin
平和に生きたいインフラエンジニア
http://cross-black777.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away