GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOSでSFTPサーバーをセットアップする方法

このチュートリアルでは、CentOSでSFTPサーバーをセットアップして使用する方法について説明します。始める前に、SFTPが実際に何を表し、何に使用されるかを説明しましょう。現在、ほとんどの人は、サーバーからクライアントへ、またはクライアントからサーバーへのデータの転送、ダウンロード、アップロードに通常のFTPを使用できることを知っています。ただし、このプロトコルは、ポートが誰にでも広く公開されているため、匿名の侵入者によって簡単にハッキングされています(TLSが使用されていない場合)。そのため、セキュリティレベルを強化するという主な目的を満たすための別の代替手段としてSFTPが導入されました。

SFTPは、SSHファイル転送プロトコルまたはセキュアファイル転送プロトコルの略です。 SSHにパッケージ化された別のプロトコルを使用して、安全な接続を提供します。

1。予備的注意

このチュートリアルでは、64ビットバージョンのCentOS7を使用しています。同じ手順がCentOS6でも機能します。チュートリアルの結果は、クライアントにSFTPサーバーへのアクセスを提供する方法を示していますが、SSHでサーバー自体にログインすることはできません。

2。 SFTPのインストール

通常のFTPとは異なり、SFTPを使用するために追加のパッケージをインストールする必要はありません。サーバーへのインストール中にすでにインストールされているビルド前のSSHdパッケージが必要です。したがって、必要なSSHパッケージがすでにあるかどうかを確認してください。手順は次のとおりです。

実行:

rpm -qa|grep ssh

出力は次のようになります:

[[email protected] ~]# rpm -qa|grep ssh
libssh2-1.4.3-10.el7_2.1.x86_64
openssh-7.4p1-13.el7_4.x86_64
openssh-server-7.4p1-13.el7_4.x86_64
openssh-clients-7.4p1-13.el7_4.x86_64

以上で、SFTP構成の作成方法について説明します。

3。 SFTP構成

インストールのすべての前提条件が完了したら、構成フェーズに進みます。ベストプラクティスとして、SFTPアクセスを取得するすべてのユーザーを管理できるように、グループとユーザーを作成する必要があります。ただし、最初に、dataという名前の追加のフォルダーを作成しましょう。手順は次のとおりです。

mkdir -p /data/sftp
chmod 701 /data

基本的に、上記の手順で実行しようとしているのは、SFTPアクセス用のメインディレクトリとして別のフォルダを取得することです。 SFTPユーザーのすべてのユーザーディレクトリは、このデータフォルダのサブディレクトリになります。

SFTPユーザーのグループを作成しましょう。手順は次のとおりです。

groupadd sftpusers

次に、ユーザー'howtoforge'を作成し、それをSFTPUSERSグループに割り当てます。手順は次のとおりです。

useradd -g sftpusers -d /upload -s /sbin/nologin mysftpuser
passwd mysftpuser
Changing password for user mysftpuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

上記のコマンドの説明は次のとおりです。

  1. ユーザーを作成し、-gコマンドを使用してそのユーザーをsftpusersグループに含めます。
  2. -d / uploadコマンドを設定して、ユーザーのメインディレクトリを/uploadディレクトリに割り当てます。これは、後で/uploadフォルダーが/data / mysftpuser/uploadの下にあることを意味します。
  3. / sbin / nologinシェルへのアクセスを制限して、ユーザーがSSHではなくSFTPプロトコルのみを使用できるようにします。
  4. ユーザーに「mysftpuser」という名前を付けます。
  5. ユーザー「mysftpuser」のパスワードを設定します。


次に、/ data /mysftpuserの下に/uploadフォルダーを作成し、フォルダーに適切な所有権を割り当てます。

mkdir -p /data/mysftpuser/upload
chown -R root:sftpusers /data/mysftpuser
chown -R mysftpuser:sftpusers /data/mysftpuser/upload

完了したら、ディレクトリ/ dataの下に新しいフォルダが存在し、構成が正しいことを確認します。


[[email protected] ~]# ls -ld /data/
drwx-----x. 5 root root 54 Mar 22 14:29 /data/
[[email protected] ~]# ls -ld /data/mysftpuser
drwxr-xr-x. 3 root sftpusers 20 Mar 22 14:29 /data/mysftpuser
[[email protected] ~]# ls -ld /data/mysftpuser/upload
drwxr-xr-x. 2 mysftpuser sftpusers 6 Mar 22 14:29 /data/mysftpuser/upload
[[email protected] ~]# cat /etc/passwd|grep mysftpuser
mysftpuser:x:1001:1001::/upload:/sbin/nologin

次に、SSHプロトコルを構成してSFTPプロセスを作成します。これは、/ etc / ssh/sshd_configの下の構成ファイルを編集することで実行できます。手順は次のとおりです。

nano /etc/ssh/sshd_config

ファイルの最後に次の行を追加します。

Match Group sftpusers
ChrootDirectory /data/%u
ForceCommand internal-sftp

SSHサービスを再起動したら、次の手順に従います。

service sshd status
Redirecting to /bin/systemctl status sshd.service
? sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-03-22 14:21:38 CET; 16min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 942 (sshd)
CGroup: /system.slice/sshd.service
??942 /usr/sbin/sshd -D
Mar 22 14:21:37 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
Mar 22 14:21:38 localhost.localdomain sshd[942]: Server listening on 0.0.0.0 port 22.
Mar 22 14:21:38 localhost.localdomain sshd[942]: Server listening on :: port 22.
Mar 22 14:21:38 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
Mar 22 14:21:49 localhost.localdomain sshd[1375]: Accepted password for root from 192.168.1.9 port 59465 ssh2
service sshd restart
[[email protected] ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service

4。 SFTPのテスト

これですべてが構成されたので、セットアップが目的を満たしていることを確認するためにテストを行います。
TEST01という別のサーバーを使用してSFTPにアクセスします。まず、SFTPサーバーのポートを確認します。そのために、nmap関数を使用します。クライアントサーバーにインストールされていない場合は、以下に示すように、yumを使用してダウンロードしてインストールできます。

yum list nmap
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.copahost.com
* epel: mirror.imt-systems.com
* extras: mirror.imt-systems.com
* remi-php72: remi.mirror.wearetriple.com
* remi-safe: remi.mirror.wearetriple.com
* updates: ftp.rz.uni-frankfurt.de
Available Packages
nmap.x86_64 2:6.40-7.el7
yum install nmap -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.copahost.com
* epel: mirror.imt-systems.com
* extras: mirror.imt-systems.com
* remi-php72: remi.mirror.wearetriple.com
* remi-safe: remi.mirror.wearetriple.com
* updates: ftp.rz.uni-frankfurt.de
Resolving Dependencies
--> Running transaction check
---> Package nmap.x86_64 2:6.40-7.el7 will be installed
--> Processing Dependency: nmap-ncat = 2:6.40-7.el7 for package: 2:nmap-6.40-7.el7.x86_64
--> Running transaction check
---> Package nmap-ncat.x86_64 2:6.40-7.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================================================================================
Installing:
nmap x86_64 2:6.40-7.el7 base 4.0 M
Installing for dependencies:
nmap-ncat x86_64 2:6.40-7.el7 base 201 k
Transaction Summary
=============================================================================================================================================================================================
Install 1 Package (+1 Dependent package)
Total download size: 4.2 M
Installed size: 17 M
Downloading packages:
(1/2): nmap-ncat-6.40-7.el7.x86_64.rpm | 201 kB 00:00:01
(2/2): nmap-6.40-7.el7.x86_64.rpm | 4.0 MB 00:00:14
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 300 kB/s | 4.2 MB 00:00:14
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 2:nmap-ncat-6.40-7.el7.x86_64 1/2
Installing : 2:nmap-6.40-7.el7.x86_64 2/2
Verifying : 2:nmap-ncat-6.40-7.el7.x86_64 1/2
Verifying : 2:nmap-6.40-7.el7.x86_64 2/2
Installed:
nmap.x86_64 2:6.40-7.el7
Dependency Installed:
nmap-ncat.x86_64 2:6.40-7.el7
Complete!
[[email protected] ~]# nmap -n 192.168.1.100
Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-22 14:51 CET
Nmap scan report for 192.168.1.100
Host is up (0.000016s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds


現在、SFTPサーバーで開いているポートはSSH 22のみです。次に、TEST01クライアントからSFTPサーバー(私の場合はIP:192.168.1.100)にアクセスしてみましょう。手順は次のとおりです。

[[email protected] /]# sftp [email protected]
[email protected]'s password:
Connected to 192.168.1.100.
sftp> pwd
Remote working directory: /upload
sftp>

素晴らしい!これで、SFTPサーバーに外部からアクセスできるようになりました。デフォルトのディレクトリは/uploadであることに注意してください。これは、SFTPサーバーディレクトリで以前に作成した構成が/ data / mysftpuser / uploadであっても、SFTPはデフォルトパスを/uploadとしてのみ表示することを意味します。
次に、SFTPサーバーディレクトリからファイルを取得してみましょう。クライアントのテスト。まず、/ data / mysftpuser/uploadの下にテストファイルを作成しましょう。手順は次のとおりです。

cd /data/mysftpuser/upload
touch testing_file.txt

次に、テストサイトTEST01に戻り、作成されたファイルを取得してダウンロードできるかどうかを確認します。

[[email protected] /]# sftp [email protected]
[email protected]'s password:
Connected to 192.168.1.100.
sftp> pwd
Remote working directory: /upload
sftp> ls
testing_file.txt
sftp> get testing_file.txt
Fetching /upload/testing_file.txt to testing_file.txt
sftp> quit

素晴らしい! SFTPテストは成功しました。ユーザーmysftpuserを使用してSSHにアクセスしてみましょう。以前と同様に、構成を/ sbin / nologinとして設定したため、ユーザーはSSHサービスを使用できなくなります。

[[email protected] ~]# ssh [email protected]
[email protected]'s password:
This service allows sftp connections only.
Connection to 192.168.1.100 closed.

良い!これで、セキュリティで保護されたSFTPサーバーが稼働しています。


Cent OS
  1. CentOS 7 /RHEL7でNFSサーバーをセットアップする方法

  2. CentOS/RHEL 7 で squid プロキシ サーバーをセットアップする方法

  3. CentOS/RHEL 5 で新規ユーザー用に VNC サーバーをセットアップする方法

  1. CentOS 7 /RHEL7でSysLogサーバーをセットアップする方法

  2. Centos – CentosでSftpユーザーを作成する方法は?

  3. CentOSでMySQLレプリケーションを設定する方法

  1. CentOS7でVSFTPDを使用してFTPサーバーをセットアップする方法

  2. CentOSでNTPサーバーをセットアップする方法は?

  3. CentOS 7.xでVSFTPDを設定するにはどうすればよいですか?