Android

Làm thế nào để thiết lập nhà tù sftp chroot

SFTP Server Chroot Configuration | How to Setup Chroot SFTP in Linux

SFTP Server Chroot Configuration | How to Setup Chroot SFTP in Linux

Mục lục:

Anonim

Trong hướng dẫn này, chúng tôi sẽ giải thích cách thiết lập môi trường Nhà tù SFTP Chroot sẽ hạn chế người dùng vào thư mục nhà của họ. Người dùng sẽ chỉ có quyền truy cập SFTP, quyền truy cập SSH sẽ bị tắt. Các hướng dẫn này sẽ hoạt động cho mọi phân phối Linux hiện đại bao gồm Ubuntu, CentOS, Debian và Fedora.

Tạo một nhóm SFTP

Thay vì định cấu hình máy chủ OpenSSH cho từng người dùng, chúng tôi sẽ tạo một nhóm mới và thêm tất cả người dùng được chọn vào nhóm này.

Chạy lệnh groupadd sau để tạo nhóm người dùng sftponly :

sudo groupadd sftponly Bạn có thể đặt tên nhóm theo ý muốn.

Thêm người dùng vào nhóm SFTP

Bước tiếp theo là thêm người dùng mà bạn muốn giới hạn vào nhóm sftponly .

Nếu đây là thiết lập mới và người dùng không tồn tại, bạn có thể tạo tài khoản người dùng mới bằng cách nhập:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • Tùy chọn -g sftponly sẽ thêm người dùng vào nhóm sftponly. Tùy chọn -s /bin/false đặt vỏ đăng nhập của người dùng. Bằng cách đặt shell đăng nhập thành /bin/false , người dùng sẽ không thể đăng nhập vào máy chủ thông qua SSH. Tùy chọn -m -d /home/username biết để tạo thư mục nhà của người dùng.

Đặt mật khẩu mạnh cho người dùng mới tạo:

sudo passwd username

sftponly khác, nếu người dùng bạn muốn hạn chế đã tồn tại, hãy thêm người dùng vào nhóm sftponly và thay đổi trình bao của người dùng:

sudo usermod -G sftponly -s /bin/false username2

Thư mục nhà người dùng phải được sở hữu bởi root và có 755 quyền:

sudo chown root: /home/username sudo chmod 755 /home/username

Vì các thư mục gốc của người dùng được sở hữu bởi người dùng root, những người dùng này sẽ không thể tạo các tệp và thư mục trong các thư mục chính của họ. Nếu không có thư mục trong nhà của người dùng, bạn sẽ cần tạo các thư mục mới mà người dùng sẽ có quyền truy cập đầy đủ. Ví dụ: bạn có thể tạo các thư mục sau:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

Nếu một ứng dụng web đang sử dụng thư mục public_html của người dùng làm gốc tài liệu, những thay đổi này có thể dẫn đến các vấn đề về quyền. Ví dụ: nếu bạn đang chạy WordPress, bạn sẽ cần tạo một nhóm PHP sẽ chạy khi người dùng sở hữu các tệp và thêm trình xóa web vào nhóm sftponly .

Cấu hình SSH

SFTP là một hệ thống con của SSH và hỗ trợ tất cả các cơ chế xác thực SSH.

Mở tệp cấu hình SSH /etc/ssh/sshd_config bằng trình soạn thảo văn bản của bạn:

sudo nano /etc/ssh/sshd_config

Tìm kiếm dòng bắt đầu với Subsystem sftp , thường là ở cuối tệp. Nếu dòng bắt đầu bằng hàm băm # xóa băm # và sửa đổi nó thành như sau:

/ etc / ssh / sshd_config

Subsystem sftp internal-sftp

Đến cuối tập tin, khối cài đặt sau:

/ etc / ssh / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

Lệnh ChrootDirectory chỉ định đường dẫn đến thư mục chroot. %h có nghĩa là thư mục nhà của người dùng. Thư mục này, phải được sở hữu bởi người dùng root và không thể ghi bởi bất kỳ người dùng hoặc nhóm nào khác.

Cẩn thận hơn khi sửa đổi tệp cấu hình SSH. Cấu hình không chính xác có thể khiến dịch vụ SSH không khởi động được.

Khi bạn đã hoàn tất, hãy lưu tệp và khởi động lại dịch vụ SSH để áp dụng các thay đổi:

sudo systemctl restart ssh

Trong CentOS và Fedora, dịch vụ ssh được đặt tên là sshd :

sudo systemctl restart sshd

Kiểm tra cấu hình

Bây giờ bạn đã cấu hình chroot SFTP, bạn có thể thử đăng nhập vào máy từ xa thông qua SFTP bằng thông tin đăng nhập của người dùng chroot. Trong hầu hết các trường hợp, bạn sẽ sử dụng máy khách SFTP trên máy tính để bàn như FileZilla nhưng trong ví dụ này, chúng tôi sẽ sử dụng lệnh sftp.

Mở kết nối SFTP bằng lệnh sftp theo sau là tên người dùng máy chủ từ xa và địa chỉ IP của máy chủ hoặc tên miền:

sftp [email protected]

Bạn sẽ được nhắc nhập mật khẩu người dùng. Sau khi kết nối, máy chủ từ xa sẽ hiển thị thông báo xác nhận và lời nhắc sftp> :

[email protected]'s password: sftp>

Chạy lệnh pwd , như hiển thị bên dưới, và nếu mọi thứ hoạt động như mong đợi, lệnh sẽ trả về / .

sftp> pwd Remote working directory: /

Bạn cũng có thể liệt kê các tệp và thư mục từ xa bằng ls và bạn sẽ thấy các thư mục mà chúng tôi đã tạo trước đó:

sftp> ls public_html uploads

Phần kết luận

Trong hướng dẫn này, bạn đã học cách thiết lập môi trường Bẻ khóa SFTP Chroot trên máy chủ Linux của bạn và hạn chế quyền truy cập của người dùng vào thư mục chính của họ.

Theo mặc định, SSH lắng nghe trên cổng 22. Thay đổi cổng SSH mặc định sẽ thêm một lớp bảo mật bổ sung cho máy chủ của bạn bằng cách giảm nguy cơ tấn công tự động. Bạn cũng có thể muốn thiết lập xác thực dựa trên khóa SSH và kết nối với máy chủ mà không cần nhập mật khẩu.

bảo mật sshp