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
10/03/2025
Lượt xem

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

10/03/2025
11 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 bảo mật được sử dụng để truyền tải file giữa máy khách và máy chủ thông qua kết nối SSH. Một ưu điểm nổi bật của SFTP là khả năng hạn chế quyền truy cập của người dùng chỉ trong phạm vi truyền file mà không cần cấp quyền truy cập Shell. Điều này giúp tăng cường bảo mật và hạn chế rủi ro truy cập trái phép vào hệ thống máy chủ. Cùng mình tìm hiểu cách bật SFTP không cần truy cập Shell trên CentOS 7 ngay sau đây.

Những điểm chính 

  • Giới thiệu về SFTP và giới hạn quyền truy cập SSH: Hiểu được SFTP là giao thức truyền file an toàn qua SSH và tại sao việc giới hạn quyền truy cập SSH lại quan trọng.
  • Điều kiện tiên quyết: Liệt kê những thứ cần chuẩn bị trước khi thực hiện các bước cấu hình.
  • Hướng dẫn cách bật SFTP không cần truy cập Shell trên CentOS 7: Cung cấp các bước thực hiện chi tiết như tạo user mới, tạo thư mục để truyền file, giới hạn truy cập cho một thư mục, xác thực cấu hình.
  • Giới thiệu Vietnix: Biết đến Vietnix là đối tác tin cậy cho giải pháp VPS chuyên nghiệp.

Giới thiệu về SFTP và giới hạn quyền truy cập SSH

SFTP (SSH File Transfer Protocol) là một phương thức truyền tải file an toàn, đơn giản và dễ sử dụng, thường được tích hợp sẵn trên các máy chủ hỗ trợ SSH. Theo thiết lập mặc định, SSH cho phép mọi người dùng có tài khoản trên hệ thống truy cập cả tập tin (qua SFTP) và terminal shell, điều này tiềm ẩn rủi ro bảo mật.

Trong các tình huống cần tăng cường bảo mật, bạn có thể giới hạn quyền truy cập của một số người dùng, chỉ cho phép họ truyền tải tập tin qua SFTP mà không cấp quyền sử dụng shell. Cách thiết lập này giúp bảo vệ hệ thống máy chủ tốt hơn, đồng thời quản lý quyền truy cập người dùng hiệu quả hơn.

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

Điều kiện để thực hiện cách bật SFTP không cần truy cập Shell trên CentOS 7

Để để thực hiện cách bật SFTP không cần truy cập Shell trên CentOS 7, trước tiên bạn cần đảm bảo đã có:

  • Một máy chủ CentOS 7 với một người dùng non-root có quyền sudo.
  • Một trình soạn thảo văn bản (text editor) như nano hoặc vim.

Nếu bạn chưa có máy chủ, có thể cân nhắc các gói VPS của Vietnix, bao gồm VPS Giá Rẻ cho đến VPS SSD, VPS AMDVPS NVMe, phù hợp với nhiều nhu cầu và ngân sách. Vietnix cung cấp dịch vụ VPS hiệu năng mạnh mẽ, tốc độ cao và hỗ trợ kỹ thuật 24/7, lý tưởng cho việc truyền tải và quản lý file SFTP, đặc biệt là các file lớn. Liên hệ Vietnix để biết thêm chi tiết.

Sau khi chuẩn bị xong, bạn hãy làm theo các bước tiếp theo để cấu hình daemon SSH.

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. Ở bài viết này, mình 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.

iconLư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.

iconLư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 – Đối tác tin cậy cho giải pháp VPS chuyên nghiệp

Vietnix là nhà cung cấp dịch vụ VPS uy tín với hơn 12 năm kinh nghiệm trong ngành. Với hạ tầng kỹ thuật hiện đại, Vietnix mang đến các giải pháp máy chủ ảo tốc độ cao và ổn định vượt trội, đáp ứng mọi nhu cầu từ cá nhân đến doanh nghiệp. Hệ thống VPS của Vietnix hỗ trợ đa dạng hệ điều hành, cho phép khách hàng linh hoạt lựa chọn nền tảng phù hợp với ứng dụng của mình. Điểm nổi bật của Vietnix là đội ngũ kỹ thuật chuyên nghiệp, sẵn sàng hỗ trợ 24/7, giúp khách hàng nhanh chóng xử lý mọi vấn đề phát sinh, đảm bảo hệ thống luôn vận hành trơn tru và hiệu quả.

Thông tin liên hệ:

  • Đị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
  • Website: https://vietnix.vn/ 

Hy vọng qua bài viết này, bạn đã nắm rõ cách bật SFTP không cần truy cập Shell trên CentOS 7. Phương pháp này không chỉ giúp tăng cường bảo mật cho hệ thống mà còn đảm bảo người dùng chỉ có quyền truy cập vào các thư mục được chỉ định. Nếu bạn gặp bất kỳ vấn đề nào trong quá trình thực hiện, đừng ngần ngại tìm kiếm sự hỗ trợ từ đội ngũ kỹ thuật hoặc để lại câu hỏi để được giải đáp kịp thời. Chúc bạn thành công!

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

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

Banner group
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

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi cuối tháng 3
Nhanh tay, số lượng có hạn!
17/03/2025 - 31/03/2025
Pattern

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

Icon
ĐĂ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

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
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