Một số lựa chọn thay thế an toàn cho FTP là gì? [đóng cửa]


22

Câu chuyện Hacker News này là tất cả về những nhược điểm của FTP. Lý do duy nhất tôi có thể thiết lập FTP là nó dễ dàng.

Tôi đã biết và sử dụng scp, nhưng đôi khi tôi muốn chia sẻ tệp với ai đó mà không cho họ sshquyền truy cập vào máy chủ của mình. Tôi muốn họ có thể tải lên và tải xuống các tệp, nhưng không có gì khác, và tôi muốn giới hạn chúng vào một thư mục duy nhất. Tôi cũng muốn kết nối của họ được mã hóa như thế nào ssh.

Một số lựa chọn thay thế cho FTP đáp ứng các tiêu chí này là gì?


2
Bạn có thể sử dụng scp mà không cần ssh xem: serverfault.com/questions3534615/allow-sftp-but-disallow-ssh
Stone

1
Tôi sẽ không bận tâm đến việc đọc bài viết đó nhưng đáng nhớ rằng FTP được thiết kế để sử dụng trong một mạng kín (phòng thí nghiệm trên lầu đến / từ các máy chủ trong tầng hầm), vì vậy bảo mật thậm chí không bao giờ được xem xét. Thật đáng ngạc nhiên khi nó vẫn được sử dụng trên các mạng công cộng.
John Gardeniers

1
Một số người có thể cho rằng ftp hoàn toàn không được thiết kế, nhưng được phát triển thông qua Ý tưởng tốt do nhiều người tạo ra để chuyển tập tin từ lâu trước khi đóng cửa trở thành một tài sản quan sát được cho các mạng, khi điều khiển truy cập xảy ra với cửa bị khóa và nhìn chằm chằm.
Eroen

Câu trả lời:


7

Proftpd có một máy chủ sftp tích hợp cho phép bạn tách biệt hoàn toàn người dùng khỏi sshd cho mục đích chuyển tập tin. Bạn có thể thiết lập nó để nó sử dụng một tệp passwd hoàn toàn riêng biệt để cô lập chúng hơn nữa (thật khó để đăng nhập vào hệ thống bằng ssh và vượt qua một chroot nếu bạn không thực sự có người dùng trong / etc / passwd .. .)

proftpd cũng cho phép bạn chroot và cô lập người dùng sftp với một tập hợp các thư mục khá dễ dàng.

Chúng tôi làm một cái gì đó như thế này:

LoadModule mod_sftp.c

<VirtualHost 10.1.1.217>

    ServerName  "ftp.example.com"

    # from http://www.proftpd.org/docs/howto/NAT.html
    MasqueradeAddress   1.2.3.4
    PassivePorts 27001 27050

    UseSendfile off

    ExtendedLog         /var/log/proftpd/access.log WRITE,READ default
    ExtendedLog         /var/log/proftpd/auth.log AUTH auth

    AuthUserFile /etc/proftpd/AuthUsersFile
    AuthOrder           mod_auth_file.c 

    <IfModule mod_sftp.c>
        Port 10022
    SFTPAuthorizedUserKeys file:/etc/proftpd/ssh_authorized_keys/%u
        SFTPEngine On
        SFTPLog /var/log/proftpd/sftp.log
        SFTPHostKey /etc/ssh/proftpd-ssh_host_rsa_key
        SFTPHostKey /etc/ssh/proftpd-ssh_host_dsa_key
        MaxLoginAttempts 6
    </IfModule>
</VirtualHost>

1
Để hỗ trợ người mới, nếu OP cần trợ giúp để thiết lập điều này, tôi có một hướng dẫn hoàn toàn cơ bản ở đây: csrdu.org/nauman/2011/02/13/ mẹo
recluze

3

Tôi sẽ sử dụng WebDav với máy chủ hỗ trợ https! Việc xác thực sau đó dựa trên sơ đồ ủy quyền http tiêu chuẩn. Một hướng dẫn để thiết lập webdav với apache có thể được tìm thấy ở đây, sau đó chỉ cần đặt tài nguyên đó phía sau https, và ở đây tôi đã tìm thấy một mô tả hay về cách thực hiện điều đó .


Với ngôn ngữ được sử dụng ở đây, ít nhất bạn có thể đã liên kết với một phiên bản tiếng Anh của bài viết.
John Gardeniers

haha xin lỗi đã không nhận ra sai lầm đó Cảm ơn đã sửa!
tham gia

1

Bạn đã không chỉ định "miễn phí" là một yêu cầu, vì vậy tôi sẽ loại bỏ gói Chuyển tuyến lớn theo nhóm. Nó có thể là một chút quá mức đối với hầu hết mọi người, và trong phạm vi giá của họ, nhưng bộ tính năng không có gì là kỳ lạ tuyệt vời. Nhận máy chủ Mass Transit thứ hai và bật sáng tự động hóa và bạn đang di chuyển một số tệp thực sự nhanh chóng.


0

Bạn có thể thiết lập sftpsử dụng sshtrong chế độ tương tự ftp.

Bạn có thể tạo một số người dùng (một hoặc nhiều, tùy thuộc vào việc mỗi người dùng có thể truy cập tệp của nhau hay không) trong máy của bạn, cung cấp cho họ shell / bin / false và chrootmỗi người dùng vào một thư mục chứa các tệp đó đặt.


0

Bạn có thể sử dụng ftpd thuần với mã hóa TLS được kích hoạt. Cấu hình rất đơn giản, để cho phép tùy chọn TLS không mã hóa trong tệp cấu hình (chỉ một dòng :)), định cấu hình máy khách của bạn để kết nối qua ftps và đó là nó. (Bạn phải nhớ rằng không phải tất cả các máy khách ftp đều hỗ trợ ftps).


-1

Bạn có thể bật và tải xuống bằng rsync qua ssh mà không cho phép đăng nhập bằng cách đặt rsync làm vỏ đăng nhập cho người dùng. Điều này cho phép tất cả các tính năng của ssh, bao gồm thông tin đăng nhập chứng chỉ, mã hóa và quyền hoạt động của hệ thống tệp tiêu chuẩn trong khi không kích hoạt tài khoản shell (vì tài khoản sẽ không có shell nhưng rsync =)).


Và làm thế nào để an toàn hơn? Vẫn còn rõ ràng ...
EEAA

Điều đó phụ thuộc vào cách bạn thiết lập nó. Cách phổ biến (cách duy nhất tôi từng thấy) là sử dụng ssh và đặt rsync làm vỏ đăng nhập hoặc (để truy cập root) các lệnh ssh dành riêng cho lệnh.
Eroen

1
Rsync, khi chạy một dịch vụ (như bạn đề xuất trong câu trả lời của mình) không có mã hóa. Tất nhiên đó không phải là trường hợp với rsync + ssh. Bạn có thể chỉnh sửa câu trả lời của bạn để làm cho ý nghĩa của bạn rõ ràng hơn.
EEAA

Những thay đổi đã xảy ra (trong trường hợp ai đó thấy các ý kiến ​​trên phù hợp xấu).
Eroen

Mặc dù nó không được yêu cầu nhưng điều đáng nói là mặc dù có bất kỳ số lượng giao diện dễ sử dụng nào cho các giao thức giống như FTP và FTP mà cá nhân tôi không biết về giao diện rsync. Nếu người dùng dự định là phi kỹ thuật có thể là một vấn đề.
John Gardeniers
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.