1.ftp的基础知识
ftp是一种古老的数据传输工具,也是一个明文传输的协议。按照用户登录方式。可以分为
1.实体用户登录(real user)
2.访客(guest)
3.匿名用户(anonymous)
测试服务
write_enable=YES 客户端可以写
pasv_enable=YES 允许被动式连接
<匿名用户上传>
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
<匿名用户下载>
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载
<匿名用户删除>
anon_other_write_enable=YES|NO
<匿名用户建立目录>
anon_mkdir_write_enable=YES|NO
<匿名用户家目录修改>
anon_root=/direcotry
#<匿名用户上传文件默认权限修改>
anon_umask=xxx
#<匿名用户使用的用户身份修改>
chown_uploads=YES
chown_username=student
#<最大上传速率>
anon_max_rate=102400
#<最大链接数>
max_clients=2
创建虚拟帐号身份
虚拟帐号家目录独立设定 添加130-131行
touch /vuserdir/ftpuser1/user1file
touch /vuserdir/ftpuser2/user2file
touch /vuserdir/ftpuser3/user3file
ftp工作时有两个端口在使用,分别是20,21端口。
命令传输通道ftp(20端口)
数据传输通道ftp-datta(21端口)
ftp的连接过程如下。
1.先是服务器端在21端口监听,等待客户端的连接
2.客户端发起连接,建立命令通道连接后告诉服务器端的客户端的数据端口号A,并等待服务器端的数据端口21和自己的端口A相连
3.由服务器端的21端口发起连接请求。连接客户端的A端口。
注意:如果客户端生活在防火墙,NAT服务器后面的话就很有可能连接失败,需要特别的设置。(如PASV)
2.安装FTP服务器。
准备服务
配置yum源 关闭selinux 配置防火墙然后reboot
可以使用下面的命令看下ftp被防火墙放过了吗
安装ftp服务器vsftpd和客户端lftpd(用来测试服务器)
测试服务
3.vsftpd.conf配置文件的参数
在/etc/vsftpd/vsftpd.conf下填写一些参数。让用户不局限于匿名用户,可以上传,下载限速,最大连接数等等配置都在这里。
dirmessage_enable=YES 当用户进入目录后的出现的内容
message_file=.message 内容在这个文件内
anonymous_enable=YES|NO ##匿名用户登陆限制
重启服务后可以发现匿名登陆登陆失败了
重启服务后可以发现匿名登陆登陆失败了
write_enable=YES 客户端可以写
anon_upload_enable=YES 匿名用户可以上传
anon_mkdir_write_enable=YES 匿名用户可以新建目录
xferlog_enable=YES 客户端的行为会被记录到服务器端的日志系统中
pasv_enable=YES 允许被动式连接
chroot_local_user=YES 给登录的用户根切换(就是不能让登录的用户进根或其他目录里
)
chroot_list_enable=YES 部分用户被根切换开启
chroot_list_file=/etc/vsftpd/chroot_list 这个文件内的用户将被根切换
或者以上参数都不要。直接chroot_local_user=YES,禁锢所有用户的家目录
userlist_enable=YES 不受欢迎用户列表使能,这个列表和vsftpd.conf在一个目录中
anon_max_rate=0 限制匿名用户的传输速率,0为不限制userlist_enable=YES 不受欢迎用户列表使能,这个列表和vsftpd.conf在一个目录中
<匿名用户上传>
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
<匿名用户下载>
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载
<匿名用户删除>
anon_other_write_enable=YES|NO
<匿名用户建立目录>
anon_mkdir_write_enable=YES|NO
<匿名用户家目录修改>
anon_root=/direcotry
#<匿名用户上传文件默认权限修改>
anon_umask=xxx
#<匿名用户使用的用户身份修改>
chown_uploads=YES
chown_username=student
#<最大上传速率>
anon_max_rate=102400
#<最大链接数>
max_clients=2
4.虚拟用户创建和相关配置
创建虚拟帐号身份
vim /etc/vsftpd/ftpuser ##文件名称任意 (奇数行为用户名,偶数行为密码)
db_load -T -t hash -f /etc/vsftpd/ftpuser ftpuser.db 加密上述用户列表
在/etc/pam.d/ckvsftpd下填写这两句话
vim /etc/vsftpd/vsftpd.conf 编辑配置文件 新加128-129行 修改125=后面文件名称为自己刚刚创建文件名称
虚拟帐号身份指定
guest_username=ftp
虚拟帐号家目录独立设定 添加130-131行
建立虚拟用户家目录,修改权限
touch /vuserdir/ftpuser1/user1file
touch /vuserdir/ftpuser2/user2file
touch /vuserdir/ftpuser3/user3file
mkdir /vuserdir/ftpuser{1..3}/pub
chmod 777 /vuserdir/ftpuser{1..3}/pub
chmod 777 /vuserdir/ftpuser{1..3}/pub
这样我们就可以看到我们用刚刚创建的三个虚拟用户成功登陆ftp服务而且每个用户登陆的目录都不一样
虚拟帐号配置独立
配置文件中输入第132行
mkdir -p /etc/vsftpd/vuserconf
vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级高