آموزش نصب SFTP روی سرور لینوکس ابتدا نیاز به یک سرور مجازی با سیستم عامل CentOS 7 دارد که میتوانید با مشاهده پلان های سرور مجازی آریاسرور سرور مورد نظر خود را تهیه کنید.
منابع پیشنهادی برای این سرور :
- سیستم عامل: لینوکس
- سی پی یو: 2هسته
- رم: 2 گیگابایت
- دیسک: متناسب به نیاز شما
ورود به سرور:
ابتدا با استفاده از برنامه Putty با وارد کردن ادرس ایپی سرور خود در کادر مربوطه وارد محیط کامندلاین شده و دستور زیر را اجرا میکنیم:
yum update -y
پیکربندی SFTP روی سرور:
عملکرد این پروتکل به طور کلی بر پایه SSH است و به همین دلیل در مرحله اول بایستی فایل etc/ssh/sshd_config/ را ویرایش کنیم.
- فایل مورد نظر را با استفاده از دستور VI باز میکنیم. چنانچه با این دستور آشنایی ندارید میتوانید به اسناد رسمی آن مراجعه کنید:
sudo vi /etc/ssh/sshd_config
2. خطوط زیر را در انتهای فایل باز شده جایگذاری کنید:
Match User fuser
ForceCommand internal-sftp
PasswordAuthentication no
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
3. فایل را ذخیره کنید:
4. دستور زیر را در ترمینال سرور وارد کنید:
cat /etc/ssh/sshd_config | grep -v -e '^#' -e '^$'
5. اطمینان حاصل کنید که خروجی دستور قبل به شکل زیر باشد:
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding 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
Subsystem sftp /usr/libexec/openssh/sftp-server
Match User fuser
ForceCommand internal-sftp
PasswordAuthentication no
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
6. برای اعمال تغییرات یک بار سرویس SSH را راه اندازی مجدد میکنیم:
sudo systemctl restart sshd
7. اکنون باید یک گروه برای کاربران SFTP ایجاد کنید:
sudo groupadd ftpusers
8. حال نوبت به آن رسیده که یک دایرکتوری برای ذخیره فایل ها مشخص کنیم:
sudo mkdir -p /var/sftp/backups
- sftp: دایرکتوری اصلی SFTP سرور
- backups: دایرکتوری برای ذخیره فایل ها در SFTP سرور
9. مجوز های دایرکتوری مورد نظر را طوری تنظیم میکنیم که کاربران گروه ftpusers بتوانند فایل ها را در سرور بنویسند و بخوانند: (Read & Write)
sudo chown root:ftpusers /var/sftp/backups
sudo chmod 770 /var/sftp/backups
10. برسی کنید که آیا مجوز ها به درستی تنظیم شده اند یا خیر:
ls -la /var | grep sftp
ls -la /var/sftp
11. نتیجه دستورات فوق باید به شرح زیر باشد:
drwxr-xr-x 3 root root 4096 Aug 16 15:10 sftp
total 12
drwxr-xr-x 3 root root 4096 Aug 16 15:10 .
drwxr-xr-x. 20 root root 4096 Aug 16 15:10 ..
drwxrwx--- 2 root ftpusers 4096 Aug 16 15:10 backups
ایجاد یوزر SFTP:
- یک کاربر مانند fuser ایجاد کنید: (بجای fuser یوزرنیم دلخواه خود را وارد کنید)
sudo useradd fuser
2. یک رمز عبرو برای کاربر fuser ایجاد کنید:
sudo passwd fuser
3. کاربر fuser را به گروه ftpusers اضاف کنید:
sudo usermod -G ftpusers fuser
در اینجا نصب و کانفیگ SFTP به اتمام میرسه و هم اکنون شما میتوانید با استفاده از این پروتکل به سرور مجازی خود متصل شده و فایل های خود را انتقال دهید.