Sunday, August 18, 2013

Cấu hình ftp server với vsftpd

FTP là 1 dịch vụ dùng để chia sẻ tài nguyên  bài viết này sẻ hướng dẫn các bạn cài đặt cấu hình ftp server với vsftpd

1. Giới thiệu

- Là 1 dịch vụ dùng để chia sẻ tài nguyên.

- FTP là FTP server chạy trên môi trường Linux.

- VSFTP sẽ phân quyền dựa trên cấu hình và File Permisson.


2. Yêu cầu

Xây dựng DNS cho domain hoclinux.net sao cho phân giải được record ftp.hoclinux.net


a. Cài đặt FTP Server

- Kiểm tra gói phần mềm, nếu chưa cài thì cài vào (xem mục cài đặt)

#rpm -qa vsftpd


- Tắt Firewall, SELinux

Open FTP port

Open /etc/sysconfig/iptables file, enter:
# vi /etc/sysconfig/iptables
Append following line to open ftp port 21 before REJECT line:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
Save and close the file. Restart the firewall:
# service iptables start

# vi /etc/vsftpd/user_list /cấu hình danh sách tài khoản ĐƯỢC PHÉP TRUY CẬP FTP
# vi /etc/vsftpd/ftpusers / cấu hình danh sách tài khoản KHÔNG ĐƯỢC PHÉP TRUY CẬP FTP


TẠO TÀI KHOẢN
Hãy bắt đầu bằng việc tạo một nhóm dùng để truy cập FTP:
#/usr/sbin/groupadd ftpaccounts /TopHostVN đặt tên nhóm là ftpaccounts
Thêm tài khoản mới và set vào nhóm ftpaccounts:
#/usr/sbin/adduser -g ftpaccounts -d /var/www/html/user1 user1 /Tạo tài khoản user tại thư mục /var/www/html/user1
Đừng quên set mật khẩu cho tài khoản user1 này luôn nhé:
# passwd user1 /nhập mật khẩu cho tài khoản này 2 lần là được.
Xét quyền quản lý thư mục cho user1
# chown user1:ftpaccounts /var/www/html/user1
Và đừng quên CHMOD thư mục:
# chmod 775 /var/www/html/user1
Cuối cùng, bạn cần khởi động lại vsftp:
# service vsftpd restart
Như vậy, bạn đã có thể set quyền truy cập thư mục http:///user1/ tới tài khoản user1.
QUẢN LÝ CÁC USER
Với vsftp, bạn có thể quản lý các user được cấp phép truy cập thông qua việc chỉnh sửa 2 file:
# vi /etc/vsftpd/user_list
# vi /etc/vsftpd/ftpusers

b. Cấu hình FTP Server - vsftpd

File cấu hình chính của vsftpd nằm trong thư mục /etc/vsftpd/vsftpd.conf. Ngoài ra còn có những file khác:

- /etc/vsftpd.ftpusers: liệt kê những người dùng không được phép login vào vsftpd.

- /etc/vsftpd.user_list: tập tin này được cấu hình để cấm hay cho phép những người dùng được liệt kê truy cập FTP Server. Điều này phụ thuộc vào tuỳ chọn userlist_deny được xét YES hay NO trong tập tin cấu hình.

ta mở file cấu hình chính lên

vi /etc/vsftpd/vsftpd.conf

ta sẽ cần chú ý những tuỳ chọn sau:

listen=YES/NO : VSFTPD chạy ở chế độ standalone.

session_support=YES/NO : VSFTPD quản lý giao dịch login của người dùng.

anonymous_enable=YES/NO : người dùng anonymous được phép login vào FTP Server.

cmds_allowed : Chỉ ra danh sách các lệnh ftp (cách nhau bởi dấu phẩy) được cho phép bởi FTP Server.

ftpd_banner : dòng thông báo sẽ hiển thị khi người dùng kết nối đến FTP Server.

local_enable==YES/NO : cho phép người dùng cục bộ login vào FTP Server.

userlist_deny=YES và userlist_enable=NO : thì tất cả những người dùng cục bộ bị cấm truy cập trừ những người dùng được chỉ ra trong userlist_file.

userlist_deny=NO và userlist_enable=YES : thì tất cả những người dùng được chỉ ra trong userlist_file bị cấm truy cập.

userlist_file=/etc/vsftpd.user_list : chỉ ra tập tin lưu danh sách người dùng.

anon_mkdir_write_enable=YES/NO : kết hợp với write_enable=YES thì người dùng anonymous được phép tạo thư mục mới trong thư mục cha có quyền ghi.

anon_root : chỉ ra thư mục gốc của user anonymous, mặc định là /var/ftp.

anon_upload_enable=YES/NO : kết hợp với write_enable=YES thì người dùng anonymous được phép upload tập tin trong thư mục cha có quyền ghi.

anon_world_readable_only=YES : user anonymous chỉ được phép download những tập tin có quyền đọc.

no_anon_password=YES/NO : yêu cầu user anonymous nhập vào password lúc đăng nhập.

local_enable=YES/NO : cho phép người dùng cục bộ truy cập đến Server.

chmod_enable=YES/NO : cho phép người dùng thay đổi quyền hạn trên tập tin.

chroot_local_user=YES/NO : người dùng di chuyển đến home directory của mình sau khi login vào.

guest_enable=YES/NO : cho phép người dùng anonymous login vào như user guest, mà được chỉ ra trong guest_username.

guest_username : chỉ ra username của người dùng guest (user mặc định ftp).

local_root: chỉ ra thư mục khi người dùng cục bộ login vào.

dirlist_enable=YES/NO : người dùng được phép xem nội dung của thư mục.

dirmessage_enable=YES/NO : hiển thi ra 1 thông điệp khi người dùng di chuyển vào thư mục. Thông điệp này được lưu trong tập tin có tên .message và được chỉ ra trong tuỳ chọn message_file.

message_file : chỉ ra tên của tập tin lưu thông điệp.

download_enable=YES/NO : cho phép download.

chown_uploads=YES/NO : tất cả những tập tin được upload bởi user anonymous được sở hữu bởi user được chỉ ra trong chown_username.

chown_username : chỉ ra user sở hữu những tập tin được upload bởi user anonymous (mặc định là user root).

write_enable=YES/NO : cho phép xoá, thay đổi và lưu trữ tập tin.

accept_timeout : chỉ ra thời gian một client sử dụng chế độ passive để thiết lập kết nối đến Server. Tính bằng giây.

anon_max_rate : chỉ ra tốc độ truyền dữ liệu tối đa cho người dùng anonymous. Tính bằng byte/second.

connect_timeout : chỉ ra thời gian một client sử dụng chế độ active để trả lời kết nối đến Server. Tính bằng giây.

data_connect_timeout : chỉ ra thời gian truyền dữ liệu tối đa. Khi kết thúc thời gian cho phép kết nối từ client sẽ bị đóng.

max_clients : chỉ ra số client tối đa đồng thời truy cập đến Server.

Khởi động vsftp:

service vsftpd start

Cho phép vsftp khởi động cùng hệ điều hành

chkconfig vsftpd on


3. Các bài Lab

3.1 Lab 1Cấu hình cho phép anonymous được phép truy cập FTP Server

- Sủa dòng 12 trong file cấu hình với nội dung như sau:

anonymous_enable=YES


- Start dịch vụ vsftpd

#service vsftpd start


- Kiểm tra:

+ dùng trình duyệt explorer trên Windows

+ dòng lệnh: mở CMD, rồi gõ lệnh sau:

ftp ftp.hoclinux.net

+ lưu ý: thư mục root của ftp là /var/ftp


3.2 Lab 2

Thay đổi thư mục gốc của FTP Server là /data/ftp

- Tạo thư mục

#mkdir /data

#mkdir /data/ftp


- Thêm vào cuối file cấu hình nội dung sau:

anon_root=/data/ftp


- restart lại dịch vụ

#service vsftpd restart


- Kiểm tra bằng trình duyệt explorer hoặc dòng lệnh.


3.3 Lab 3

Cấu hình để anonymous được upload file lên thư mục /upload trên Ftp Server

- Tạo thư mục

#mkdir /data/ftp/upload


- Chỉnh sửa nội dung sau trong tập tin cấu hình:

+ dòng 18

write_enable=YES

+ dòng 27

anon_upload_enable=YES


- restart dịch vụ

#service vsftpd restart


- Cấp quyền cho thư mục /data/ftp/upload

#chmod 757 /data/ftp/upload


- Kiểm tra.


3.4 Lab 4

Cấu hình để anonymous được upload thư mục lên thư mục /upload trên Ftp Server

- Chỉnh sửa nội dung sau trong tập tin cấu hình:

+ dòng 18

write_enable=YES

+ dòng 31

anon_mkdir_write=YES


3.5 Lab 5

Cấu hình để có thể xóa, đổi tên file

- Thêm vào cuối file tập tin cấu hình nội dung sau:

anon_other_write_enable=YES

3.6 Lab 6

Cấu hình sao cho anonymous upload file lên và download được file đó về

- Thêm nội dung sau vào cuối file cấu hình /etc/vsftpd/vsftpd.conf

anon_usmask=022


- Restart dịch vụ

#service vsftpd restart


- Kiểm tra


- Chú ý:

Nếu download về không được thì vào tools -> internet options -> sercurity ->trusted sited ->sites -> add


3.7 Lab 7

Cho phép các user local login vào Ftp Server

- Chỉnh file cấu hình nội dung dòng 15 như sau:

local_enable=YES


- restart dịch vụ

#service vsftpd restart


- Kiểm tra

Tạo user hoclinux1 và hv2 và login vào để kiểm tra.


3.8 Lab 8

Cấm user hoclinux1 login vào Ftp Server

- Chỉnh file cấu hình dòng 115

userlist_enable=YES


- thêm user hoclinux1 vào cuối file

/etc/vsftpd/user_list


- restart dịch vụ

#service vsftpd restart


- kiểm tra

login vào Ftp Server bằng user hoclinux1 để kiểm tra.


3.9 Lab 9

Cấm máy bên cạnh truy xuất FTP Server

- Chỉnh sửa file cấu hình, dòng 116

tcp_wrappers=YES


- thêm nội dung sau vào cuối file /etc/hosts.deny

vsftpd: 192.168.9.107


- restart dịch vụ

#service vsftpd rertart


- Kiểm tra

Truy cập FTP Server từ máy 192.168.9.107 vào máy xem có bị cấm không?