CentOS 7| Cài đặt và cấu hình FTP
Mục lục:
- Điều kiện tiên quyết
- Cài đặt vsftpd trên CentOS 7
- Cấu hình vsftpd
- 1. Truy cập FTP
- 2. Kích hoạt tải lên
- 3. Nhà tù Chroot
- 4. Kết nối FTP thụ động
- 5. Hạn chế đăng nhập người dùng
- 6. Đảm bảo truyền tiền với SSL / TLS
- Khởi động lại dịch vụ vsftpd
- Mở tường lửa
- Tạo người dùng FTP
- Vô hiệu hóa quyền truy cập Shell
- Phần kết luận
FTP (Giao thức truyền tệp) là một giao thức mạng máy khách-máy chủ tiêu chuẩn cho phép người dùng truyền tệp đến và từ một mạng từ xa.
Có một số máy chủ FTP nguồn mở có sẵn cho Linux. Phổ biến nhất và được sử dụng rộng rãi là PureFTPd, ProFTPD và vsftpd.
Trong hướng dẫn này, chúng tôi sẽ cài đặt vsftpd (Daemon Ftp rất an toàn) trên CentOS 7. Đây là một máy chủ FTP ổn định, an toàn và nhanh chóng. Chúng tôi cũng sẽ chỉ cho bạn cách định cấu hình vsftpd để hạn chế người dùng vào thư mục chính của họ và mã hóa toàn bộ truyền bằng SSL / TLS.
Để truyền dữ liệu an toàn hơn và nhanh hơn, hãy sử dụng SCP hoặc SFTP.
Điều kiện tiên quyết
Trước khi tiếp tục với hướng dẫn này, hãy đảm bảo bạn đã đăng nhập với tư cách là người dùng có quyền sudo.
Cài đặt vsftpd trên CentOS 7
Gói vsftpd có sẵn trong kho CentOS mặc định. Để cài đặt nó, hãy dùng lệnh sau:
sudo yum install vsftpd
Khi gói được cài đặt, hãy khởi động trình nền vsftpd và cho phép nó tự động bắt đầu khi khởi động:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Bạn có thể xác minh dịch vụ vsftpd đang chạy bằng cách in trạng thái của nó:
sudo systemctl status vsftpd
Đầu ra sẽ trông giống như bên dưới, cho thấy dịch vụ vsftpd đang hoạt động và đang chạy:
● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Cấu hình vsftpd
Định cấu hình dịch vụ vsftpd liên quan đến việc chỉnh sửa tệp cấu hình
/etc/vsftpd/vsftpd.conf
. Hầu hết các cài đặt được ghi lại tốt trong tập tin cấu hình. Đối với tất cả các tùy chọn có sẵn, hãy truy cập trang vsftpd chính thức.
Trong các phần sau, chúng tôi sẽ giới thiệu một số cài đặt quan trọng cần thiết để định cấu hình cài đặt vsftpd an toàn.
Bắt đầu bằng cách mở tệp cấu hình vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
1. Truy cập FTP
Chúng tôi sẽ chỉ cho phép truy cập vào máy chủ FTP của người dùng cục bộ, tìm các chỉ thị
anonymous_enable
và
local_enable
và xác minh cấu hình khớp với các dòng bên dưới:
anonymous_enable=NO local_enable=YES
2. Kích hoạt tải lên
Bỏ ghi chú cài đặt
write_enable
để cho phép thay đổi hệ thống tệp như tải lên và xóa tệp.
3. Nhà tù Chroot
Ngăn chặn người dùng FTP truy cập bất kỳ tệp nào bên ngoài thư mục chính của họ bằng cách bỏ qua chỉ thị
chroot
.
chroot_local_user=YES
Theo mặc định, khi chroot được bật, vsftpd sẽ từ chối tải lên các tệp nếu thư mục mà người dùng bị khóa có thể ghi được. Điều này là để ngăn chặn một lỗ hổng bảo mật.
Sử dụng một trong các phương pháp dưới đây để cho phép tải lên khi bật chroot.
-
Phương pháp 1. - Phương pháp được đề xuất để cho phép tải lên là để kích hoạt chroot và định cấu hình các thư mục FTP. Trong hướng dẫn này, chúng tôi sẽ tạo một thư mục
/etc/vsftpd/vsftpd.confftpbên trong nhà người dùng sẽ đóng vai trò là thư mụcuploadsvà thư mụcuploadsthể ghi để tải lên các tệp.user_sub_token=$USER local_root=/home/$USER/ftpPhương pháp 2. - Một tùy chọn khác là thêm lệnh sau vào tệp cấu hình vsftpd. Sử dụng tùy chọn này nếu bạn phải cấp quyền truy cập có thể ghi cho người dùng của bạn vào thư mục chính của nó.
/etc/vsftpd/vsftpd.confallow_writeable_chroot=YES
4. Kết nối FTP thụ động
vsftpd có thể sử dụng bất kỳ cổng nào cho các kết nối FTP thụ động. Chúng tôi sẽ chỉ định phạm vi tối thiểu và tối đa của các cổng và sau đó mở phạm vi trong tường lửa của chúng tôi.
Thêm các dòng sau vào tập tin cấu hình:
/etc/vsftpd/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. Hạn chế đăng nhập người dùng
Để chỉ cho phép một số người dùng nhất định đăng nhập vào máy chủ FTP, hãy thêm các dòng sau sau dòng
userlist_enable=YES
:
userlist_file=/etc/vsftpd/user_list userlist_deny=NO
Khi tùy chọn này được bật, bạn cần chỉ định rõ ràng người dùng nào có thể đăng nhập bằng cách thêm tên người dùng vào tệp
/etc/vsftpd/user_list
(một người dùng trên mỗi dòng).
6. Đảm bảo truyền tiền với SSL / TLS
Để mã hóa việc truyền FTP bằng SSL / TLS, bạn cần có chứng chỉ SSL và định cấu hình máy chủ FTP để sử dụng.
Bạn có thể sử dụng chứng chỉ SSL hiện có được ký bởi Cơ quan chứng nhận tin cậy hoặc tạo chứng chỉ tự ký.
Trong hướng dẫn này, chúng tôi sẽ tạo chứng chỉ SSL tự ký bằng lệnh
openssl
.
Lệnh sau sẽ tạo khóa riêng 2048 bit và chứng chỉ tự ký có hiệu lực trong 10 năm. Cả khóa riêng và chứng chỉ sẽ được lưu trong cùng một tệp:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Khi chứng chỉ SSL được tạo, mở tệp cấu hình vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
Tìm các
rsa_cert_file
và
rsa_private_key_file
, thay đổi giá trị của chúng thành đường dẫn tệp
pam
và đặt chỉ thị
ssl_enable
thành
YES
:
rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
Nếu không được chỉ định khác, máy chủ FTP sẽ chỉ sử dụng TLS để tạo kết nối an toàn.
Khởi động lại dịch vụ vsftpd
Khi bạn chỉnh sửa xong, tệp cấu hình vsftpd (không bao gồm nhận xét) sẽ trông giống như thế này:
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
Lưu tệp và khởi động lại dịch vụ vsftpd để các thay đổi có hiệu lực:
Mở tường lửa
Để mở cổng
21
(cổng lệnh FTP), cổng
20
(cổng dữ liệu FTP) và
30000-31000
(Phạm vi cổng thụ động), hãy đưa ra các lệnh sau:
sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
Tải lại các quy tắc tường lửa bằng cách gõ:
Tạo người dùng FTP
Để kiểm tra máy chủ FTP của chúng tôi, chúng tôi sẽ tạo một người dùng mới.
- Nếu bạn đã có người dùng mà bạn muốn cấp quyền truy cập FTP, hãy bỏ qua bước 1. Nếu bạn đặt
allow_writeable_chroot=YEStrong tệp cấu hình của bạn, hãy bỏ qua bước thứ 3.
-
Tạo người dùng mới có tên
newftpuser:sudo adduser newftpuserTiếp theo, bạn sẽ cần đặt mật khẩu người dùng:
sudo passwd newftpuserThêm người dùng vào danh sách người dùng FTP được phép:
echo "newftpuser" | sudo tee -a /etc/vsftpd/user_listTạo cây thư mục FTP và đặt quyền chính xác:
sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftpNhư đã thảo luận trong phần trước, người dùng sẽ có thể tải các tệp của nó
ftp/uploadthư mụcftp/upload.
Tại thời điểm này, máy chủ FTP của bạn có đầy đủ chức năng và bạn sẽ có thể kết nối với máy chủ của mình với bất kỳ máy khách FTP nào có thể được cấu hình để sử dụng mã hóa TLS như FileZilla.
Vô hiệu hóa quyền truy cập Shell
Theo mặc định, khi tạo người dùng, nếu không được chỉ định rõ ràng, người dùng sẽ có quyền truy cập SSH vào máy chủ.
Để vô hiệu hóa quyền truy cập shell, chúng tôi sẽ tạo một shell mới, nó sẽ chỉ in một thông báo cho người dùng biết rằng tài khoản của họ chỉ giới hạn truy cập FTP.
Chạy các lệnh sau để tạo shell
/bin/ftponly
và làm cho nó có thể thực thi được:
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponly
Nối shell mới vào danh sách shell hợp lệ trong tệp
/etc/shells
:
echo "/bin/ftponly" | sudo tee -a /etc/shells
Thay đổi vỏ người dùng thành
/bin/ftponly
:
sudo usermod newftpuser -s /bin/ftponly
Sử dụng lệnh tương tự để thay đổi hệ vỏ cho những người dùng khác mà bạn muốn chỉ cấp quyền truy cập FTP.
Phần kết luận
Trong hướng dẫn này, bạn đã học cách cài đặt và định cấu hình máy chủ FTP an toàn và nhanh chóng trên hệ thống CentOS 7 của mình.
centp ftDell đã chế tạo một máy chủ nguyên mẫu dựa trên bộ xử lý ARM 64 bit từ Mạch vi mạch ứng dụng, cho thấy hệ thống tại một hội nghị ở Thung lũng Silicon Dell cho biết họ đã thử nghiệm các máy chủ dựa trên các chip ARM 32 bit của Marvel và Calxeda, nhưng đây là lần đầu tiên nó hiển thị bất kỳ phần cứng nào dựa trên bộ xử lý ARM 64 bit. Các chip 64 bit thường phù hợp hơn với việc sử dụng máy chủ hơn các bộ phận 32 bit.
Những người ủng hộ cho rằng chip ARM sẽ tiết kiệm năng lượng hơn các bộ vi xử lý x86 mà Intel tạo ra. giai đoạn đầu, với rất nhiều công việc phát triển phần cứng và phần mềm phải được thực hiện. Các nhà phân tích ước tính các máy chủ ARM 64 bit đầu tiên sẽ không thực sự tung ra thị trường trước năm 2014.
Cách thiết lập máy chủ ftp với vsftpd trên debian 9
Trong hướng dẫn này, chúng tôi sẽ cài đặt vsftpd. Nó là một máy chủ FTP ổn định, an toàn và nhanh chóng. Chúng tôi cũng sẽ chỉ cho bạn cách cấu hình vsftpd để hạn chế người dùng vào thư mục chính của họ và mã hóa toàn bộ truyền bằng SSL / TLS.
Cách thiết lập máy chủ ftp với vsftpd trên Ubuntu 18.04
Trong hướng dẫn này, chúng tôi sẽ cài đặt vsftpd. Nó là một máy chủ FTP ổn định, an toàn và nhanh chóng. Chúng tôi cũng sẽ chỉ cho bạn cách cấu hình vsftpd để hạn chế người dùng vào thư mục chính của họ và mã hóa toàn bộ truyền bằng SSL / TLS.







