Cấu hình FTP server trên Linux

phongtvc

W-------
05/02/2015
6
9 bài viết
Cấu hình FTP server trên Linux
  1. Giới thiệu
VsFTPd là phần mềm FTP server phổ biến nhất trên hệ điều hành linux, nó được đánh giá cao về mức độ bảo mật.

  1. Cài đặt.

Cài đặt phần mềm vsftpd trên hệ điều hành Ubuntu:
Mã:
apt-get install vsftpd
File cấu hình của vsftpd lưu tại /etc/vsftpd.conf.

Backup file cấu hình để có thể recover lại khi cần thiết
Mã:
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Việc cấu hình sẽ được thực hiện bằng cách chỉnh sửa nội dung của file /etc/vsftpd.conf


  • Disable tài khoản anonylous và enable cho cá user local trên server quyền write (upload dữ liệu):
Mã:
# Không cho phép đăng nhập bằng tài khoản anonymous
anonymous_enable=NO
# Cho phép tài khoản local trên server được phép đăng nhập
local_enable=YES
# Cho phép user có quyền upload/download 
write_enable=YES
Các tài khoản khi đăng nhập thì đều có thư mục home là thư mục home directory của user. Ví dụ: tài khoản tvcuongnd thì khi đăng nhập thư mục /home/tvcuongnd là thư mục home do user này quản lý.
Cách tạo tài khoản local cuongtvb
Mã:
useradd  -m cuongtvb 
passwd cuongtvb
  • Thiết lập môi trường chroot mới nhằm ngăn chặn user thay đổi /home directory của chính họ:
Mã:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
chroot_local_user=YES

Tạo file /etc/vsftpd.chroot_list với nội dung là tên user, mỗi user một dòng để chỉ ra rằng những user này được phép di chuyển tới các thư mục ngoài thư mục home của user. User sẽ có quyền download các file trong thư mục nhưng không có quyền upload đối với các thư mục ngoài thư mục home. Ví dụ: trong file /etc/vsftpd.chroot_list có chứa nội dung là tvcuongnd. Khi đăng nhập với user tvcuongnd thì ta có thể truy cập đến các thư mục khác như /bin, /root, /var…và load các file về máy.


  • Gioi han user dang nhap
Mã:
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.denied_users

Tạo file /etc/vsftpd.denied_users với nội dung là các user, mỗi user 1 dòng để chỉ ra rằng các user này sẽ không thể đăng nhập ftp.


  • SSL cho FTP server.
Tạo file /etc/ssl/private/vsftpd.pem
Mã:
touch /etc/ssl/private/vsftpd.pem
Cài đặt OpenSSL
Mã:
apt-get install openssl
Tạo cặp khóa mã hóa SSL:
Mã:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Điền các thông tin:
Mã:
Country Name (2 letter code) [AU]:VN
State or Province Name (full name) [Some-State]:HaNoi
Locality Name (eg, city) []:Hanoi
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Mix
Organizational Unit Name (eg, section) []:Mix
Common Name (eg, YOUR name) []:Mix
Email Address []:[email protected]
Phân quyền cho file vừa tạo
Mã:
chmod 755 /etc/ssl/private/vsftpd.pem
Thêm các cấu hình sau vào file /etc/vsftpd.conf
Mã:
ssl_enable=YES
 allow_anon_ssl=NO
 force_local_data_ssl=NO
 force_local_logins_ssl=YES
 ssl_tlsv1=YES
 ssl_sslv2=NO
 ssl_sslv3=NO
  • Chú ý: Quyền của user còn phụ thuộc vào quyền của user đó đối với thư mục, ví dụ có hai tài khoản
Mã:
Cuongtvb   home=/home/cuongtvb
tvcuongnd   home=/home/tvcuongnd
trong đó cuongtvb có quyền đọc ghi dữ liệu ở thư mục /home/tvcuongnd thì khi đăng nhập với tài khoản cuongtvb thì cũng đc phép đọc ghi trong /home/tvcuongnd.


  • Virtual user: Ở các phần trên ta cấu hình các tài ftp acount là tài khoản local, các tài khoản này liên quan đến hệ thống server và vì thế nên hạn chế sử dụng các tài khoản local này để làm tài khoản FTP server. Virtual user sẽ giải quyết vấn đề này bằng các tạo ra danh sách các ftp acount chỉ có ý nghĩa riêng với dịch vụ FTP.
Cài đặt phần mềm db4.8-util
Mã:
apt-get install db4.8-util
Tạo file virtual-users.txt
Mã:
vim virtual-users.txt
thêm các user và pass vào file:
Mã:
user01
passuser01
user02
passuser02
Tạo file “db”
Mã:
db4.8_load -T -t hash -f virtual-users.txt /etc/virtual-users.db
Tạo file PAM file /etc/pam.d/vsftpd-virtual với nội dung:
Mã:
auth required pam_userdb.so db=/etc/virtual-users
account required pam_userdb.so db=/etc/virtual-users
Thêm các cấu hình sau và file /etc/vsftpd.conf
Mã:
# activates virtual users
guest_enable=YES
# virtual users to use local privs, not anon privs
virtual_use_local_privs=YES
# specifies a home directory for each virtual user
# the PAM file used by authentication of virtual uses
pam_service_name=vsftpd-virtual
user_sub_token=$USER
local_root=/var/www/virtual/$USER
# the umask for file creation
local_umask=022
Tạo các thư mục cho các user
mkdir /var/www/virtual/user01
mkdir /var/www/virtual/user02
chown ftp:ftp -R /var/www/virtual/*
Restart lại FTP server
Mã:
/etc/init.d/vsftpd restart
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Bên trên