FTP使用两个端口
21 是建立连接
20 是传输数据
FTP模式,主动模式和被动模式
主动模式,也是默认的模式,建立连接后,FTP服务器会主动通过20端口向客户端发送数据。
被动模式,中间有防火墙,FTP服务器会开启端口等待客户端来连接自己。
vsftp的三种用户模式
匿名用户 不需要输入密码
本地用户 以本地用户验证账号和密码
虚拟用户 只在FTP上专有的用户账号(增加安全性)
FTP配置文件
anonymous_enable=YES 允许匿名访问
local_enable=YES 允许本地用户访问
write_enable=YES 本地用户可上传,删除,重命名等
local_umask=022 本地用户上传文件的隐藏权限
#anon_upload_enable=YES 允许匿名用户上传文件
#anon_mkdir_write_enable=YES 允许匿名用户新建或写入文件
在做实验过程中,客户端访问出错如没有权限创建文件或上传文件,检查一下防火墙及SElinux 关闭SELinux
#vi /etc/selinux/config
SELINUX=disabled 关闭SELinux 需重启
匿名用户上传下载
/var/ftp/ ftp匿名用户的家目录,权限755不能更改,切忌
#chown ftp pub 把pub文件的属主改为ftp程序用户
把配置文件下的两行注释去掉
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户新建或写入文件
重启服务,使用客户端访问,
本地用户
客户端在使用本地用户登录的时候,如不做设置默认登录的是它的家目录。
关闭匿名用户访问
使用chroot锁定本地用户的家目录,
#vi /etc/vsftpd/vsftpd.conf 编辑配置文件
#useradd test1 新建用户test1
#usermod –s /sbin/nologin test1 为了安全,不让此用户登录到系统
local_root=/var/www/html 设定本地用户的家目录
chroot_local_user=YES 本地用户使用chroot
chroot_list_enable=YES 使用chroot列表
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list chroot列表在/etc/vsvtpd/chroot_list 这个文件没有则新建
新建chroot列表后,把本地用户名输入到chroot_list文件中,可以不被chroot锁定在固定的目录里
虚拟用户
虚拟用户使用PAM认证方式,把账号和密码于/etc/passwd文件分开用哈希算法加密,防止别人暴力破解,或破解后使用chroot锁定家目录对系统不能照成危害
使用虚拟用户后不能使用本地用户需把配置文件中local_root=/var/www/html给注释掉不能同时使用。或者让两者不在同一配置文件下,才不会冲突
#vi /etc/vsftpd/virtualuser 创建虚拟用户文件
vip 账户名
123 密码
ftp 账号名
123 密码
# yum install db4* 安装db4软件包
#db_load –T –t hash –f virtualuser virutaluser.db 把虚拟用户文件创建数据库文件并-t是指定hash算法加密 -f 是文件
#chmod 600 virtualuser.db 为了安全更改600权限
#useradd –s /sbin/nologin vip 新建用户
#chmod 777 /home/vip 修改家目录的权限
#vim /etc/pam.d/vsftpd
把所有内容用#号全部注释掉,在添加两行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser(注意比如virtualuser.db文件,在这里不用加.db)account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser
保存退出
#vi /etc/vsftpd/vsftpd.conf
guest_enable=YES 是否启用虚拟用户,如不启用按本地用户登录
quest_username=vip 所有其他虚拟用户都登录到vip用户的家目录里
pam_service_name=vsftpd 配置vsftpd使用的PAM模块为vsftpd
userlist_enable=YES
tcp_wrappers=YES
客户端
#wget ftp://172.16.1.4/pub/file 下载文件