Linux中的FTP服务
• 连接及传输模式
• 控制连接:TCP21,用于发送FTP命令信息
• 数据连接:TCP20,用于上传、下载数据
• 数据连接的建立类型
• 主动模式:服务器端从20端口主动向客户端发起连接
• 被动模式:服务器端在指定范围内某个端口被动等待客户端连接
• 传输模式
• 文本模式:ASCII模式,以文本序列传输数据(传文本文件)
• 二进制模式:Binary模式,以二进制序列传输数据(传视频、语音都行,所以使用多一些)
• 用户类型
• 匿名用户:anonymous或ftp
• 本地用户:账号名称、密码等信息保存在passwd、shadow文件中
• 虚拟用户:使用独立的账号/密码数据文件
• 遇到的问题
• ftp登录到的文件夹权限不能给777(权限问题很重要)
• get和put的不能是目录
• 实例:put /aa/2.txt 2.txt
• 删除文件:delete 文件名
• 删除目录:rmdir 目录名
• 在登录的目录下创建目录,权限给到777,就可以在里面做很多操作
• 登录后只能创建目录,不能创建文件
• guest_enable开启后,只能虚拟登录
• 安装FTP
• 挂载光盘
• 关闭防火墙和selinux
• 安装vsftpd(客户端还需安装ftp)
• yum install -y vsftpd
• 目录/var/ftp:用户ftp的宿主目录
• 目录/var/ftp/pub:登录ftp时默认登录到这个目录
• 配置文件:/etc/vsftpd/vsftpd.conf
• 三种登录
• 匿名登录(需修改的配置/etc/vsftpd/vsftpd.conf)
• anonymous_enable = YES(是否允许匿名用户登录)
• local_enable = NO(是否允许本地用户登录,)
• write_enable = YES(是否可写)
• local_umask = 022(创建文件夹时默认掩码,当默认是022时,若给777,实际为755)
• anon_root = /aa (修改登录到的文件夹,默认是/var/ftp)
• 登录方式:ftp ip
• ftp或者anonymous
• 密码直接回车
• 本地登录(需修改的)
• anonymous = NO
• local_enable = YES
• local_umask = YES
• local_root = /aa
• chroot_local_user = YES(所有登录的用户都被限制在宿主目录内,不能操作整个服务器文件)
• chroot_list_enable = YES(给某些用户特权,可以操作整个服务器文件),需要同时开启下面对应的list,退出配置文件,在刚刚list对应的文件里面写入需要允许的账户
• 附
• 登陆后的路径不同于匿名登录,本地登录后pwd查看路径可以看出,显示路径的方式与服务器实际一致,可以退到根目录然后操作整个服务器文件,为了安全,所以会给限制
• 虚拟登录
• 安装 db4,db4-devel,db4-utils中任一个
• yum -y install db4*
• 在/etc/vsftpd下创建文件vuser.list(名字随便写)
• 在里面写虚拟的用户,奇数行为用户名,偶数行为上一行中用户名所对应的密码。
• db_load -T -t hash -f vuser.list vuser.db(转化类型)
• -T: 转化为其它数据库
• -t:接验证格式(hash)
• -f:接需要转化的文件及类型
• file vusers.db(查看类型)
• 修改权限
• chmod 600 vuser.db
• 可以创建一个不允许登录的用户也可以用旧的(最好新建)
• useradd -d /var/ftp/cc -s /sbin/nologin cc
• -d:接宿主目录,若已存在此目录,则不会新建目录,若不存在此目录,则新建
• usermod -l:修改用户名
• chmod 755 cc(修改宿主目录权限)
• 做映射两种方式(修改pam配置)
• # vim /etc/pam.d/vuser.pam //为虚拟用户创建PAM认证文件,文件名随意,为了辨认,前缀和上面一样,只修改后缀
• auth required pam_userdb.so db=/etc/vsftpd/vuser (上面用户和密码文件路径,去掉后缀)
• account required pam_userdb.so db=/etc/vsftpd/vuser
• 注意:db=/etc/vsftpd/vsftpd_login 后面的.db必须去掉
• # vim /etc/pam.d/vsftpd //将里面其他的都注释掉,添加下面这两行
• auth required pam_userdb.so db=/etc/vsftpd/vuser
• account required pam_userdb.so db=/etc/vsftpd/vuser
• 修改配置文件
• guest_enable = YES
• guest_username = cc(与虚拟用户对应的本地用户)
• pam_service_name = vuser.pam(指定新的PAM认证文件)
• virtual_use_local_privs=YES/NO(是否把本地用户的权限给虚拟用户)
Linux中的FTP匿名、本地、虚拟登录笔记
最新推荐文章于 2023-02-08 18:45:13 发布