سنت او اسسیستم عامل لینوکسمقالات وب

چگونه SFTP سرور را بر روی سنت او اس راه اندازی کنیم؟

در این مقاله قصد داریم نحوه نصب و استفاده از SFTP سرور را بر روی سنت او اس با هم مرور کنیم.  قبل از اینکه به سراغ آموزش برویم اجازه دهید ببینیم SFTP سرور برای چه کاری مورد استفاده قرار می گیرد. بیشتر افراد می دانند که چگونه می توانند از FTP معمولی برای انتقال، دانلود و آپلود اطلاعات و داده ها از سرور به کلاینت یا از کلاینت به سرور استفاده نمایند.  اما باید بدانید که این پروتکل به راحتی توسط هکرهای ناشناس هک می شود زیرا پورت های آن برای هر فردی باز است.  به همین خاطر SFTP به عنوان جایگزین امن برای این پروتکل معرفی شد تا بتواند سطح امنیت را در این شرایط افزایش دهد.  این گزینه از پروتکل جداگانه بسته بندی شده با SSH استفاده می کند تا بتواند ارتباط امنی را فراهم آورد. در این مقاله همراه وب ایده باشید تا با هم نحوه راه اندازی SFTP سرور بر روی سنت او اس را مرور کنیم.

برای این آموزش از سنت او اس 7 نسخه 64 بیتی استفاده خواهیم کرد. همین مراحل را می توانید بر روی سنت او اس 6 نیز اعمال کنید.

نصب SFTP:

بر خلاف FTP معمولی، نیازی به نصب پکیج های اضافی برای استفاده از SFTP نخواهید داشت. ما تنها به پکیج SSHd از پیش ساخته شده نیاز داریم  که در طول نصب بر روی سرور نصب شده است. تنها کاری که باید انجام دهید این است که ببینید در حال حاضر پکیج SSH مورد نیاز را دارید یا خیر. مراحل زیر را در نظر بگیرید. دستور زیر را اجرا کنید:

rpm -qa|grep ssh

 

خروجی کد باید شبیه کد زیر باشد:

 [root@localhost ~]# 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 را آغاز کنیم.

پیکربندی SFTP:

بعد از اینکه همه پیش نیازها بررسی شد می توانیم وارد مرحله پیکربندی شویم. بهتر است یک گروه و یک کاربر ایجاد کنیم تا بتوانیم همه کاربرهایی که می توانند به SFTP دسترسی داشته باشند را کنترل نماییم.  اما در ابتدا، اجازه دهید فولدر اضافی به نام Data ایجاد کنیم.

mkdir -p /data/sftp
chmod 701 /data

 

به کمک دستور بالا می توانیم فولدر جداگانه ای ایجاد کنیم که به عنوان دایرکتوری اصلی برای دسترسی SFTP عمل می کند.  همه دایرکتوری ها برای کاربران SFTP ساب دایرکتوری این فولدر خواهند بود.  حالا برای کاربر SFTP خود  گروهی ایجاد کنید.

groupadd sftpusers

 

حالا کاربری با نام دلخواه ایجاد کنید آن را به گروه 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.

 

 

دستوراتی که در بالا به کار بردیم به شرح زیر است:

  • به کمک دستور -g کاربری را ایجاد کردیم و کاربر را به گروه SFTPUSERS اختصاص دادیم
  • دایرکتوری اصلی برای کاربر را بر روی /upload قرار دادیم. اینکار را به کمک دستور -d /upload انجام دادیم. این موضوع بدین معنی است که بعدا فولدر -d /upload زیر /data/mysftpuser/upload خواهد بود.
  • دسترسی به شل /sbin/nologin را محدود کردیم تا مطمئن شویم کاربر تنها می تواند از SFTP استفاده کند
  • نام کاربر را mysftpuser و پسورد آن را mysftpuser انتخاب کردیم.

توجه داشته باشید که این نام کاربری و پسورد را می توانید بر اساس نیاز خود تغییر دهید.  حالا باید فولدر /upload را زیر  فولدر /data/mysftpuser ایجاد کنیم و دسترسی های مناسب را به فولدر بدهیم:

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

 

بعد از اینکه کارتان تمام شد، تایید کنید که فولدر  جدید زیر فولدر directory /data قرار دارد.

[root@localhost ~]# ls -ld /data/
drwx-----x. 5 root root 54 Mar 22 14:29 /data/

[root@localhost ~]# ls -ld /data/mysftpuser
drwxr-xr-x. 3 root sftpusers 20 Mar 22 14:29 /data/mysftpuser

[root@localhost ~]# ls -ld /data/mysftpuser/upload
drwxr-xr-x. 2 mysftpuser sftpusers 6 Mar 22 14:29 /data/mysftpuser/upload

[root@localhost ~]# 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
[root@localhost ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service

 

تست SFTP سرور:

حالا همه چیز  پیکربندی شده و باید مطمئن شویم سرور به درستی کار می کند.  ما از طریق سرور دیگری به نام TEST01 به سرور SFTP خود دسترسی پیدا کرده ایم.  در ابتدا باید پورت سرور SFTP را تایید کنیم. برای اینکار از قابلیت nmap استفاده خواهیم کرد. اگر سرور کلاینت شما این قابلیت را ندارد، می توانید آن را دانلود و نصب کنید:

 

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!

[root@localhost ~]# 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 دسترسی یابیم.

 [root@TEST01 /]# sftp mysftpuser@192.168.1.100
mysftpuser@192.168.1.100's password:
Connected to 192.168.1.100.
sftp> pwd
Remote working directory: /upload
sftp>

 

سرور ما از خارج قابل دسترسی است.  اگر توجه کرده باشید دایرکتوری پیش فرض /upload است. این موضوع بدین معنی است که SFTP  تنها مسیر  پیش فرض را به عنوان /upload نشان خواهد داد. حالا باید فایلی را از دایرکتوری SFTP سرور بگیریم و در  کلاینت تست خود  قرار دهیم.

یک فایل تست زیر فولدر /data/mysftpuser/upload ایجاد می کنیم:

cd /data/mysftpuser/upload
touch testing_file.txt

 

سپس به سرور TEST01 خود باز می گردیم  تا ببینیم می توانیم فایل ایجاد شده را دانلود کنیم یا خیر.

 [root@TEST01 /]# sftp mysftpuser@192.168.1.100
mysftpuser@192.168.1.100'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 موفقیت آمیز بود.

Rate this post
برچسب ها

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بستن