Hướng dẫn cài đặt SFTP server Ubuntu đơn giản nhất | Việt Nét

SFTP là một giao thức truyền file an toàn qua mạng máy tính, được nhiều người sử dụng để cung cấp bảo mật tốt hơn so với giao thức truyền file đơn giản (FTP). Bài viết hôm nay, Việt Nét sẽ hướng dẫn các bạn cách cài đặt SFTP server Ubuntu nhanh chóng và đơn giản.

Hướng dẫn các bước cài đặt SFTP server Ubuntu đơn giản

SFTP là viết tắt của cụm từ SSH File Transfer Protocol. Đúng như tên gọi, đây là một cách an toàn để truyền file giữa các máy bằng kết nối SSH được mã hóa. Đây là một giao thức hoàn toàn khác với FTP (File Transfer Protocol), mặc dù nó được các máy FTP client hiện đại hỗ trợ rộng rãi.

sftp server ubuntu

Trong một số trường hợp, bạn có thể chỉ muốn một số người dùng nhất định được phép chuyển file và không có quyền truy cập SSH. Trong hướng dẫn này, Việt Nét sẽ chỉ bạn cách thiết lập daemon SSH để giới hạn quyền truy cập SFTP vào một số thư mục không được phép truy cập SSH trên cơ sở mỗi người dùng.

Bước 1: Cài đặt OpenSSH-server và SSH

Nếu bạn chưa có OpenSSH-server và SSH, hãy cài đặt OpenSSH trong máy chủ, bạn có thể sử dụng lệnh sau:

$ sudo apt install openssh-server

Bạn cũng cần cài SSH trên hệ thống từ nơi bạn sẽ truy cập vào máy chủ SFTP.

$ sudo apt install ssh

Bước 2: Tạo tài khoản người dùng SFTP

Đầu tiên khi muốn cài đặt SFTP server Ubuntu, cần tạo một user mới, user này sẽ chỉ được cấp quyền truy cập chuyển file vào server.

$ sudo adduser sftp_user

Bạn sẽ được nhắc tạo mật khẩu cho tài khoản, sau đó là một số thông tin về user. Thông tin user là tùy chọn, vì vậy bạn có thể nhấn ENTER để để trống các trường đó.

Enter new UNIX password:
Retype new UNIX password:
…..
passwd: password updated successfully

Bây giờ bạn đã tạo một user mới sẽ được cấp quyền truy cập vào thư mục bị hạn chế. Trong bước tiếp theo sẽ hướng dẫn tạo thư mục để truyền tệp và thiết lập các quyền cần thiết.

Bước 3: Tạo thư mục để truyền file

Để hạn chế quyền truy cập SFTP vào một thư mục, trước tiên, phải đảm bảo thư mục tuân thủ các yêu cầu về quyền của máy chủ SSH.

SFTP

Cụ thể, thư mục và tất cả các thư mục phía trên nó trong cây hệ thống file phải thuộc quyền sở hữu của người chủ và không thể ghi bởi bất kỳ ai khác. Do đó, không thể chỉ cấp quyền truy cập hạn chế vào thư mục chính của user vì thư mục chính thuộc sở hữu của user chứ không phải root.

Tại đây, bạn sẽ tạo và sử dụng /var/sftp/myfolder/data/ làm thư mục tải lên đích. /var/sftp/myfolder sẽ do người chủ sở hữu và người dùng khác sẽ không thể ghi được.

Thư mục con /var/sftp/myfolder/data/ sẽ thuộc sở hữu của sftp_user (đã được tạo trước đó), để người dùng có thể tải file lên đó.

Đầu tiên, bạn tạo các thư mục.

$ sudo mkdir -p /var/sftp/myfolder/data/

Đặt tên người owner của file /var/sftp/myfolder thành root.

$ sudo chown root:root /var/sftp/myfolder

Cấp quyền ghi root cho cùng một thư mục và chỉ cấp cho người dùng khác quyền đọc và thực thi.

$ sudo chmod 755 /var/sftp/myfolder

Thay đổi quyền sở hữu trên thư mục tải lên thành sftp_user.

$ sudo chown sftp_user:sftp_user /var/sftp/myfolder/data/

Đến đây bạn đã thực hiện xong việc hạn chế thư mục.

Vì vậy, sftp_user sẽ chỉ sử dụng /data/ từ đường dẫn bên dưới. sftp_user không bao giờ có thể thay đổi thư mục.

/var/sftp/myfolder/data/

Bước 4: Cài đặt sshd_config

Trong bước này, bạn sẽ sửa đổi cấu hình máy chủ SSH để không cho phép truy cập thiết bị đầu cuối cho sftp_user nhưng cho phép truy cập chuyển file.

cài đặt SFTP

Mở file cấu hình server SSH bằng cách sử dụng lệnh dưới đây:

$ sudo nano /etc/ssh/sshd_config

Hoặc sử dụng lệnh:

$ sudo vi /etc/ssh/sshd_config

Cuộn xuống cuối file và nối đoạn mã cấu hình sau:

/etc/ssh/sshd_config

. . .

Port
Match User sftp_user
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp/myfolder
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Sau đó, lưu và đóng file. [Nhấn: wq + enter].

Ý nghĩa mỗi lệnh đó thực hiện:

  • Match User: Lệnh này yêu cầu máy chủ SSH chỉ áp dụng các lệnh sau cho người dùng được chỉ định. Ở đây, chúng ta chỉ định sftp_user.
  • ForceCommand Internal-sftp: Lệnh này buộc SSH server chạy SFTP server khi đăng nhập, không cho phép truy cập shell access.
  • PasswordAuthentication: Lệnh này cho phép xác thực mật khẩu cho người dùng này.
  • ChrootDirectory /var/sftp/myfolder: Lệnh này đảm bảo rằng người dùng sẽ không được phép truy cập vào bất kỳ thứ gì ngoài thư mục /var/sftp/myfolder.
  • AllowAgentForwarding no , AllowTcpForwarding no. và X11Forwarding vô hiệu hóa chuyển tiếp port, tunnel và chuyển tiếp X11 cho người dùng này.

Trong Match User [user_name], bạn cũng có thể sử dụng nhóm bằng cách sử dụng lệnh dưới đây.
Match Group [sftp_group]

Lưu ý: Bạn cần tạo một nhóm mới có tên là sftp_group.

Bước 5: Khởi động lại service

Để áp dụng các thay đổi cấu hình hãy khởi động lại service.

$ sudo systemctl restart sshd

Hoặc

$ sudo /etc/init.d/ssh restart

Bây giờ bạn đã định cấu hình máy chủ SSH để hạn chế quyền truy cập chỉ truyền file cho sftp_user.

Bước 6: Mở port sftp trong nhóm bảo mật AWS-EC2

Nếu bạn đang sử dụng phiên bản AWS-EC2, bạn cần mở cổng tại đây.

  1. Đăng nhập vào tài khoản AWS của bạn.
  2. Chuyển đến các dịch vụ và sau đó nhấp vào menu EC2 > Running Instances.
  3. Chuyển đến instance của bạn.
  4. Mở nhóm Security groups.
  5. Trong Inbound rules, chỉnh sửa inbound rules.
  6. Thực hiện các cài đặt sau:
  • Type = TCP tùy chỉnh.
  • Protocol = TCP.
  • Port range = your_port (giống như được đặt trong tệp sshd_config).
  • Source = Bạn cần đưa IP vào whitelist ở đây, nếu bạn không muốn thì đặt ở bất kỳ đâu.
  • Description – tùy chọn = Bạn có thể đề cập ở đây một số thông tin hữu ích.

Bước cuối cùng là kiểm tra cấu hình để đảm bảo rằng nó hoạt động như dự định.

Bước 7: Xác nhận cấu hình

Bạn có thể xác minh cấu hình trong thiết bị đầu cuối của mình và cũng như phần mềm của bên thứ ba, chẳng hạn như WinSCP.

xác nhận SFTP

Xử lý sự cố

Nếu bạn gặp phải lỗi dưới đây trong quá trình cài đặt SFTP server Ubuntu thì vui lòng thực hiện những bước sau:

"no supported authentication methods available server sent: public key
Authentication Failed"

Sau đó chạy lệnh dưới đây và kiểm tra lại kết nối.

sudo service sshd restart

Lời kết

Bạn đã hạn chế một người dùng có quyền truy cập vào SFTP server Ubuntu mà không có toàn quyền shell access. Trong khi hướng dẫn này chỉ sử dụng một thư mục và một người dùng, bạn có thể mở rộng ví dụ này cho nhiều người dùng và nhiều thư mục.

SSH server cho phép các lược đồ cấu hình phức tạp hơn, bao gồm giới hạn quyền truy cập vào các nhóm hoặc nhiều người dùng cùng một lúc, hoặc thậm chí giới hạn quyền truy cập vào một số địa chỉ IP nhất định.

Như vậy là bạn đã biết cách cài đặt SFTP server Ubuntu, hy vọng bài viết này cung cấp cho bạn nhiều kiến thức bổ ích, chúc bạn thực hiện thành công. Nếu có bất cứ thắc mắc nào trong quá trình cài đặt SFTP server Ubuntu, bạn hãy để lại bình luận bên dưới để được hỗ trợ nhé!

Hãy đánh giá bài viết post

Ngoài ra, khi sử dụng dịch vụ VPS và Hosting, quý khách sẽ được tặng bộ Theme & Plugin WordPress bản quyền trị giá đến 800$/năm. Đăng ký dùng thử ngay và Việt Nét sẽ hoàn tiền 100% nếu quý khách không hài lòng với chất lượng sản phẩm, dịch vụ! Nếu bạn có thắc mắc hay có vấn đề cần hỗ trợ, bạn có thể liên hệ trực tiếp với Việt Nét thông qua các kênh sau:


Thiết kế website

Rate this post

Bình luận