Máy chủ FTP Ubuntu cơ bản


33

Tôi muốn thiết lập một máy chủ FTP cơ bản trên bản cài đặt Ubuntu Server của mình. Tôi đã chơi với VSFTPD, nhưng gặp sự cố khi máy chủ cho phép tôi tạo thư mục và sao chép tệp. Tôi đã thiết lập hệ thống để cho phép người dùng cục bộ, nhưng có vẻ như điều đó không có nghĩa là tôi có quyền truy cập để tạo thư mục. Đây có thể là một ví dụ mà tôi cần có căn cứ tốt hơn trong thiết lập máy chủ Ubuntu để định cấu hình máy chủ FTP này đầy đủ. Mục tiêu cuối cùng là có thể di chuyển các tệp từ thư mục dev cục bộ của tôi vào thư mục www để triển khai. Thư mục cần phải có khả năng di chuyển là tốt. Mọi sự trợ giúp sẽ rất được trân trọng.


Bạn đã đề cập đến việc di chuyển các tệp và thư mục từ dev cục bộ sang thư mục www - bạn đang làm tất cả điều này trên cùng một máy hoặc các máy khác nhau?
Marco Ceppi

Ngoài ra, bạn đã hoàn thành bán với VSFTPD? Hoặc bạn sẽ quan tâm đến các loại phần mềm FTP khác như purftp?
Marco Ceppi

Local dev là một máy riêng biệt hoàn toàn. Tôi quen với việc di chuyển tệp đến máy chủ web qua FTP, có lẽ có một cách tốt hơn.
JPrescottSanders

Tôi không được bán trên VSFTPD, đó là lần đầu tiên tôi tìm thấy khi đang googling, nếu bạn có một giải pháp đơn giản hơn thì tôi đều nghe thấy.
JPrescottSanders

Câu trả lời:


42

Tôi sẽ giới thiệu PureFTPD vì theo ý kiến ​​của tôi, nó đơn giản và dễ sử dụng nhất. Bạn sẽ cần cài đặt nó trước: sudo apt-get install pure-ftpdmột khi nó được cài đặt, nó sẽ tự khởi động. Theo mặc định, nó sử dụng Xác thực PAM - có nghĩa là nó sử dụng các tài khoản đã tồn tại trên hệ thống để xác thực. Tất cả những gì bạn cần làm là tạo một tài khoản người dùng với thư mục chính là đường dẫn www của bạn và đặt mật khẩu cho tài khoản đó. Sau đó, bạn sẽ có thể kết nối với kết hợp người dùng / vượt qua đó để tải lên / tải xuống tệp.

Một cái gì đó như thế này:

sudo adduser ftpman --home /var/www/ --ingroup www-data

Cái nào sẽ tạo ftpmanngười dùng và đưa anh ta vào nhóm dữ liệu www mà Apache sử dụng và sẽ đưa bạn qua phần còn lại của tập lệnh thiết lập. Khi đã được xác định, hãy đảm bảo chmodthư mục WWW nếu bạn gặp lỗi về nó đã tồn tại đối với tổ hợp người dùng / nhóm bạn đã tạo.

Cuối cùng, nếu bạn muốn khóa quyền truy cập SSH cho tài khoản đó chạy: sudo chsh -s /bin/false ftpmanđiều này sẽ thay đổi người dùng shell thành false. (Thay thế ftpman bằng người dùng ftp của bạn)


5
PureFTP là cách dễ nhất để thiết lập theo như tôi nghĩ.
Nathan Osman

1
Bạn có thói quen đưa ra lời giải thích hoàn chỉnh luôn giống như một giáo viên. Tuyệt vời!!!
dùng3215

1
Tôi đã thử điều này nhưng tôi không thể kết nối với người dùng mới được tạo. Người dùng hiện tại hoạt động tốt
wim

1
Tất cả đều hoạt động tốt, ngoại trừ khi tôi chạy, chshđiều này dường như cũng ngăn người dùng đăng nhập qua FTP. Thiết lập lại để /bin/bashcho phép nó hoạt động trở lại.
DanH

1
Cảm ơn bạn và tôi có thể xác nhận rằng tôi đã dành trọn một ngày với vsftpd và 5 phút với purftpd trong thời gian thiết lập. Để thiết lập đơn giản và an toàn, hãy sử dụng purftpd. Tôi bối rối tại sao chào hàng chính thức vsftpd!
RyBolt

10

Theo tôi SFTP là một cách tốt hơn để đi. Này, nó có từ "an toàn" trong tên, nó phải tốt hơn :)

SFTP sử dụng ssh để thực hiện chuyển tập tin (khác với FTPS, về cơ bản là FTP + TLS). Điều đó có nghĩa là nếu bạn có thể ssh với máy đích, bạn hầu như luôn có thể SFTP với nó, vì nó sử dụng cùng một cơ chế xác thực, do đó không cần phải cài đặt và cấu hình các trình nền máy chủ khác nhau (ví dụ như không có purftpd hoặc vsftpd). Miễn là quyền của bạn được đặt chính xác cho /var/www- đó có thể là vấn đề của sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER- bạn sẽ có thể sử dụng SFTP ngay lập tức.

Hầu hết các phần mềm máy khách hiện nay sẽ thực hiện SFTP khá vui vẻ và bạn cũng có thể sử dụng scptừ trình bao trên máy chủ dev để sao chép nội dung ( scp -Rsẽ sao chép toàn bộ thư mục và rất tiện dụng). Bạn thậm chí có thể đi thêm một bước nữa và tự động đăng nhập bằng các khóa công khai, nghĩa là không cần nhập mật khẩu nữa :)


3
gợi ý gợi ý ... nếu bạn có máy khách Windows, họ có thể sử dụng WinSCP woncp.net/eng/index.php để truy cập máy chủ sftp.
LassePoulsen

Theo nhận xét của bạn, OP tất nhiên nên sử dụng vsftpd, bởi vì vs là viết tắt của rất an toàn . :-)
qbi

PureFTPD sử dụng cùng một xác thực mà SFTP thực hiện - theo quan điểm của tôi thực sự an toàn hơn vì nếu thông tin tài khoản của bạn bị rò rỉ thì không ai có thể truy cập SSH vào máy của bạn. Tệ nhất là họ có quyền truy cập Tệp.
Marco Ceppi

Nếu ứng dụng của bạn chỉ hỗ trợ FTP và bạn đang tạo đường hầm cho nó qua SSH, thì sự khác biệt là gì? :)
endolith

5

Tôi thực sự khuyên bạn nên sử dụng vsftpd. Nó là một trong những trình nền FTP an toàn nhất trong Linux. Nhiều người khác đã có những điểm yếu trong quá khứ và có vẻ như FTP khó thực hiện một cách an toàn.

vsftpd bắt đầu ngay sau khi bạn cài đặt nó. Ubuntu cho phép người dùng cục bộ đăng nhập. Vì vậy, hãy khởi động ứng dụng khách FTP của bạn và đăng nhập như người dùng bình thường bằng mật khẩu hệ thống của bạn (Ví dụ của tôi sử dụng lftp):

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp qbi@127.0.0.1:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

Bây giờ tôi đang sử dụng một số loại trình quản lý tệp (Nautilus, Shell, v.v.) để tạo một thư mục mới foovà quay lại máy khách FTP của tôi:

ftp qbi@127.0.0.1:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

Thư mục ở đó và tôi có thể cdvào đó và sử dụng nó. Điều này cũng tương tự nếu bạn có người dùng đặc biệt. Ở đó bạn cũng có thể tạo các thư mục và chúng có thể truy cập ngay lập tức. Ở đây điều quan trọng là tìm kiếm quyền truy cập.


3

Tôi khiêm tốn giới thiệu một máy chủ FTP mà tôi đã tự viết từ đầu: JetFTP . Nó là cực kỳ đơn giản để cài đặt và sử dụng.


Cài đặt:

  • Thêm PPA của tôi vào các nguồn phần mềm của bạn và cập nhật:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • Chạy lệnh sau:

    sudo apt-get install jetftp
    
  • Đó là nó!

Sử dụng JetFTP rất đơn giản - chỉ cần kết nối với cổng 8021bằng tên đăng nhập và mật khẩu trên máy tính JetFTP đang chạy.


2

Không sử dụng ftp , đây là một giao thức không an toàn vốn có vì nó sẽ gửi tên người dùng và mật khẩu rõ ràng đến máy chủ. Việc thực hiện sftp cũng dễ dàng và bạn có được lợi thế rất lớn trong việc bảo mật kết nối của mình.


vấn đề rõ ràng là câu trả lời tốt nhất :-)
Sajad Bahmani

0

Có ba cách khác nhau để thiết lập máy chủ ftp:

(1) FTP ẩn danh:

Mọi người chỉ có thể truy cập máy chủ bằng tài khoản ẩn danh và không cần mật khẩu. Tất nhiên, quản trị viên máy chủ sẽ đặt giới hạn cho tải lên để ngăn người dùng đặt các tệp bất hợp pháp như nhạc / phim / trò chơi lậu.

(2) FTP có cả quyền truy cập ẩn danh và người dùng có tài khoản được mật khẩu:

Phương pháp này cho phép cả người dùng tài khoản ẩn danh và mật khẩu vào máy chủ. Họ sẽ chỉ có quyền truy cập vào một thư mục được chỉ định, ngoại trừ người dùng root có thể xem / sửa đổi / xóa tất cả các tệp và / hoặc thư mục.

(3) FTP có hỗ trợ mysql để xác thực người dùng ảo:

Phương pháp này chỉ cho phép truy cập vào máy chủ đối với một số nhóm người dùng chưa có tài khoản vỏ xác thực người dùng ảo trên hệ thống. Nó sử dụng một máy chủ mysql bên ngoài lưu trữ thông tin người dùng.

Tùy chọn đầu tiên: FTP ẩn danh

Trước khi bắt đầu tạo một máy chủ ftp ẩn danh, bạn phải thêm một người dùng được gọi là ftp vào hệ thống của bạn, với một thư mục chính. Bước này thực sự dễ dàng, chỉ cần làm theo các lệnh sau:

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

Làm điều này chỉ cho phép tài khoản này để viết trong thư mục này. Bạn có thể sử dụng nhiều biến hơn để chỉ định máy chủ ftp sẽ làm gì. Dưới đây là một số ví dụ:

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

Tùy chọn thứ hai: '' 'Cả người dùng tài khoản ẩn danh và mật khẩu' ''

Để có thể có cả người dùng tài khoản ẩn danh và mật khẩu trong cùng một máy chủ, hãy làm theo hướng dẫn nhỏ sau:

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

Tùy chọn thứ ba: '' 'Người dùng ảo với Mysql' ''

Để tạo một máy chủ có hỗ trợ mysql, hãy làm theo các bước sau:

Tải xuống và cài đặt Trình quản lý người dùng cho PureFTPd mà bạn có thể tìm thấy ở đây http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

Giải nén nó và tải lên tất cả nội dung của nó vào thư mục www của máy chủ web của bạn và sau đó viết trên trình duyệt của bạn liên kết liên kết này http: //localhost/ftp/install.php Thực hiện theo tất cả các bước mà trình cài đặt yêu cầu bạn Sao chép và lưu rge purftpd-mysql .conf vào thư mục trình quản lý người dùng purftpd

Làm xong. Truy cập vào bảng quản trị bằng liên kết này http: // localhost / ftp

Thêm tùy chọn để thêm trước khi khởi chạy quy trình máy chủ

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

Và xem điều này cho một số ứng dụng máy chủ ftp:
https://help.ubfox.com/6.06/ubfox/serverguide/C/ftp-server.html


4
Khi bạn sao chép và dán câu trả lời từ một nơi khác, bạn phải luôn ghi có nguồn .
Dori

0

Cài đặt mặc định của VSFTPD không cho phép mọi thay đổi tạo / sửa đổi theo mặc định. Bạn cần chỉnh sửa /etc/vsftpd.confvà bỏ ghi chú dòng sau ...

write_enable=YES

Và thứ hai, bạn cần cấu hình các quyền hệ thống tệp thích hợp trên các tệp và thư mục tương ứng.

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.