1.概述
Linux搭建FTP使用vsftp,有三種模式
匿名模式:可以不輸入用戶名和密碼登錄FTP
系統用戶模式:FTP所在服務器上的用戶使用用戶名和密碼登錄
用戶映射模式:用戶不存在於FTP所在服務器,隨意起名,然後映射到FTP服務器上的用戶(不用暴露FTP服務器上的用戶,提高安全性)
2.安裝
yum install vsftpd -y
3.配置
3.1.匿名用戶
安裝完vsftpd後,會創建一個ftp的用戶,匿名用戶登錄ftp後,起始目錄就是ftp的家目錄。
3.1.1創建目錄
对匿名用户来说,默认是不允许对家目录拥有写权限的,虽然有一个 allow_writeable_chroot=YES 选项,但是这个选项对匿名用户不生效。所以如果要让匿名用户操作服务端数据,一种做法就是在指定的数据目录下再创建一个目录,客户的数据存放在数据目录的子目录中。
# 创建数据目录
mkdir -p /ftp_data/anon_data
# 更改文件权限
chown root:root /ftp_data
chmod 755 /ftp_data
chown ftp:ftp /ftp_data/anon_data
3.1.2.配置文件
vim /etc/vsftpd.conf
# 开启匿名用户登录
anonymous_enable=YES
no_anon_password=YES
# 匿名用户权限配置
write_enable=YES
anon_upload_enable=YES
anon_umask=022
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=YES
# 数据目录设置
anon_root=/ftp_data
chroot_local_user=YES
allow_writeable_chroot=YES
# 日志设置 用于显示详细的日志信息
xferlog_enable=YES
xferlog_std_format=NO
log_ftp_protocol=YES
systemctl start vsftpd
3.2.系統用戶模式
3.2.1.創建用戶
本地用戶登錄後,默認是在自己的家目錄。如果/home所在分區不足,可以修改本地用戶的家目錄
# 創建用戶並創建指定家目錄
useradd -m -d /data/ftp ftpadmin
# 設置密碼
passwd ftpadmin
3.2.2.配置文件
經過多次測試,userlist_enable=YES後,windows就無法登錄ftp,可以通過linux登錄。
# 禁用匿名用户登录
anonymous_enable=NO
# 启用系统用户模式
local_enable=YES
# 权限配置
write_enable=YES
# 指定数据目录
local_root=/data/ftp
chroot_local_user=YES
allow_writeable_chroot=YES
# 日志配置
xferlog_enable=YES
xferlog_std_format=NO
log_ftp_protocol=YES
# 登录名单配置
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
# 登錄認證
pam_service_name=vsftpd
3.2.3.用戶白名單
vi /etc/vsftpd/user_list
-----------------------
ftpadmin
----------------------
3.3.用戶映射模式
3.3.1.創建虛擬用戶數據庫
# 編輯用戶密碼對
cd /etc/vsftpd
vi vusers
#-----------------------------
monkey
abc123def
saily
123abc456
#-----------------------------
# 生成DB文件
db_load -T -t hash -f vusers /etc/vsftpd/vusers.db
3.3.2.修改認證文件
vim /etc/pam.d/vsftpd
# 注釋原有auth和account,並加入下面的方式
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
3.3.3.配置文件
# 启用匿名用户模式
local_enable=YES
guest_enable=YES
# 指定映射的用户
guest_username=ftpadmin
# 日志配置
xferlog_enable=YES
xferlog_std_format=NO
log_ftp_protocol=YES
# 指定用于验证的PAM规则文件,不用加全路径,会默认到/etc/pam.d下找
pam_service_name=vsftpd
# 虚拟用户拥有和系统用户同样的权限
write_enable=YES
local_umask=022
virtual_use_local_privs=YES
# 数据目录指定
local_root=/data/ftp
chroot_local_user=YES
allow_writeable_chroot=YES

3978

被折叠的 条评论
为什么被折叠?



