3.ftp登录用户的3种模式

3.ftp登录用户的3种模式

ftp登录用户的3种模式

1.ftp文件传输协议介绍

利用文件传输的形式,获取其他机器的数据、资料​FTP就诞生(file transfer protocol,文件传输协议)FTP是在互联网中进行文件传输的一种协议,基于c/s,有一个服务端,有一个客户端FTP默认有2个工作端口 一个是20端口,用于数据的传输端口 一个是21端口,是FTP服务端用于接收客户端发来的FTP指令和参数 FTP服务器按照FTP协议在互联网上提供文件存储,以便客户端能够快捷的访问数据 FTP客户端向服务端寻求资料 FTP工作模式主要分为2种: 主动模式:FTP服务器主动向客户端发送连接请求 被动模式:FTP服务器在等待,等待客户端发来请求 ##安装ftp服务 FTP是一种文件传输协议,那么在linux系统下,有一款工具实现ftp协议,名为vsftpd,费城安全的ftp守护进程服务 对于centos系统平台,直接yun安装即可 yum install vsftpd -y #默认的yes确认安装,阿里云的yum源

学习修改vsftpd的配置文件

配置文件:/etc/vsftpd/vsftpd.conf​linux在默认安装的软件配置文件都在/etc目录[root@localhost ~]# grep -Ev '^#|^$' /etc/vsftpd/vsftpd.confanonymous_enable=YESlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_file=/var/log/xferlogxferlog_std_format=YESlisten=YESlisten_ipv6=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YES

2.vsftpd匿名用户模式

1.vsftpd允许用户用三种认证的模式,登录到ftp服务器:

1.本地用户模式,基于linux的本地账号密码进行验证,配置简单,但是安全隐患存在,一旦ftp账号密码被破解,无安全可言2.匿名用户登录模式,任何人不需要密码直接登录ftp3.虚拟用户模式,单独为ftp工具创建用户数据库,基于口令验证账号密码的信息,这些数据库仅仅用于FTP的服务,不影响其他程序,因此是最为安全的形式​对于FTP客户端,需要安装FTP命令工具,方可使用ftp> ? #直接在命令行终端输入ftp命令,即可进入交互式的ftp命令行中,输入问好可以查看所有的命令帮助

2.匿名用户登录模式:

匿名用户是最不安全的方式,一般用于在公开展示一些不重要的信息,允许所有人可以查看的数据,ftp匿名登录模式,一般打开在企业内网平台下,并且受防火墙规则控制,以保证ftp的基本安全性。​

1.vsftpd配置文件,默认就已经开启了匿名模式,修改配置文件为如下:

[root@localhost ~]# grep '^anon' /etc/vsftpd/vsftpd.confanonymous_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YES​重启vsftpd进程,加载ftp服务​systemctl restart vsftpd

2.在启动了vsftpd服务后,使用ftp客户端命令进行操作

3.指定ip地址链接

4.登录ftp后,无法写入数据怎么办?

ftp>mkdir chaoge到此一游​550 Create directory operation failed.​ftp>​#登录ftp后,默认进去的文件夹路径在/var/ftp目录下1.进入该ftp目录后,修改文件夹的权限相关cd /var/ftp[root@localhost ftp]# chown -Rf ftp.ftp pub2.检查pub文件夹的权限ll /var/ftp3.如果想要修改ftp目录下的资料,重命名或删除等操作,还得添加一个参数[root@localhost ~]# grep '^anon' /etc/vsftpd/vsftpd.confanonymous_enable=YES #允许匿名用户登录anon_upload_enable=YES #允许匿名用户上传文件夹anon_mkdir_write_enable=YES #允许匿名用户写入,创建文件夹anon_other_write_enable=YES​

3.VSftpb本地用户模式

使用本地用户进行账号密码验证使用linux本地账户的验证模式,比如匿名用户是安全的多​修改vsftpd.conf改为如下参数vim /etc/vsftpd/vsftpd.conf[root@localhost ftp]# grep -Ev '^#|^$' /etc/vsftpd/vsftpd.confanonymous_enable=NO #关闭匿名用户验证模式local_enable=YES #开启linux本地账号验证模式write_enable=YES #允许用户写入local_umask=022 用户写入数据时,默认的文件权限dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_file=/var/log/xferlogxferlog_std_format=YESlisten=YESlisten_ipv6=YESpam_service_name=vsftpduserlist_enable=YESuserlist_deny=YEStcp_wrappers=YES​重启vsftpd,加载配置systemctl restart vsftpd​【此时我们可以用ftp客户端仅从远程连接,使用linux本地账号】1.确保服务器上有一个用户可以进行ftp连接,比如用户pyyu[root@localhost ~]# useradd pyyu[root@localhost ~]# passwd pyyu2.此时用客户端连接该ftp,使用账号pyyu,ftp连接后,默认进入是是用户家目录,以保证其他目录安全linux系统的本地用户可以登录ftp,进入家目录后,进行增删改查​

3.有些用户是无法登录ftp的,在一个用户名单里被禁止了[root@localhost ~]# cat /etc/vsftpd/ftpusers# Users that are not allowed to login via ftprootbindaemonadmlpsyncshutdownhaltmailnewsuucpoperatorgamesnobody尝试用这些用户登录ftp

4.ftp的虚拟用户认证方式

顾明思义虚拟用户认证方式,就是虚拟创建出来的用户,对于服务器而言也是最安全的方式。1.安装DB工具,能够转化普通文件为vsftpd识别的数据库加密文件yum install db4 db4-utils -y​2.创建用于验证vsftpd的数据文件[root@localhost ~]# vim ftp_user.txt[root@localhost ~]# cat ftp_user.txtchaochao888chaoyu666​3.由于这样的普通文件很不安全,vsftpd也无法识别该txt的文件数据,因此还得使用db_load命令对于这个ftp_user.txt文件进行加密,并且修改他的文件属性,让普通用户无权查看 3.1加密文件 db_load -T -t hash -f /etc/vsftpd/ftp_user.txt /etc/vsftpd/ftp_user.db 3.2 降低文件的读写权限 chmod 600 ftp_user.db 3.3 删除旧的数据文本,保证安全性 rm ftp_user.txt 4.创建当虚拟用户登录ftp之后进入的文件夹路径,且和linux中的一个用户做一个映射关系,防止虚拟用户登录后,创建了文件夹,但是系统没有此用户会报错的一个问题。 4.1创建一个系统用户和虚拟用户做映射,且不需要家目录,禁止用户登录shell useradd -d /var/ftpdir -s /sbin/nologin virtual_chao 4.2检查该用户的家目录 [root@localhost ~]# ll -ld /var/ftpdir/drwx------ 2 virtual_chao virtual_chao 62 3月 9 18:16 /var/ftpdir/ 4.3 更改文件夹权限 [root@localhost ~]# chmod -Rf 755 /var/ftpdir/ 4.4 修改virtual_chao用户添加到ftpsuer文件中,增大系统安全,该操作不会影响虚拟用户的操作 echo 'virtual_chao' >> /etc/vsftpd/ftpusers 5.需要修改vsftpd的配置文件,添加一个支持虚拟用户验证的PAM文件,PAM是一组安全机制的模块,认证文件路径在/etc/pam.d/vsftpd 修改,添加如下参数,必须注释掉之前所有的内容,仅仅添加有关自定义的vsftpd的配置 vim /etc/pam.d/vsftpd [root@localhost ~]# cat /etc/pam.d/vsftpd#%PAM-1.0auth required pam_userdb.so db=/etc/vsftpd/ftp_useraccount required pam_userdb.so db=/etc/vsftpd/ftp_user ​​

6.最后来修改vsftpd的配置文件,加载支持虚拟用户模式,修改为如下参数(注释写在笔记里,不要写在加载文件中)

7.针对不同的虚拟用户设置不同的权限chaochao 针对该用户,允许它能够上传、新建、修改、查看、删除等权限chaoyu 只读权限​

8.如上的操作,需要修改vsftpd文件,定义 user_config_dir参数即可 8.1 创建一个管理虚拟用户的家目录,并且创建虚拟用户的配置文件

分别添加参数,给2个虚拟用户的配置文件

9.修改vsftpd主配置文件,加载如上的权限控制修改/etc/vsftpd/vsftpd.conf ,添加一行如下参数,自定义的vsftpd的用户配置文件user_config_dir=/etc/vsftpd/virtual_user_dir

10.重启服务,加载新的配置systemctl restart vsftpd11.此时使用客户端连接ftp,用虚拟用户进行验证

相关内容