- 搭建过程
- 安装 vsftp 服务(yum 安装即可)
- 配置/etc/vsftpd/vsftpd.conf
-
-
anonymous_enable=NO #禁止匿名登录
-
local_enable=YES #允许本地用户登录,注意虚拟用户也是映射本地用户登录的
-
chroot_local_user=YES #是否将用户禁锢在主目录,一般配合 chroot_list_file和 chroot_list_enable 一起使用。
-
local_root=/var/ftp #本地用户 ftp 根目录
-
local_umask=022 #ftp 本地用户创建文件的权限掩码)
-
xferlog_enable=YES #开启日志记录)
-
xferlog_std_format=YES #使用标准 ftp 日志格式
-
pasv_enable=YES #(开启被动模式)
-
pasv_addr_resolve=YES
-
pasv_address=58.251.160.178
-
#以上两行支持被动模式 iptables 的 nat 端口映射,欺骗客户端 ftp 服务器地址为 nat 转换后的地址
-
#只需在连接外网时使用
-
pasv_min_port=10001
-
pasv_max_port=10010
-
#被动模式端口范围
-
listen=YES
-
pam_service_name=vsftpd_login #指定 Vsftpd 的 pam 验证配置文件名
-
user_config_dir=/etc/vsftpd/users_config #指定虚拟用户配置文件路径
-
guest_enable=YES #启用虚拟用户
-
guest_username=vftp #指定虚拟用户本地宿主用户
-
-
- 新建虚拟用户本地宿主用户
-
-
useradd vftp –d /home/vsftp –s /sbin/nologin #宿主用户不用登陆系统的权限
-
- 虚拟用户名单
- 先建立虚拟用户名单文件 vi /etc/vsftpd/vsftpdlogin
- 添加用户(可编辑多个虚拟用户,奇数行账号,偶数行密码)
-
-
xdataftp
-
xdataftp
-
xbusftp
-
xbusftp
-
-
- 生成口令库文件,注意修改文件权限为 600
db_load -T -t hash -f /etc/vsftpd/vsftpdlogin /etc/vsftpd/vsftpdlogin.db chmod 600 /etc/vsftpd/vsftpdlogin.db
-
-
- 注意:如果 db_load 命令不可用,需要安装 db4-utils 软件包。
- 新建虚拟用户 pam 验证文件,是在 vsftpd.conf 中所需指定的验证文件
- 编辑/etc/pam.d/ vsftpd_login(db 文件时上面生成的 vsftpdlogin.db)
-
-
auth required pam_userdb.so db=/etc/vsftpd/vsftpdlogin
-
account required pam_userdb.so db=/etc/vsftpd/vsftpdlogin
-
-
- 编辑/etc/pam.d/ vsftpd_login(db 文件时上面生成的 vsftpdlogin.db)
- 建立虚拟用户配置文件
- mkdir /etc/vsftpd/users_config #这个为vsftpd.conf中user_config_dir指定的
- 编辑/etc/vsftpd/users_config/xdataftp
-
-
local_root=/data/ftp/xdataftp (指定此虚拟用户的根目录)
-
write_enable=YES #本地权限 可注释
-
download_enable=YES #本地权限 可注释
-
anon_world_readable_only=NO
-
anon_upload_enable=YES
-
anon_mkdir_write_enable=YES
-
anon_other_write_enable=YES
-
-
- 注意:以上是开放此虚拟用户所有权限。包括读、写、删除、更改、替换。可以根据相应的需求更改。
- 重启服务 service vsftpd restart
- 安装flashFTP客户端登录验证
- 注意:
- 配置文件不能有多余空格,否则会导致 ftp 登录或者数据传输失败。
- 如果 ftp 服务器本地有防火墙,需要开放 21、20 和被动模式指定的 10001—10010 端口,并关闭机器 selinux。
- iptables 的 nat 端口映射,让外网客户端访问内网 ftp 服务
-
-
-A PREROUTING -d 58.251.160.178/32 -p tcp -m tcp --dport 40021 -j DNAT --todestination 172.16.100.4:21
-
-A PREROUTING -d 58.251.160.178/32 -p tcp -m tcp --dport 10001:10010 -j DNAT --to-destination 172.16.100.4
-
-
-
autofs卸载后需要reboot
-