主动:server端主动发起
被动:server端被动等待接收
主动时:server端端口20,client端口随机,(server端端口防火好做,client不好做)
被动时:两端端口都随机
服务端:vsftpd
客户端:ftp
服务器端:
配置文件/etc/vsftpd/vsftpd.conf
anonymous_enables------ 是否允许匿名用户登录
local_enable ------- 是否允许服务器端的/etc/passwd里的本地用户登录
write_enable ------ 是否允许可写
local_umask -------- 本地掩码(022,客户端创建文件为644(默认666),目录为755(默认777))
anon_upload_enable ------ 是否允许匿名账户进行上传
anon_mkdir_write_enable ------ 是否允许匿名账户进行创建和写入
anon_other_write_enables -------- 允许匿名账户使用其它写入(如删除等)操作(自己写入配置文件)
dirmessage_enable ------- 在共享的文件夹下写入一些信息,将信息写入文件夹下 .message,在访问该文件夹时会出先该信息(例如欢迎登录什么的)
xferlog_enable ----- 是否记录日志文件,记客户端上传下载记录
connect_from_port_20 ------- 端口不为20
chown_uploads=YES
chown_username=whoever ------ 在上传的过程中更改属组属主
xferlog_file=/var/log/xferlog ------ 日志文件路径
xferlog_std_format ------ 记录日志时用标准格式记录
idle_session_timeout ---- 链接卡住/超时时间为600s
data_session_timeout ----- 数据超时为120
#ascii_upload_enable=YES
#ascii_download_enable=YES
使用二进制上传和下载,不建议启用,只有真正的二进制才可以启用,如果普通文件启用则会出问题,默认系统会自动去识别使用普通还是二进制传输
chroot_local_user=YES:使所有的用户都禁锢在自己的家目录中,这条指令和下面的两条指令只能使用其中的一种
对特定的用户禁锢其家目录中,部分用户,而上面是所有用户
chroot_list_enable=YES:
chroot_list_file=/etc/vsftpd/chroot_list:将写入在这个文件的用户禁锢在自己的家目录,登入ftp后,不可以进行目录切换,输入pwd,显示/
/etc/vsftpd/ftpusers:这个文件里写的用户不能访问ftp
/etc/vsftpd/user_list:受vsftpd.conf控制,If userlist_deny=YES (default), never allow users in this file, and do not even prompt for a password. If userlist_deny=NO, only allow users in this file
默认的客户端使用的用户的家目录在/var/ftp(权限为755,不能更改权限,改了之后很不安全)
匿名使用上传时,上传失败:
1) 查看配置文件/etc/vsftpd/vsftpd.conf中允许上传语句是否打开
2) 用户家目录在/var/ftp中,ftp的权限为755,需在ftp目录中新建目录,设置权限为777
注:在ftp客户端时使用passive命令可将被动模式(PASV)关闭,即转为了主动模式(PORT),在输入一遍passiv则被动开启,转为被动