NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
14/06/2023
Lượt xem

Cách bật SFTP không cần truy cập Shell trên CentOS 7

14/06/2023
10 phút đọc
Lượt xem

Đánh giá

5/5 - (94 bình chọn)

SFTP (SSH File Transfer Protocol) là một giao thức truyền file đến server thông qua kết nối SSH bảo mật. SFTP có thể được thiết lập mà không cần quyền truy cập SSH để giới hạn người dùng. Bài viết này sẽ hướng dẫn cách bật SFTP không cần truy cập Shell trên CentOS 7.

Giới thiệu về SFTP

Theo mặc định, SFTP có thể dễ dàng được thiết lập trên mọi server có quyền truy cập SSH. Đây là một phương thức an toàn, đơn giản và dễ sử dụng. Tuy nhiên trong các thiết lập tiêu chuẩn thì server SSH lại cấp quyền truy cập file và terminal shell cho mọi người dùng có tài khoản trên hệ thống.

Giới thiệu về SFTP
Giới thiệu về SFTP

Đôi khi bạn có thể muốn giới hạn quyền truyền file bằng SFTP cho một số người dùng nhất định thì bạn có thể chọn thiết lập SFTP mà không cần quyền truy cập SSH.

Điều kiện tiên quyết

Trước tiên để làm theo hướng dẫn thì bạn cần có sẵn một server CentOS 7 có user non-root với quyền sudo. Bên cạnh đó cũng cần có một text editor, chẳng hạn như nano hoặc vim.

Nếu bạn đang tìm kiếm và muốn thuê máy chủ VPS ổn định để thiết lập SFTP trên CentOS 7, bạn có thể tham khảo các gói VPS tại Vietnix.

Vietnix cung cấp các gói VPS phù hợp với mọi nhu cầu, từ VPS Giá Rẻ cho đến VPS Phổ Thông, VPS Cao Cấp và VPS NVMe.

Với dịch vụ VPS Giá Rẻ, bạn sẽ có một máy chủ ảo cân bằng giữa hiệu năng và chi phí, dễ dàng triển khai một hệ thống SFTP ổn định và bảo mật với mức phí tiết kiệm.

Nếu bạn đang tìm kiếm hiệu năng cao hơn, Vietnix cung cấp các gói VPS Phổ Thông và VPS Cao Cấp. Mang đến tốc độ xử lý mạnh mẽ và khả năng xử lý lượng dữ liệu lớn, điều này sẽ rất hữu ích cho việc truyền tải và quản lý các tệp tin SFTP lớn.

Nếu bạn đặc biệt quan tâm đến tốc độ và hiệu suất lưu trữ, hãy xem xét gói VPS NVMe của Vietnix. Với ổ cứng SSD NVMe siêu tốc, mang đến tốc độ đọc ghi cực nhanh, giúp tăng cường hiệu suất của hệ thống SFTP và giảm thời gian truyền tải.

Dù bạn chọn gói nào, Vietnix cam kết cung cấp dịch vụ VPS ổn định và tốc độ nhanh, hỗ trợ kỹ thuật chuyên nghiệp 247. Liên hệ Vietnix để tìm hiểu thêm thông tin chi tiết.

Sau khi đáp ứng các điều kiện trên, bạn hãy làm theo các bước dưới đây để thiết lập một daemon SSH nhằm giới hạn truy cập SFTP vào một thư mục không có quyền truy cập SSH cho từng user.

Bước 1: Tạo user mới

Trước tiên bạn có thể tạo một user mới, chỉ được cấp quyền truy cập truyền file vào server. Ở ví dụ này, Vietnix sẽ sử dụng username là vietnix:

sudo adduser vietnix

Sau đó tạo mật khẩu cho user mới:

sudo passwd vietnixpassword

Nhập lại mật khẩu lần nữa để xác nhận

Sau khi tạo xong user mới, bạn sẽ tạo một thư mục để truyền file và thiết lập các quyền cần thiết.

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

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

Cụ thể hơn, một thư mục và các thư mục ở trên nó trong cây filesystem đều phải được sở hữu bởi root và không người dùng nào có quyền được ghi. Khi đó, bạn sẽ không thể hạn chế quyền truy cập vào home directory của user vì một số home directory được sở hữu bởi user chứ không phải root.

Lưu ý: Một số phiên bản OpenSSH không có các yêu cầu này, tuy nhiên trên các bản Linux mới khác đều có.

Để khắc phục vấn đề này, bạn có thể tạo và sử dụng thư mục mới /var/sftp/uploads làm thư mục upload đích. Trong đó /var/sftp được sở hữu bởi root và mọi user khác đều không có quyền ghi, thư mục con /var/sftp/uploads được sở hữu bởi vietnix, do đó user này sẽ có quyền upload file vào đó.

Trước tiên, tạo thư mục bằng lệnh sau:

sudo mkdir -p /var/sftp/uploads

Sau đó đặt chủ sở hữu của /var/sftp thành root:

sudo chown root:root /var/sftp

Cung cấp quyền ghi cho root ở cùng thư mục đó, còn mọi user khác chỉ có quyền đọc và thực thi:

sudo chmod 755 /var/sftp

Cuối cùng là đổi chủ sở hữu cho thư mục uploads thành vietnix:

sudo chown vietnix:vietnix /var/sftp/uploads

Bước 3: Giới hạn truy cập cho một thư mục

Ở bước tiếp theo, bạn sẽ thay đổi cấu hình server SSH để chặn truy cập terminal cho user vietnix, nhưng đồng thời vẫn cho phép truyền file.

Trước tiên, mở file cấu hình SSH bằng một text editor bất kỳ:

sudo vi /etc/ssh/sshd_config

Kéo xuống phía dưới cùng rồi thêm đoạn cấu hình sau vào file:

. . .  Match User vietnix ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /var/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no

Sau đó lưu rồi đóng file lại.

Trong đó:

  • Match User yêu cầu server SSH áp dụng các lệnh được liệt kê ở dưới, chỉ cho user được chỉ định. Ở đây chính là user vietnix.
  • ForceCommand internal-sftp buộc server SSH chạy server SFTP mỗi khi login, chặn truy cập vào shell.
  • PasswordAuthentication yes cho phép user xác thực bằng mật khẩu.
  • ChrootDirectory /var/sftp/ đảm bảo rằng user sẽ không được phép truy cập vào bất kỳ thứ gì ngoài thư mục /var/sftp.
  • AllowAgentForwarding no, AllowTcpForwarding noX11Forwarding no disable các tính năng: chuyển tiếp cổng (port forwarding), tunnel và chuyển tiếp X11 cho user vietnix.

Các dòng cấu hình trên có thể được áp dụng cho các user khác, trong đó hãy lưu ý đổi tên user tương ứng ở dòng Match User.

Lưu ý: Bạn có thể bỏ dòng PasswordAuthentication yes để xác thực truy cập dựa trên SSH key nếu cần đảm bảo bảo mật tốt hơn. Ở bước sau, bạn sẽ cần kiểm tra cấu hình bằng cách truy cập SSH từ máy cục bộ và xác thực bằng mật khẩu, tuy nhiên nếu thiết lập xác thực dựa trên SSH key thì bạn cần có quyền truy cập vào máy tính có keypair của user.

Restart lại dịch vụ để áp dụng thay đổi:

sudo systemctl restart sshd

Bước 4: Xác thực cấu hình

Ở bước cuối cùng, bạn sẽ kiểm tra xem user vietnix đã có khả năng truyền file như mong muốn chưa.

Trước tiên, đăng nhập vào server bằng user vietnix sử dụng shell thông thường:

ssh vietnix@localhost

Quyền truy cập shell này đã bị chặn, khi đó bạn sẽ nhận thông báo lỗi như sau:

Error message This service allows sftp connections only. Connection to localhost closed.

Thông báo này cho biết user vietnix không còn quyền truy cập vào server shell bằng SSH nữa.

Tiếp theo hãy thử truy cập SFTP để truyền file:

sftp vietnix@localhost

Server sẽ cho phép user đăng nhập vào hệ thống:

SFTP prompt Connected to localhost. sftp>

Kiểm tra nội dung thư mục bằng lệnh ls, sau đó prompt sẽ hiển thị thư mục uploads được tạo trước đó:

sftp> ls

Kết quả sẽ hiển thị thư mục upload vừa tạo ở bước trên và trả về thông báo sftp>.

SFTP file list output uploads

Để xác thực xem user có bị giới hạn truy cập vào thư mục này và các thư mục ở trên nó hay không, bạn có thể thử dùng lệnh sau để di chuyển lên một thư mục phía trên:

cd ..

Lệnh trên sẽ dẫn đến lỗi vì ta không có quyền truy cập, mặc dù vẫn có thể xem nội dung của thư mục.

Như vậy là cấu hình đã được cài đặt chính xác. Bây giờ user vietnix chỉ có thể truy cập server bằng SFTP để truyền file, nhưng không có quyền truy cập vào shell.

Vietnix là nhà cung cấp dịch vụ VPS tốc độ cao uy tín hàng đầu tại Việt Nam hiện nay. Nếu cần thuê VPS để triển khai các dự án, bạn có thể yên tâm lựa chọn Vietnix.

  • Vietnix có hơn 11 năm kinh nghiệm và đồng hành cùng hơn 50.000 khách hàng.
  • Đã kích hoạt thành công hơn 100.000 dịch vụ cho khách hàng.
  • 97% khách hàng sau khi sử dụng dịch vụ tại Vietnix đưa ra đánh giá 5 sao.
  • 89% khách hàng tại Vietnix đã duy trì sử dụng dịch vụ đến thời điểm hiện tại, cho thấy sự hài lòng và tin tưởng từ phía khách hàng.
  • Sự uy tín và vị thế của Vietnix được thể hiện qua việc đạt giải thưởng Thương hiệu Việt Nam xuất sắc vào năm 2022.

Liên hệ ngay với Vietnix để được hỗ trợ tư vấn giải pháp VPS phù hợp với bạn.

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn

Lời kết

Qua bài viết này, bạn đã hoàn tất việc thiết lập SFT trên CentOS 7 mà không cần cung cấp quyền truy cập vào shell. Đối với các thư mục và user khác, bạn hoàn toàn có thể lặp lại các bước tương tự. Nếu có bất kỳ thắc mắc nào khác, hãy bình luận bên dưới để được Vietnix hỗ trợ nhanh nhất nhé.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG