Tôi đang thiết lập SFTP cho một nhóm người dùng mà tôi muốn chỉ có quyền truy cập SFTP, nhằm mục đích tải tệp lên máy chủ. Tôi đã tống giam chúng vào thư mục chính của chúng và đã chặn đăng nhập shell. Mỗi thư mục chính có một thư mục con để nhận tải lên. Tôi muốn các kết nối SFTP tự động chuyển sang thư mục tải lên này khi đăng nhập. Khá chuẩn.
tôi đang sử dụng ForceCommand
chỉ thị để đạt được điều này thành công trên một máy chủ cũ.Tuy nhiên, trên máy chủ mới tôi đang chuẩn bị, điều này không hoạt động. Tại sao?
/etc/ssh/sshd_config.d/sftpgroup.conf
Nhóm đối sánh ftpgroup
# Hai lệnh sau buộc ftpgroup phải chroot
# và chỉ có sẵn SFTP. Không cần thiết lập chroot khác.
ChrootDirectory /home/ftp_users/%u
ForceCommand nội bộ-sftp -u 0002
# Đối với chứng hoang tưởng bổ sung, không cho phép tất cả các loại chuyển tiếp cổng.
AllowTcpForwarding không
GatewayPorts không
X11Số chuyển tiếp
# Buộc ghi nhật ký cục bộ
ForceCommand /usr/lib/openssh/sftp-server -l RỘNG RÃI
# Thay đổi thư mục mặc định thành ~/upload
ForceCommand cd /tải lên
/var/log/auth.log với LogLevel DEBUG3
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: userauth-request cho người dùng phương thức kết nối ssh dịch vụ myuser không có [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: lần thử 0 thất bại 0 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_getpwnamallow nhập [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_send nhập: nhập 8 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_getpwnamallow: đang chờ MONITOR_ANS_PWNAM [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive_expect nhập: nhập 9 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive đang nhập [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive đang vào
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: monitor_read: kiểm tra yêu cầu 8
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_answer_pwnamallow
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug2: parse_server_config_depth: config xử lý lại config len 383
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug2: parse_server_config_depth: config /etc/ssh/sshd_config.d/sftpgroup.conf len 228
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: kiểm tra khớp cho 'Nhóm ftpgroup,!sftpgroup' người dùng myuser Host 1.2.3.4 addr 1.2.3.4 laddr 10.0.0.4 lport 22
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: user myuser does not match danh sách nhóm ftpgroup,!sftpgroup ở dòng 4
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: không tìm thấy kết quả khớp
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: kiểm tra khớp cho người dùng 'Nhóm ftpgroup' myuser Host 1.2.3.4 addr 1.2.3.4 laddr 10.0.0.4 lport 22
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: danh sách nhóm phù hợp với người dùng myuser ftpgroup ở dòng 9
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: tìm thấy kết quả khớp
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: /etc/ssh/sshd_config.d/sftpgroup.conf:12 setting ChrootDirectory /home/ftp_users/%u
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: /etc/ssh/sshd_config.d/sftpgroup.conf:13 setting ForceCommand internal-sftp -u 0002
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: /etc/ssh/sshd_config.d/sftpgroup.conf:15 cài đặt AllowTcpForwarding không
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: /etc/ssh/sshd_config.d/sftpgroup.conf:16 cài đặt GatewayPorts không
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: /etc/ssh/sshd_config.d/sftpgroup.conf:17 setting X11Forwarding no
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: /etc/ssh/sshd_config.d/sftpgroup.conf:21 setting ForceCommand cd /upload
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_answer_pwnamallow: gửi MONITOR_ANS_PWNAM: 1
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_send đang nhập: gõ 9
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug2: monitor_read: 8 được sử dụng một lần, tắt ngay bây giờ
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug2: input_userauth_request: thiết lập authctxt cho myuser [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_start_pam đang nhập [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_send nhập: nhập 100 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_inform_authserv đang nhập [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_send nhập: nhập 4 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug2: input_userauth_request: thử phương thức none [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: user_specific_delay: độ trễ cụ thể của người dùng 0,000 mili giây [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: ensure_minimum_time_since: đã trôi qua 2,862 mili giây, trì hoãn 4,136 mili giây (yêu cầu 6,998 mili giây) [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive đang vào
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: monitor_read: kiểm tra yêu cầu 100
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: PAM: khởi tạo cho "myuser"
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: PAM: đặt PAM_RHOST thành "1.2.3.4"
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: PAM: đặt PAM_TTY thành "ssh"
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug2: monitor_read: 100 used once, disable now
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive đang vào
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: monitor_read: kiểm tra yêu cầu 4
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_answer_authserv: service=ssh-connection, style=, role=
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug2: monitor_read: 4 dùng một lần, tắt ngay
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: userauth_finish: fail partial=0 next methods="publickey,password" [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: gửi gói: gõ 51 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: nhận gói: gõ 2 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: Đã nhận SSH2_MSG_IGNORE [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: nhận gói: nhập 50 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: userauth-request cho người dùng dịch vụ myuser mật khẩu phương thức kết nối ssh [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: lần thử 1 thất bại 0 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug2: input_userauth_request: thử mật khẩu phương thức [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_auth_password nhập [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_send nhập: gõ 12 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_auth_password: đang chờ MONITOR_ANS_AUTHPASSWORD [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive_expect nhập: nhập 13 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive đang nhập [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive đang vào
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: monitor_read: kiểm tra yêu cầu 12
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: PAM: sshpam_passwd_conv được gọi với 1 tin nhắn
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: PAM: xác thực mật khẩu được chấp nhận cho myuser
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_answer_authpassword: gửi kết quả 1
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_send đang nhập: gõ 13
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive_expect đang nhập: gõ 102
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive đang vào
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: do_pam_account: được gọi
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug2: do_pam_account: thông tin xác thực trong SSH_AUTH_INFO_0
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: PAM: do_pam_account pam_acct_mgmt = 0 (Thành công)
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_send đang nhập: gõ 103
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: Mật khẩu được chấp nhận cho myuser từ cổng 1.2.3.4 55095 ssh2
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: monitor_child_preauth: myuser đã được xác thực bởi quy trình đặc quyền
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_get_keystate: Chờ khóa mới
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive_expect đang nhập: gõ 26
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive đang vào
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_get_keystate: CÓ khóa mới
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_auth_password: người dùng đã xác thực [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: user_specific_delay: độ trễ cụ thể của người dùng 0,000 mili giây [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: ensure_minimum_time_since: đã trôi qua 7,172 mili giây, trì hoãn 6,825 mili giây (yêu cầu 6,998 mili giây) [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_do_pam_account đang nhập [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_send đang nhập: nhập 102 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive_expect đang nhập: nhập 103 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_receive đang nhập [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_do_pam_account trả về 1 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: gửi gói: gõ 52 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_request_send nhập: gõ 26 [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: mm_send_keystate: Trạng thái gửi xong [preauth]
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: monitor_read_log: nhật ký con fd đã đóng
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: ssh_sandbox_parent_finish: đã hoàn thành
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug1: PAM: thiết lập thông tin đăng nhập
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: PAM: mở phiên
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug2: do_pam_session: thông tin xác thực trong SSH_AUTH_INFO_0
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: pam_unix(sshd:session): phiên mở cho người dùng myuser(uid=1001) bởi (uid=0)
Ngày 9 tháng 3 15:18:03 MyServer systemd-logind[607]: Phiên mới 530 của người dùng myuser.
Ngày 9 tháng 3 15:18:03 MyServer systemd: pam_unix(systemd-user:session): phiên mở cho người dùng myuser(uid=1001) bởi (uid=0)
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: PAM: sshpam_store_conv được gọi với 1 tin nhắn
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: debug3: PAM: sshpam_store_conv được gọi với 1 tin nhắn
Ngày 9 tháng 3 15:18:03 MyServer sshd[393644]: Người dùng con đang sử dụng pid 393672
Ngày 9 tháng 3 15:18:03 MyServer sshd[393672]: debug1: Hỗ trợ SELinux bị tắt
Ngày 9 tháng 3 15:18:03 MyServer sshd[393672]: debug1: PAM: thiết lập thông tin đăng nhập
Ngày 9 tháng 3 15:18:03 MyServer sshd[393672]: debug3: safe_chroot: kiểm tra '/'
Ngày 9 tháng 3 15:18:03 MyServer sshd[393672]: debug3: safe_chroot: kiểm tra '/home/'
Ngày 9 tháng 3 15:18:03 MyServer sshd[393672]: debug3: safe_chroot: kiểm tra '/home/ftp_users/'
Ngày 9 tháng 3 15:18:03 MyServer sshd[393672]: debug3: safe_chroot: kiểm tra '/home/ftp_users/myuser'
Ngày 9 tháng 3 15:18:04 MyServer sshd[393644]: debug3: mm_request_receive đang vào
Ngày 9 tháng 3 15:18:04 MyServer sshd[393644]: debug3: monitor_read: kiểm tra yêu cầu 113
Ngày 9 tháng 3 15:18:04 MyServer sshd[393644]: debug3: mm_answer_audit_command đang nhập
ssh -V
Máy chủ cũ:
- OpenSSH_7.9p1 Debian-10+deb10u2, OpenSSL 1.1.1d 10 tháng 9 năm 2019
Máy chủ mới:
- OpenSSH_8.4p1 Debian-5, OpenSSL 1.1.1k Ngày 25 tháng 3 năm 2021
Cập nhật
Hóa ra trên hệ thống cũ, điều này thực sự hoạt động do các thư mục chính và liên kết tượng trưng bị thao túng, chứ không phải do ForceCommand
chỉ thị trên hệ thống đó (mặc dù chỉ thị đó tồn tại).
ln -s /home/ftp_users/myuser /home/myuser
usermod -d /home/myuser myuser
ln -s ../upload /home/ftp_users/myuser/home/myuser
Vì vậy, khi người dùng đăng nhập và thay đổi thành ~
nó đi đến /nhà/người dùng của tôi
đó là một liên kết tượng trưng cho /tải lên
. Khi khớp thiết lập thư mục chính với hệ thống cũ, hệ thống mới hiện định tuyến chính xác khi đăng nhập. Hơi hack và chắc chắn là dưới mức tối ưu (đã cố gắng tránh nó), nhưng nó "hoạt động".
Vì vậy, sau đó câu hỏi trở thành, tại sao không ForceCommand
ghi đè cái này? Là nó thực hiện ở tất cả? Làm thế nào tôi có thể nói?