Cấu hình FTP server trên Linux
- Giới thiệu
- Cài đặt.
Cài đặt phần mềm vsftpd trên hệ điều hành Ubuntu:
Mã:
apt-get install vsftpd
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á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.
Mã:
touch /etc/ssl/private/vsftpd.pem
Mã:
apt-get install openssl
Mã:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
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]
Mã:
chmod 755 /etc/ssl/private/vsftpd.pem
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
- 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.
Mã:
apt-get install db4.8-util
Mã:
vim virtual-users.txt
Mã:
user01
passuser01
user02
passuser02
Mã:
db4.8_load -T -t hash -f virtual-users.txt /etc/virtual-users.db
Mã:
auth required pam_userdb.so db=/etc/virtual-users
account required pam_userdb.so db=/etc/virtual-users
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/*
Mã:
/etc/init.d/vsftpd restart