建立简单的FTP服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了建立简单的FTP服务器相关的知识,希望对你有一定的参考价值。

安装及启动FTP

yum -y install vsftpd.x86_64
技术分享图片

查看FTP程序生成的文件

技术分享图片
/etc/vsftpd/vsftpd.conf 这个是配置文件
/etc/vsftpd/ftpusers 这个是用户名单
/etc/vsftpd/user_list 这个也是用户名单
/usr/sbin/vsftpd 这个是vsftp的主程序
/usr/lib/systemd/system/vsftpd.service 这个是服务启动程序
在安装ftp程序时,系统生成个了ftp用户和组

启动FTP服务

技术分享图片

测试下

技术分享图片

技术分享图片

配置参数

anonymous_enable 默认开启

允许匿名访问
技术分享图片
我把YES改成NO
技术分享图片
结果
技术分享图片

anon_upload_enable 默认关闭

这个是允许匿名用户上传文件
而且这个参数依赖于write_enable=YES
技术分享图片
我把这个参数开启来
技术分享图片
技术分享图片
这个报错是由于ftp用户对于共享的目录没有写权限,将/var/ftp/pub的属主改为ftp
技术分享图片
技术分享图片

anon_mkdir_write_enable 默认关闭

这个是允许匿名用户创建目录
技术分享图片
我把参数开起来
技术分享图片
技术分享图片

anon_other_write_enable 默认没有参数

这个是允许匿名用户删除及重命名文件
技术分享图片
我把这个参数打开
技术分享图片
自己手动添加这个参数
技术分享图片

Local_enable 默认是开的

允许系统其它用户登录FTP 所有非匿名用户生效 这个命令很不安全
技术分享图片
我把它关闭
技术分享图片

Local_umask 默认是022

这个参数用来修改本地用户上传文件的权限的
我改成044
技术分享图片
技术分享图片
上传文件的权限就是622 (用6减)
创建目录的权限就是733(用7减)

dirmessage_enable 默认是开启的

这个参数是指定登录FTP目录时弹出来的信息,默认使用.message文件,也可以通过message_file指定,提示文件需要在FTP目录内。
技术分享图片
技术分享图片

其他参数

xferlog_enable 是否启动日志功能 默认是开启的
技术分享图片
xferlog_std_format 是否使用标准的日志格式 标准的日志格式不容易读
xferlog_file=/var/log/xferlog 指定FTP日志文件路径
chown_uploads 上传文件默认是将文件数组和属主修改为ftp,该选项就是指定是否需要修改上传文件的属性。如果允许,那么上传文件的属性将被修改为chown_username指定的属组和属主。如果不设置chown_username 那么默认的属主为root 属组是ftp
技术分享图片
这个上传我用的用户是anonymous
技术分享图片
默认的属性是0600 我改成了0400
技术分享图片
idle_session_timeout FTP会话超时时间
listen_port 服务监听的端口
local_max_rate 传输限速,默认不限速(0)
anon_max_rate 匿名用户的最大传输速率。 0表示无限制
max_clients 最大并发连接数 0表示无限制
max_per_ip 每个IP允许建立的ftp连接数
connect_timeout 主动模式下,服务器与客户端建立数据连接的超时时间
data_connection_timeout 被动模式下,客户端与服务器建立数据连接的超时时间
ftpd_banner=xxx FTP登录提示语

技术分享图片

技术分享图片

chroot_local_user

是否允许本地用户只能访问自己的家目录。默认是可以访问其他目录(NO)
技术分享图片
现在我改成YES
技术分享图片
但是改成YES之后,用户不能登录了
技术分享图片
这是因为新版的FTP增强了安全性,需要将用户的家目录的权限中的w权限删除
技术分享图片
再次登录
技术分享图片

chroot_list_enable

这个也是限制用户通过FTP访问其他目录的,不过chroot_local_user是对全部用户有效, 这个参数是对指定用户有效。
如果chroot_local_user+chroot_list_enable的条件 那么chroot_list_file是个白名单
技术分享图片
技术分享图片
可以改变工作目录
如果只有chroot_list_enable 那么chroot_list_file 是个黑名单
我现在注释掉chroot_local_user
技术分享图片

userlist_enable

userlist_enbale=YES(默认就是YES) + ftpusers=黑名单 不允许登录 但是可以输入密码
技术分享图片
userlist_enable=YES +userlist_deny =NO +userlist_file(user_list) =白名单
userlist_enable=YES +userlist_deny =YES +userlist_file(user_list) =黑名单 不允许登录 不要求输入密码
技术分享图片

以上是关于建立简单的FTP服务器的主要内容,如果未能解决你的问题,请参考以下文章

传输文件协议FTP

ftplib模块编写简单的ftp服务

python ftplib模块编写简单的ftp服务

ftp无法与服务器建立连接

FTP服务的配置与管理---FTP服务器的建立

怎么建立FTP服务器?