Hướng dẫn cấu hình ftp server trên centos 5.1 năm 2024

Bài viết này sẽ hướng dẫn bạn cách cấu hình FTP Server trên CentOS-7 với VSFTPD chạy Dual IPv4, IPv6. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat //livechat.vinahost.vn/chat.php.

VSFTPD [Very Secure File Transport Protocol Daemon] là một FTP Server Stand Alone được phân phối bởi Red Hat Enterprise Linux. Đây là phần mềm để tạo FTP Server với tốc độ nhanh, cấu hình đơn giản. Ngoài ra, nếu không sử dụng VSFTPD thì bạn có thể dùng ProFTPD hoặc Pure-FTPD đều được.

Trong bài hướng dẫn cấu hình FTP Server trên CentOS-7 với VSFTPD chạy Dual IPv4, IPv6, mình sẽ cài đặt FTP server lên máy CentOS-7. Việc cài đặt được thực hiện với quyền root.

Để cấu hình FTP Server trên CentOS-7 với VSFTPD chạy Dual IPv4, IPv6, bạn cần chuẩn bị:

  • Một máy cài CentOS-7 có Ipv6
  • IP address của FTP Server : 2400:6540:0:fffe:7000::10

Cài đặt VSFPTD

Cài đặt gói Vsftpd:

yum install vsftpd

Khởi động hệ thống:

Sau khi quá trình cài đặt hoàn tất, ta khởi động dịch vụ và cho phép nó khởi động cùng hệ thống.

systemctl start vsftpd

systemctl enable vsftpd

Cấu hình tường lửa cho dịch vụ FTP và port 20-21:

ip6tables -A INPUT -p tcp –dport 20 -j ACCEPT

ip6tables -A INPUT -p tcp –dport 21 -j ACCEPT

services ip6tables save

Kiểm tra lại trạng thái vsftpd service:

File cấu hình vsftpd nằm tại : /etc/vsftpd/vsftpd.conf

Copy file cấu hình để backup:

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup

Chỉnh sửa file cấu hình vsftpd.conf:

vi /etc/vsftpd/vsftpd.conf

Tìm và chỉnh sửa các tham số sau:

anonymous_enable=NO                                          # disable  anonymous login

local_enable=YES                                                   # permit local logins

systemctl start vsftpd

0

systemctl start vsftpd

1

systemctl start vsftpd

2

systemctl start vsftpd

3

systemctl start vsftpd

4

systemctl start vsftpd

5

systemctl start vsftpd

6

systemctl start vsftpd

7

systemctl start vsftpd

8

systemctl start vsftpd

9

systemctl enable vsftpd

0

systemctl enable vsftpd

1

systemctl enable vsftpd

2

systemctl enable vsftpd

3

systemctl enable vsftpd

4

systemctl enable vsftpd

5

systemctl enable vsftpd

6

systemctl enable vsftpd

7

Để vsftpd lắng nghe bằng Ipv6, các bạn chú ý option là: listen_ipv6=YES

Sau khi edit các tham số, chúng ta restart lại cấu hình vsftpd

systemctl enable vsftpd

8

Truy cập FTP SERVER

Tạo user local:

systemctl enable vsftpd

9

ip6tables -A INPUT -p tcp –dport 20 -j ACCEPT

0

Ở đây mình đặt password cho user vinahost là: vinahost@12345

LƯU Ý: mọi người nên đặt password phức tạp, độ dài từ 10-16 ký tự, có ít nhất 1 ký tự đặc biệt, 1 ký tự IN HOA, 1 số để tránh bị bruteforce password.

Sau khi thêm xong mặc định thư mục home của user vinahost là /home/vinahost

Cấp quyền truy cập cho user:

ip6tables -A INPUT -p tcp –dport 20 -j ACCEPT

1

ip6tables -A INPUT -p tcp –dport 20 -j ACCEPT

2

Restart lại dịch vụ

systemctl enable vsftpd

8

Truy cập vào FTP Server bằng IPV6:

Các bạn có thể dùng bất kỳ phần mềm FTP Client nào để kết nối chẳng hạn như WinSCP, FileZilla Client, command line scp của window/linux, lftp … ở đây mình dùng FileZilla Client để kết nối:

Ta tiến hành nhập Username, Password, Ipv6 vào như hình:

Sau khi nhập đúng địa chỉ IPV6 của FTP server và tài khoản đăng nhập, ta sẽ thấy giao diện như trên với các thư mục trên FTP server.

Trên đây là hướng dẫn cấu hình FTP Server trên CentOS-7 với VSFTPD chạy Dual IPv4/IPv6. Chúc bạn thành công!

Bạn có thể sửa nội dung file /etc/vsftpd/user_list, và thêm user vào list. [Mỗi user cách nhau một dòng.]option userlist_deny cho phép bạn thêm một số users đặt biệt vào; Đặt là yes sẽ thay đổi các user có trong list sẽ bị blocked.

vsftpd là một FTP Server Stand Alone được phân phối bởi Red Hat Enterprise Linux. Mô hình vsftpd có 3 thuộc tính chính là:

  • Sự phân chia rõ rệt giữa tiến trình mang đặc quyền và tiến trình không mang đặc quyền.
  • Các task cần các đặc quyền được xử lý bởi các tiến trình có ít các đặc quyền nhất
  • Hầu hết các tiến trình được chạy trong chroot jail để nâng cao tính bảo mật.

I. Cài đặt:


# yum install vsftpd

Khởi động/Kết thúc/Trạng thái vsftpd:


# systemctl [start] [stop] [status] vsftpd.service

Khởi động vsftpd khi khởi động máy:


# systemctl enable vsftpd.service

Sau khi hoàn thành việc cấu hình, ta tiến hành restart vsftpd bằng lệnh sau:


# systemctl restart vsftpd.service

II. Cấu hình căn bản:

vsftpd dùng chính account trên Centos để log in vào hệ thống của nó. Ta chỉnh sửa file cấu hình tại:

# vi /etc/vsftpd/vsftpd.conf

1. Các tham số cấu hình căn bản:

Khi bật tham số listen, vsftpd chạy ở mode stand alone và lắng nghe trên socket IPv4

listen= YES

Cho phép các kết nối không chứng thực [anonymous] [Lưu ý: tham số tự động kích hoạt nếu ta comment tham số]

anonymous_enable=ÝE

Cho phép user local truy cập:

local_enable=YES

Cho phép user quyền chỉnh sửa file trên server [Mặc định: Cấm]

write_enable=YES

Cho phép người dùng ẩn danh upload file [Tính năng này chỉ có hiệu lực nếu tham số write_enable được bật]. Thêm vào đó bạn cần tạo đường dẫn cho phép người dùng ẩn danh chỉnh sửa.

anon_upload_enable=YES

Cho phép người dùng ẩn danh tạo đường dẫn thư mục mới:


# systemctl [start] [stop] [status] vsftpd.service

0

2. Chroot Users:

Chroot hiểu đơn giản là kỹ thuật "giam" một chương trình, dependencies, và library cần thiết để chạy chương trình vào một folder tách biệt với hệ thống để nâng cao tính bảo mật nếu chương trình đó bị xâm nhập trái phép thì nó chỉ ảnh hưởng trong nội tại thư mục đó mà thôi. Chi tiết về chroot mình sẽ có một series khác để nói riêng về kỹ thuật này nhé.

Trong nội dung bài viết này ta sẽ học cách bật tính năng chroot cho các user khi đăng nhập vào FTP Server. Ta có các tùy chọn như sau:

Chroot tất cả user


# systemctl [start] [stop] [status] vsftpd.service

1

Chỉ chroot đối với một số user nằm trong danh sách được tạo trên đường dẫn /etc/vsftpd.chroot_list:


# systemctl [start] [stop] [status] vsftpd.service

2

Chroot tất cả user ngoại trừ danh sách các user được liệt kê tại /etc/vsftpd.chroot_list:


# systemctl [start] [stop] [status] vsftpd.service

3

3. Cho phép và hạn chế người dùng đăng nhập vào hệ thống:

Hạn chế các user truy cập vào FTP Server:


# systemctl [start] [stop] [status] vsftpd.service

4

Hoặc ta có thể cấm tất cả các user truy cập FTP và lập danh sách một số người được truy cập


# systemctl [start] [stop] [status] vsftpd.service

5

III. Khởi động nhiều phiên bản cấu hình của VSFTPD:

Đôi khi một server chứa nhiều FTP domain để phục vụ nhiều mục đích khác nhau. Ta có thể thực hiện điều này bằng cách tạo ra 2 hay nhiều file cấu hình cho các domain khác nhau và khởi động từng FTP Daemon chạy các file cấu hình khác nhau cùng lúc.

Trước đó ta cần đảm bảo các máy client thông mạng và DNS Server được cấu hình đầy đủ cho các FTP Server

Tiếp theo ta tạo các file cấu hình khác nhau và đặt tại /etc/vsftpd Mỗi file cấu hình sẽ lắng nghe một mạng duy nhất, tham số này là độc nhất


# systemctl [start] [stop] [status] vsftpd.service

6

Ta khởi động các phiên bản của FTP Daemon bằng lệnh sau: Lưu ý ta phải bỏ đuôi .conf ở file cấu hình đi


# systemctl [start] [stop] [status] vsftpd.service

7

Thay vì phải khởi động bắng tay từng phiên bản một ta có thể khởi động tất cả cùng lúc bằng hai thao tác xong


# systemctl [start] [stop] [status] vsftpd.service

8

IV. Mã hóa VSFTPD với TLS/SSL:

Tinh chỉnh các thông số sau để mã hóa vsftpd bằng TLS và disble các phương thức SSL đã cũ:


# systemctl [start] [stop] [status] vsftpd.service

9

V. Chính sách SELinux cho VSFTPD:

Để share file một cách ẩn danh ta set biến public_content_t với đường dẫn public:


# systemctl enable vsftpd.service

0

Để tạo một đường dẫn để upload file một cách ẩn danh, ta cấu hình tương tự như trên và set tham số allow_ftpd_anon_write bằng lệnh sau:

Chủ Đề