Cách cài đặt ProFTPd hỗ trợ TLS trên Ubuntu 15.10

theanh

Administrator
Nhân viên
FTP là một giao thức rất không an toàn vì tất cả mật khẩu và dữ liệu đều được truyền dưới dạng văn bản rõ. Bằng cách sử dụng TLS, toàn bộ giao tiếp có thể được mã hóa, do đó làm cho FTP an toàn hơn nhiều. Bài viết này giải thích cách thiết lập ProFTPd với TLS trên máy chủ Ubuntu 15.10, cách thêm người dùng FTP và cách sử dụng FileZilla để kết nối an toàn với TLS.

1 Lưu ý sơ bộ​

Trong hướng dẫn này, tôi sẽ sử dụng tên máy chủ server1.example.com với địa chỉ IP 192.168.1.100. Các thiết lập này có thể khác nhau đối với bạn, vì vậy bạn phải thay thế chúng khi cần thiết.

Vì chúng ta phải chạy tất cả các bước trong hướng dẫn này với quyền root, nên chúng ta có thể thêm chuỗi sudo vào trước tất cả các lệnh trong hướng dẫn này hoặc chúng ta trở thành root ngay bây giờ bằng cách nhập
Mã:
sudo su
Tôi sẽ sử dụng trình chỉnh sửa nano để chỉnh sửa các tệp cấu hình trong hướng dẫn này. Nếu bạn cũng muốn sử dụng nano và chưa cài đặt, hãy chạy lệnh này để cài đặt nano.
Mã:
apt-get install nano

2 Cài đặt ProFTPd và OpenSSL​

TLS cần OpenSSL; để cài đặt ProFTPd và OpenSSL, chúng ta chỉ cần chạy:
Mã:
apt-get install proftpd openssl
Bạn sẽ được hỏi một câu hỏi:

Chạy proftpd: <-- standalone

Vì lý do bảo mật, bạn nên thêm các dòng sau vào /etc/proftpd/proftpd.conf:
Mã:
nano /etc/proftpd/proftpd.conf
Mã:
[...]
DefaultRoot ~
ServerIdent on "FTP Server ready."
[...]
Tùy chọn đầu tiên cho phép chroot người dùng FTP vào thư mục gốc của họ và tùy chọn thứ hai cho phép gửi thông báo ServerIdent không chứa bất kỳ thông tin nào về phần mềm, phiên bản hoặc hệ điều hành máy chủ FTP đã sử dụng để kẻ tấn công tiềm ẩn không lấy được các thông tin chi tiết này trên silver plate.


3 Tạo Chứng chỉ SSL cho TLS​

Để sử dụng TLS, chúng ta phải tạo chứng chỉ SSL. Tôi tạo nó trong /etc/proftpd/ssl, do đó tôi tạo thư mục đó trước:
Mã:
mkdir /etc/proftpd/ssl
Sau đó, chúng ta có thể tạo chứng chỉ SSL như sau:
Mã:
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
Tên quốc gia (mã gồm 2 chữ cái) [AU]: <-- Nhập Tên quốc gia của bạn (ví dụ: "DE").
Tên tiểu bang hoặc tỉnh (tên đầy đủ) [Some-State]:<-- Nhập Tên Tiểu bang hoặc Tỉnh của bạn.
Tên Địa phương (ví dụ: thành phố) []:<-- Nhập Thành phố của bạn.
Tên Tổ chức (ví dụ: công ty) [Internet Widgits Pty Ltd]:<-- Nhập Tên Tổ chức của bạn (ví dụ: tên công ty của bạn).
Tên Đơn vị Tổ chức (ví dụ: phần) []:<-- Nhập Tên Đơn vị Tổ chức của bạn (ví dụ: "Phòng CNTT").
Tên thông dụng (ví dụ: TÊN CỦA BẠN) []:<-- Nhập Tên miền đủ điều kiện của hệ thống (ví dụ: "server1.example.com").
Địa chỉ email []:<-- Nhập Địa chỉ email của bạn.

và bảo mật các tệp chứng chỉ đã tạo.
Mã:
chmod 600/etc/proftpd/ssl/proftpd.*

4 Bật TLS trong ProFTPd​

Để bật TLS trong ProFTPd, hãy mở /etc/proftpd/proftpd.conf...
Mã:
nano /etc/proftpd/proftpd.conf
... và bỏ chú thích dòng Include /etc/proftpd/tls.conf:
Mã:
[...]
#
# Dòng này được sử dụng cho các kết nối FTPS
#
Include /etc/proftpd/tls.conf
[...]
Sau đó mở /etc/proftpd/tls.conf và làm cho nó trông như sau:
Mã:
nano /etc/proftpd/tls.conf
Mã:
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient tắt
TLSRequired bật
RequireValidShell không
Nếu bạn sử dụng TLSRequired on, thì chỉ cho phép kết nối TLS (điều này sẽ khóa bất kỳ người dùng nào có máy khách FTP cũ không hỗ trợ TLS); bằng cách bình luận dòng đó hoặc sử dụng TLSRequired off, cả kết nối TLS và không phải TLS đều được phép, tùy thuộc vào máy khách FTP hỗ trợ những gì.

Khởi động lại ProFTPd sau đó:
Mã:
systemctl restart proftpd.service
Vậy là xong. Bây giờ bạn có thể thử kết nối bằng máy khách FTP của mình; tuy nhiên, bạn nên cấu hình máy khách FTP của mình để sử dụng TLS (điều này là bắt buộc nếu bạn sử dụng TLSRequired on) - hãy xem chương tiếp theo để biết cách thực hiện điều này với FileZilla.

Nếu bạn gặp sự cố với TLS, bạn có thể xem tệp nhật ký TLS /var/log/proftpd/tls.log.


5 Thêm người dùng FTP​

Cấu hình ProFTPD được sử dụng trong hướng dẫn này xác thực người dùng với cơ sở dữ liệu người dùng hệ thống Linux (/etc/passwd và /etc/shadow). Trong bước này, tôi sẽ thêm người dùng "tom" để chỉ được sử dụng để đăng nhập FTP.
Mã:
useradd--shell /bin/false tom
Điều này sẽ thêm người dùng "tom" bằng shell /bin/false. Shell này đảm bảo rằng người dùng có thể đăng nhập bằng FTP nhưng không phải bằng SSH. Thư mục home của người dùng là /home/[USERNAME] theo mặc định, trong trường hợp của chúng tôi là /home/tom. ProFTPD được cấu hình để giam giữ người dùng vào thư mục home của họ, do đó họ không thể truy cập các tệp hệ thống bên ngoài /home/tom. Nếu bạn muốn thiết lập một thư mục home khác, hãy sử dụng lệnh bên dưới:
Mã:
useradd--home /srv/tomftp --create-home --shell /bin/false tom
Lệnh này thiết lập một thư mục home khác, trong trường hợp ví dụ này là thư mục /srv/tomftp cho người dùng.

Bước tiếp theo là thiết lập mật khẩu cho người dùng tom, thực hiện lệnh passwd:
Mã:
passwd tom
Và nhập mật khẩu mới hai lần khi được yêu cầu.


6 Cấu hình FileZilla cho TLS​

Để sử dụng FTP với TLS, bạn cần một máy khách FTP hỗ trợ TLS, chẳng hạn như FileZilla.

Trong FileZilla, hãy mở Site Manager:



Chọn máy chủ sử dụng ProFTPd với TLS; trong menu thả xuống Loại máy chủ, chọn FTPES thay vì FTP thông thường:



Bây giờ bạn có thể kết nối với máy chủ, FileZilla sẽ yêu cầu nhập mật khẩu.



Nếu bạn thực hiện thao tác này lần đầu tiên, bạn phải chấp nhận chứng chỉ SSL mới của máy chủ:



Nếu mọi thứ diễn ra tốt đẹp, bây giờ bạn sẽ được đăng nhập vào máy chủ:




7 Tải xuống thiết lập này dưới dạng VM​

Thiết lập được mô tả trong hướng dẫn này có sẵn để tải xuống cho những người đăng ký HowtoForge. Máy ảo định dạng OVA / OVF sẵn sàng sử dụng tương thích với VMWare và Virtualbox.



Chi tiết đăng nhập của VM

Máy ảo có người dùng SSH với tên "administrator" và mật khẩu "howtoforge". Người dùng SSH này có quyền sudo.

Mật khẩu của Người dùng FTP "tom" là "tom".

Địa chỉ IP của VM là 192.168.1.100, IP có thể được thay đổi trong tệp /etc/network/interfaces.

Vui lòng thay đổi mật khẩu của tất cả người dùng trước khi bạn sử dụng VM làm hệ thống trực tiếp.


8 Liên kết​

 
Back
Bên trên