Linux_FTP

来源:互联网 发布:淘宝店铺怎么发布微淘 编辑:程序博客网 时间:2024/06/11 18:01

1.ftp的基础知识

ftp是一种古老的数据传输工具,也是一个明文传输的协议。按照用户登录方式。可以分为
1.实体用户登录(real user)
2.访客(guest)
3.匿名用户(anonymous)

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为不限制
<匿名用户上传>
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行


建立虚拟用户家目录,修改权限


mkdir /vuserdir/ftpuser{1..3} -p
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

这样我们就可以看到我们用刚刚创建的三个虚拟用户成功登陆ftp服务而且每个用户登陆的目录都不一样



虚拟帐号配置独立

配置文件中输入第132行

mkdir -p /etc/vsftpd/vuserconf

vim /etc/vsftpd/userconf/ftpuser1

在此文件中设定配置文件中的所有参数,此文件的优先级高









原创粉丝点击