18/09/2018, 16:43

Làm thế nào để thiết lập vsftpd cho tải xuống ẩn danh trên Ubuntu 16.04

Giới thiệu FTP, viết tắt của File Transfer Protocol, là một giao thức mạng đã từng được sử dụng rộng rãi để di chuyển các tệp giữa máy khách và máy chủ. Từ đó nó đã được thay thế bằng các cách phân phối tệp nhanh hơn, an toàn hơn và thuận tiện hơn. Nhiều người dùng Internet thông thường mong muốn ...

Giới thiệu

FTP, viết tắt của File Transfer Protocol, là một giao thức mạng đã từng được sử dụng rộng rãi để di chuyển các tệp giữa máy khách và máy chủ. Từ đó nó đã được thay thế bằng các cách phân phối tệp nhanh hơn, an toàn hơn và thuận tiện hơn. Nhiều người dùng Internet thông thường mong muốn tải xuống trực tiếp từ trình duyệt web của họ https và người dùng dòng lệnh có nhiều khả năng sử dụng các giao thức bảo mật hơn như scp hoặc là sFTP.

FTP thường được sử dụng để hỗ trợ các ứng dụng cũ và luồng công việc với các nhu cầu rất cụ thể. Nếu bạn có lựa chọn giao thức để sử dụng, hãy xem xét khám phá các tùy chọn hiện đại hơn. Tuy nhiên, khi bạn cần FTP, vsftpd là một lựa chọn tuyệt vời. Tối ưu hóa cho bảo mật, hiệu suất và tính ổn định, vsftpd cung cấp khả năng bảo vệ mạnh mẽ chống lại nhiều vấn đề bảo mật được tìm thấy trong các máy chủ FTP khác và là mặc định cho nhiều bản phân phối Linux.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập vsftpd cho trang web tải xuống FTP ẩn danh nhằm phân phối rộng rãi các tệp công khai. Thay vì sử dụng FTP để quản lý các tệp, người dùng cục bộ sudo đặc quyền dự kiến ​​sẽ sử dụng scp, sFTPhoặc bất kỳ giao thức bảo mật nào khác mà họ chọn để chuyển và duy trì tệp.

Điều kiện tiên quyết

Để làm theo hướng dẫn này, bạn sẽ cần:

  • Máy chủ Ubuntu 16.04 với người dùng không phải root với sudo đặc quyền: Bạn có thể tìm hiểu thêm về cách thiết lập người dùng với các đặc quyền này trong Thiết lập máy chủ ban đầu với Ubuntu 16.04 hướng dẫn.

Một khi bạn có máy chủ tại chỗ, bạn đã sẵn sàng để bắt đầu.

Bước 1 - Cài đặt vsftpd

Chúng tôi sẽ bắt đầu bằng cách cập nhật danh sách gói của chúng tôi và cài đặt vsftpd daemon:

sudo apt-get update

sudo apt-get install vsftpd

Khi quá trình cài đặt hoàn tất, chúng tôi sẽ sao chép tệp cấu hình để chúng tôi có thể bắt đầu với cấu hình trống, lưu bản gốc làm bản sao lưu.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Với bản sao lưu của cấu hình tại chỗ, chúng tôi đã sẵn sàng để cấu hình tường lửa.

Bước 2 - Mở Firewall

Trước tiên, hãy kiểm tra trạng thái tường lửa để xem liệu nó có được kích hoạt hay không và nếu có, để xem những gì hiện được cho phép để khi đến lúc kiểm tra cấu hình, bạn sẽ không chạy vào các quy tắc tường lửa chặn bạn.

sudo ufw status

Trong trường hợp của chúng ta, chúng ta thấy như sau:

OutputOutput
Status: active

To Action  From
-- ------  ----
OpenSSH ALLOW   Anywhere
OpenSSH (v6)   ALLOW   Anywhere (v6)

Bạn có thể có các quy tắc khác tại chỗ hoặc không có quy tắc tường lửa nào cả. Trong ví dụ này, chỉ ssh lưu lượng truy cập được cho phép, vì vậy chúng tôi sẽ cần phải thêm quy tắc cho lưu lượng truy cập FTP.

Với nhiều ứng dụng, bạn có thể sử dụng sudo ufw app list và kích hoạt chúng theo tên, nhưng FTP không phải là một trong số đó. Vì ufw cũng kiểm tra / etc / services cho cổng và giao thức của một dịch vụ, chúng tôi vẫn có thể thêm FTP theo tên. Chúng ta cần cả hai ftp-data trên cổng 20 và ftp (đối với lệnh) trên cổng 21:

sudo ufw allow ftp-data

sudo ufw allow ftp

sudo ufw status

Bây giờ các quy tắc tường lửa của chúng ta trông giống như sau:

OutputStatus: active

To Action  From
-- ------  ----
OpenSSH  ALLOW   Anywhere
21/tcp ALLOW   Anywhere
20/tcp ALLOW   Anywhere
OpenSSH (v6)   ALLOW   Anywhere (v6)
21/tcp (v6)ALLOW   Anywhere (v6)
20/tcp (v6)ALLOW   Anywhere (v6)

Với vsftpd cài đặt và các cổng cần thiết mở, chúng tôi đã sẵn sàng để tiếp tục.

Bước 3 - Chuẩn bị không gian cho các tập tin

Đầu tiên, chúng tôi sẽ tạo thư mục nơi chúng tôi dự định lưu trữ các tệp, bằng cách sử dụng -p để tạo thư mục trung gian. Cấu trúc thư mục sẽ cho phép bạn giữ tất cả các thư mục FTP với nhau và sau đó thêm các thư mục khác yêu cầu xác thực:

sudo mkdir -p /var/ftp/pub

Tiếp theo, chúng tôi sẽ đặt quyền thư mục cho nobody:nogroup. Sau đó, chúng tôi sẽ cấu hình máy chủ FTP để hiển thị tất cả các tệp đang được người dùng và nhóm ftp sở hữu.

sudo chown nobody:nogroup /var/ftp/pub

Cuối cùng, chúng tôi sẽ tạo một tệp trong thư mục để kiểm tra sau.

 echo "vsftpd test file" | sudo tee /var/ftp/pub/test.txt

Với tệp mẫu này tại chỗ, chúng tôi đã sẵn sàng định cấu hình trình nền vsftpd.

Bước 4 - Cấu hình truy cập ẩn danh

Chúng tôi đang thiết lập cho người dùng sudo đặc quyền để duy trì các tệp để phân phối rộng cho công chúng. Để làm điều này, chúng ta sẽ cấu hình vsftpd để cho phép tải xuống ẩn danh. Chúng tôi hy vọng quản trị viên tệp sẽ sử dụng scp, sftp hoặc bất kỳ phương pháp bảo mật nào khác để duy trì tệp, vì vậy chúng tôi sẽ không cho phép tải lên tệp qua FTP.

Tệp cấu hình chứa một số tùy chọn cấu hình cho vsftpd.

Chúng ta sẽ bắt đầu bằng cách thay đổi những cái đã được thiết lập:

sudo nano /etc/vsftpd.conf

Tìm các giá trị sau và chỉnh sửa chúng để chúng khớp với các giá trị bên dưới:

/etc/vsftpd.conf

. . .
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=YES
#

We’ll set the local_enable setting to “NO” because we’re not going to allow users with local accounts to upload files via FTP. The comment in the configuration file can be a little confusing, too, because the line is uncommented by default. 
# Uncomment this to allow local users to log in.
local_enable=NO
. . .

Ngoài việc thay đổi cài đặt hiện tại, chúng tôi sẽ thêm một số cấu hình bổ sung.

Chú thích: Bạn có thể tìm hiểu về toàn bộ các tùy chọn với man vsftpd.conf chỉ huy.

Thêm các cài đặt này vào tệp cấu hình. Chúng không phụ thuộc vào thứ tự, vì vậy bạn có thể đặt chúng ở bất cứ đâu trong tệp.

#
# Point users at the directory we created earlier.
anon_root=/var/ftp/
#
# Stop prompting for a password on the command line.
no_anon_password=YES
#
# Show the user and group as ftp:ftp, regardless of the owner.
hide_ids=YES
#
# Limit the range of ports that can be used for passive FTP
pasv_min_port=40000
pasv_max_port=50000

Chú thích: Nếu bạn đang sử dụng UFW, các cài đặt này hoạt động như hiện trạng. Nếu bạn đang sử dụng Iptables, bạn có thể cần phải thêm quy tắc để mở các cổng bạn chỉ định giữa pasv_min_port và pasv_max_port.

Khi đã thêm, hãy lưu và đóng tệp. Sau đó, khởi động lại daemon bằng lệnh sau:

sudo systemctl restart vsftpd

systemctl không hiển thị kết quả của tất cả các lệnh quản lý dịch vụ, vì vậy nếu bạn muốn chắc chắn bạn đã thành công, hãy sử dụng lệnh sau:

sudo systemctl status vsftpd

Nếu dòng cuối cùng nói giống như sau, bạn đã thành công:

OutputAug 17 17:49:10 vsftpd systemd[1]: Starting vsftpd FTP server...
Aug 17 17:49:10 vsftpd systemd[1]: Started vsftpd FTP server.

Bây giờ chúng tôi đã sẵn sàng để thử nghiệm công việc của mình.

Bước 5 - Kiểm tra truy cập ẩn danh

Từ trình duyệt web, nhập ftp: // theo sau là địa chỉ IP của của bạn máy chủ.

ftp: //203.0.113.0

Nếu mọi thứ hoạt động như mong đợi, bạn sẽ thấy pub danh mục:

Image of the 'pub' folder in a browser

Bạn cũng có thể nhấp vào pub, xem test.txt, sau đó nhấp chuột phải để lưu tệp.

Image of the 'test.txt' file in a browser

Bạn cũng có thể kiểm tra từ dòng lệnh, điều này sẽ cung cấp nhiều phản hồi hơn về cấu hình của bạn. Chúng tôi sẽ ftp vào máy chủ ở chế độ thụ động, đó là -p gắn cờ trên nhiều máy khách dòng lệnh. Chế độ thụ động cho phép người dùng tránh thay đổi cấu hình tường lửa cục bộ để cho phép máy chủ và máy khách kết nối.

Chú thích: Trình khách FTP dòng lệnh Windows gốc, ftp.exe, không hỗ trợ chế độ thụ động. Người dùng Windows có thể muốn xem xét một máy khách Windows FTP khác chẳng hạn như WinSCP.

ftp -p 203.0.113.0

Khi được nhắc nhập tên người dùng, bạn có thể nhập "ftp" hoặc "ẩn danh". Chúng tương đương nhau, vì vậy chúng tôi sẽ sử dụng "ftp" ngắn hơn:

Connected to 203.0.113.0.
220 (vsftpd 3.0.3)
Name (203.0.113.0:21:sammy): ftp

Sau khi nhấn enter, bạn sẽ nhận được các thông tin sau:

Output
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Đảm bảo rằng chế độ thụ động hoạt động như mong đợi:

ls

Output227 Entering Passive Mode (45,55,187,171,156,74).
150 Here comes the directory listing.
drwxr-xr-x    2 ftp      ftp          4096 Aug 17 19:30 pub
226 Directory send OK.

Là người dùng ẩn danh, bạn có thể chuyển tệp sang máy cục bộ của mình bằng get chỉ huy:

cd pub

get test.txt

Outputftp> get test.txt
227 Entering Passive Mode (45,55,187,171,156,73).
150 Opening BINARY mode data connection for test.txt (14 bytes).
226 Transfer complete.
16 bytes received in 0.0121 seconds (1325 bytes/s)

Đầu ra này cho bạn biết rằng bạn đã thành công trong việc tải xuống tệp và bạn có thể xem nhanh xem tệp đó có trên hệ thống tệp cục bộ của bạn nếu bạn muốn.

Chúng tôi cũng muốn chắc chắn rằng những người dùng ẩn danh sẽ không điền vào hệ thống tệp của chúng tôi, vì vậy để kiểm tra, chúng tôi sẽ quay lại và thử đặt cùng một tệp trên máy chủ nhưng với tên mới:

put test.txt upload.txt

Output227 Entering Passive Mode (104,236,10,192,168,254).
550 Permission denied.

Bây giờ chúng tôi đã xác nhận điều này, chúng tôi sẽ thoát khỏi màn hình để chuẩn bị cho bước tiếp theo:

bye

Bây giờ chúng tôi đã xác nhận rằng kết nối ẩn danh đang hoạt động như mong đợi, chúng tôi sẽ chuyển sự chú ý của mình sang những gì xảy ra khi người dùng cố gắng kết nối.

Bước 6 - Cố gắng kết nối với tư cách người dùng

Bạn cũng có thể muốn chắc chắn rằng bạn không thể kết nối với tư cách người dùng bằng tài khoản cục bộ kể từ khi thiết lập này không mã hóa thông tin xác thực đăng nhập của họ. Thay vì nhập "ftp" hoặc "ẩn danh" khi bạn được nhắc đăng nhập, hãy thử sử dụng người dùng sudo của bạn:

ftp -p 203.0.113.0

OutputConnected to 203.0.113.0:21.
220 (vsFTPd 3.0.3)
Name (203.0.113.0:21:your_user)
530 This FTP server is anonymous only.
ftp: Login failed.
ftp>

Các kiểm tra này xác nhận rằng bạn đã thiết lập hệ thống chỉ để tải xuống ẩn danh.

Phần kết luận

Trong hướng dẫn này, chúng tôi đã giới thiệu cách cấu hình vsftpd chỉ để tải xuống ẩn danh. Điều này cho phép chúng tôi hỗ trợ các ứng dụng cũ không thể sử dụng các giao thức hiện đại hơn hoặc các url FTP được xuất bản rộng rãi mà khó cập nhật. Để tìm hiểu thêm về cách duy trì tệp, Cách sử dụng SFTP để chuyển tệp an toàn bằng máy chủ từ xa có thể hướng dẫn bạn.

0