Cài đặt FTP Server đơn giản trên CentOS với ProFTPD

0 Comments

Hello everyone, Bài này vncloud.vn sẽ giới thiệu các bạn Cài đặt FTP Server đơn giản trên CentOS với ProFTPD.

Thông thường khi cần kết nối mình sử dụng luôn sFTP, tuy đặc điểm giao thức này rất bảo mật nhưng tốc độ transfer thường chậm hơn so với giao thức FTP truyền thống.

Nếu bạn coi trọng vấn đề tốc độ truyền tải, hãy sử dụng ProFTPD để tạo FTP Server.
proftpd

Nội dung bài viết

1. Cài đặt FTP Server với ProFTPD

2. Tạo FTP user

2.1. Local user

2.2. Virtual User

3. Một số lỗi thường gặp:

1. Cài đặt FTP Server với ProFTPD

_ Chúng ta cài đặt ProFTPD nằm trong Extra Packages for Enterprise Linux (EPEL) repository.

# yum install epel-release -y
# yum install proftpd -y

Cấu hình mặc định của ProFTPD đã dùng được rồi, lưu tại: /etc/proftpd.conf.
Lưu ý: Thiết lập DefaultRoot ~ khiến các user không thể truy cập FTP ra ngoài thư mục gốc.

_ Tiếp theo, thêm /bin/false vào cuối file /etc/shells với lệnh sau:

# echo "/bin/false" >> /etc/shells

Đảm bảo trong /etc/shells/ có /sbin/nologin hoặc /bin/false:

/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/false

_ Bật ProFTPD và thiết lập tự động chạy cùng hệ thống:

# service proftpd start
# chkconfig proftpd on

_ Mở port truy cập FTP – port 21 trong thiết lập tường lửa (iptables, firewalld, csf) của VPS. Mặc định CentOS6 sử dụng IPtables và CentOS7 là FirewallD

iptables -I INPUT -p tcp --dport 21 -j ACCEPT
service iptables save
service iptables restart

2. Tạo FTP user

ProFTPD có thể cấu hình sử dụng user của hệ điều hành (Local User) hoặc user ảo dành riêng cho FTP (Virtual User). Các bạn chỉ có thể lựa chọn cách thức đăng nhập Local User hoặc Virtual User

2.1. Local user

Bạn có thể sử dụng user của hệ điều hành Linux – Local User để đăng nhập FTP Server, trừ các user trong /etc/ftpusers. Khi đó, ProFTPD xác thực đăng nhập bằng mod_auth_unix

_ Tạo user mới useradd với các tùy chọn:

  • -g thiết lập user vào group. Trong HocVPS Script, các thư mục web thuộc group nginx. Để dễ dàng trong việc chỉnh sửa, bạn nên add user vào group nginx và cho phép chỉnh sửa đối với group owner – nginx.
  • -s thiết lập shell đăng nhập. Trong đó, shell sbin/nologin hoặc /bin/false chặn truy cập SSH. Khi đó, user được tạo chỉ có thể đăng nhập trên FTP, không thể đăng nhập SSH cũng như chạy lệnh hệ thống.
  • -d thiết lập thư mục gốc của user.

Như vậy, để tạo FTPuser hocvps chỉ có thể truy cập thư mục /home/hocvps.com/, đồng thời không thể đăng nhập SSH:

# useradd hocvps -g nginx -s /sbin/nologin -d /home/hocvps.com/

Rồi tiến hành thiết lập password cho user vừa tạo: # passwd hocvps

Lưu ý: Nếu muốn chỉnh sửa user đã được tạo: # usermod -a -G nginx hocvps -s /sbin/nologin

_ Thiết lập quyền chỉnh sửa của Group Owner Nginx đối với thư mục web:

# chmod -R g+rw /home/hocvps.com/

2.2. Virtual User

Virtual User là user ảo được tạo bởi FTPassWD, chỉ có thể sử dụng trên FTP (không phải user hệ thống Linux). Khi đó, ProFTPD xác thực đăng nhập bằng mod_auth_file.

Chương trình ProFTPD Utilities với nhiều công cụ nhỏ bên trong sẽ giúp thiết lập, quản lý ProFTPD. Trong đó, công cụ ftpasswd dùng để thiết lập Virtual User. Cài đặt:

# yum install proftpd-utils -y

_ Tạo thư mục lưu thông tin đăng nhập Virtual User:

# mkdir /etc/proftpd
# touch /etc/proftpd/passwd /etc/proftpd/group
# chown -R nobody:nobody /etc/proftpd

_ Chỉnh sửa cấu hình ProFTPD tại /etc/proftpd

  • Comment (#) dòng
AuthPAMConfig proftpd
AuthOrder mod_auth_pam.c* mod_auth_unix.c
  • Chèn xuống dưới :
AuthOrder mod_auth_file.c
AuthUserFile /etc/proftpd/passwd
AuthGroupFile /etc/proftpd/group
RequireValidShell off

Rồi tiến hành restart service: service proftpd restart

_ Tạo user mới (UID và GID bạn nhập tùy ý số lớn hơn 500)

# ftpasswd --passwd --name=hocvps --uid=1000 --gid=1000 --home=/home/hocvps/ --shell=/sbin/nologin --file=/etc/proftpd/passwd

ftpasswd: using alternate file: /etc/proftpd/passwd
ftpasswd: creating passwd entry for user hocvps
Password: #nhập_mật_khẩu

_ Thiết lập quyền chỉnh sửa với thư mục web :

# chmod -R o+rw /home/hocvps/

Vậy là xong rồi đấy, giờ bạn có thể kết nối FTP đến server sử dụng account đã tạo ở trên. Đối với Windows OS, các bạn có thể sử dụng File Zilla để đăng nhập. Trên quan điểm cá nhân, các bạn nên cấu hình đăng nhập chỉ bằng Virtual User.

3. Một số lỗi thường gặp:

– Quá trình Upload gặp lỗi PassiveMode thì chỉnh TransferMode sang Active trên FTP Client. Trong FileZilla là Edit – Settings – Connection – FTP – Transfer Mode.

– Nếu đã thiết lập tường lửa Iptables và chuyển ActiveMode mà vẫn không thể kết nối thì bạn thêm giá trị ip_conntrack_ftp vào /etc/sysconfig/iptables-config
Cụ thể là IPTABLES_MODULES=”ip_conntrack_ftp”. Sau đó tiến hành restart Iptables
Chỉ áp dụng CentOS 6 và nếu VPS không có module ip_conntrack_ftp trong hệ thống thì cần yêu cầu support thêm thủ công

Nguồn tham khảo : hocvps.com

Categories:

Leave a Reply

Your email address will not be published. Required fields are marked *