当前位置:首页 > 操作系统 > Linux

linux中的FTP服务配置详解

本文主要内容有: linux中安装vsftpd(也就是FTP服务)。

1、 使用匿名用户上传和下载文件。

2、 使用身份验证的方式上传和下载文件。

3、 建立虚拟用户(步骤比较多)。

4、 为单独的用户建立单独的上传和下载机制(花那么多时间只是为了您知道“兂”这个字)。

首先是安装 vsftpd服务(也就是FTP服务),安装完成之后使用rpm -qc vsftpd查看文件的安装目录,也可以使用grep命令过滤掉以#开头的注释文件并查看配置文件。

技术分享650) this.width=650;" title="图片1.png" src="/upload/getfiles/default/2022/11/14/20221114044014902.jpg" />

下面是关闭 iptables防火墙和SElinux策略,然后使用echoFTP站点中创建一个.txt文件。

技术分享650) this.width=650;" title="图片2.png" src="/upload/getfiles/default/2022/11/14/20221114044015470.jpg" />

如果说是匿名访问的话,此时就可以直接开启 vsftpd 服务,开启之后也可以检查 FTP21端口开启了没有。

技术分享650) this.width=650;" title="图片3.png" src="/upload/getfiles/default/2022/11/14/20221114044015797.jpg" />

下面可以使用 win7客户机,访问linuxvsftpd服务,在命令行中切换到C盘下面。然后输入“ftp IP地址”服务器的IP地址,接着输入用户名ftp或者anonymous提供任意密码访问,然后使用get命令把111.txt文件下载到win7客户机上。

技术分享650) this.width=650;" title="图片4.png" src="/upload/getfiles/default/2022/11/14/20221114044016151.jpg" />

因为我切换到了 C盘,所以打开C盘就可以看到下载下来的文件,修改个名字222.txt上传文件试一下,结果证明此时是不能上传的(没有设置权限和参数)。

技术分享650) this.width=650;" title="图片5.png" src="/upload/getfiles/default/2022/11/14/20221114044016581.jpg" />

此时使用 vi /etc/vsftpd/vsftpd.conf命令编辑vsftpd的主配置文件。把下面三个允许匿名用户上传的参数前面的#号去掉,或添加上去。

技术分享650) this.width=650;" title="图片6.png" src="/upload/getfiles/default/2022/11/14/20221114044016998.jpg" />

现在设置目录权限,注意这里更改权限只能修改 ftp下面的某个目录的权限,不能修改ftp目录的权限,一旦修改ftp目录权限,将所有用户都无法访问。我这里权限设置的是ftp目录下面的pub目录。

技术分享650) this.width=650;" title="图片7.png" src="/upload/getfiles/default/2022/11/14/20221114044017439.jpg" />

上面配置完成并且重启 vsftpd服务后,回到win7客户机使用by退出登陆,然后再重新登陆cd切换到ftp下面的pub目录。使用put上传文件222.txt成功。 同样使用

ftp> ls   //查看pub目录下的文件, ftp> delete 222.txt   //表示删除文件

技术分享650) this.width=650;" title="图片8.png" src="/upload/getfiles/default/2022/11/14/20221114044017860.jpg" />

下面做本地用户登陆访问,首先创建两个用户,并设置密码。

技术分享650) this.width=650;" title="图片9.png" src="/upload/getfiles/default/2022/11/14/20221114044018247.jpg" />

可以到客户机上先验证一下此时用户所能做的事情,可以看到用户zhangsan竟然可以切换到root根目录中,这样是很不安全的。

技术分享650) this.width=650;" title="图片10.png" src="/upload/getfiles/default/2022/11/14/20221114044018594.jpg" />

下面回到 linux中编辑vsftpd的主配置文件,把其中的“chroot_local_user=YES”注释去掉(解释在图中)。重启服务。

技术分享650) this.width=650;" title="图片11.png" src="/upload/getfiles/default/2022/11/14/20221114044019027.jpg" />

Win7客户机上同样需要by退出后重新登录,显示随便怎么切换都是在自己的家目录而已。

技术分享650) this.width=650;" title="图片12.png" src="/upload/getfiles/default/2022/11/14/20221114044019320.jpg" />

另外在“ /etc/vsftpd/”目录下,有个可以控制用户登陆的文件user_list默认这里面的用户是禁止登陆FTP的。可以使用echo命令把zhangsan用户追加进去。

技术分享650) this.width=650;" title="图片13.png" src="/upload/getfiles/default/2022/11/14/20221114044019925.jpg" />

再到 win7客户机上面去登陆,表示登陆失败了。

技术分享650) this.width=650;" title="图片14.png" src="/upload/getfiles/default/2022/11/14/20221114044020281.jpg" />

同样的道理,如果把主配置文件里面的 userlist_enable=YES改为deny=YES那么上面的user_list中的用户将只是允许登陆的用户。

技术分享650) this.width=650;" title="图片15.png" src="/upload/getfiles/default/2022/11/14/20221114044020594.jpg" />

下面创建虚拟用户,虚拟用户就是在 FTP用户和系统用户之间建立映射关系,首先在/etc/vsftpd目录下编辑配置文件vuser,内容为:

jack       /*奇数行为用户*/

123123     /*偶数行为密码*/

jerry

123123

db_load -T -t hash -f vuser vuser.db /*把刚才创建的用户文件转换成数据库文件*/ chmod 600 vuserchmod 600 vuser.db /*设置权限不让别人看见里面的用户名和密码信息*/(注意文件路径,文中使用的是绝对路径)。

useradd -d /opt/vuser -s /sbin/nologin vuser /*创建一个用户为vuser 指定家目录/opt/vuser 并切不使用shell登陆*/

技术分享650) this.width=650;" title="图片16.png" src="/upload/getfiles/default/2022/11/14/20221114044020947.jpg" />

编辑pam认证模块支持虚拟用户的登陆vi /etc/pam.d/vsftpd.vu

auth required pam_userdb.so db=/etc/vsftpd/vuser 

account required pam_userdb.so db=/etc/vsftpd/vuser /*此处两个文件vuser并不是普通文件而是刚才创建的vuser.db数据库文件,此处必须省略不写*/

技术分享650) this.width=650;" title="图片17.png" src="/upload/getfiles/default/2022/11/14/20221114044021278.jpg" />

然后再 vi /etc/vsftpd/vsftpd.conf 编辑主配置文件,注释掉上面的 pam认证服务文件,然后在下面编辑

guest_enable=YES   //开启虚拟用户登陆。

guest_username=vuser   //指定虚拟用户。

pam_service_name=vsftpd.vu  / / 使用pam认证登陆

技术分享650) this.width=650;" title="图片18.png" src="/upload/getfiles/default/2022/11/14/20221114044021531.jpg" />

配置完成之后重启或者重新加载配置文件。这里最好也设置一下 系统用户vuser的家目录文件权限(为了后面可以写入)。

技术分享650) this.width=650;" title="图片19.png" src="/upload/getfiles/default/2022/11/14/20221114044021840.jpg" />

然后使用 win7客户机重新访问FTP服务,使用虚拟用户jack进行访问,put上传文件也是可以的(如果你可以上传但是ls看不到文件那是权限的问题)。

技术分享650) this.width=650;" title="图片20.png" src="/upload/getfiles/default/2022/11/14/20221114044022007.jpg" />

还可以对单独用户进行配置,进入主配置文件按 G到末行 插入user_config_dir=/etc/vsftpd/vu_dir   # 单独用户配置文件夹位置。 Mkdir创建 上面配置文件中所指定的目录, vi进入创建jack用户配置文件,在里面编辑anon_umask=022  #指定上传文件的权限。

技术分享650) this.width=650;" title="图片21.png" src="/upload/getfiles/default/2022/11/14/20221114044022538.jpg" />

技术分享650) this.width=650;" title="图片22.png" src="/upload/getfiles/default/2022/11/14/20221114044022923.jpg" />

技术分享650) this.width=650;" title="图片23.png" src="/upload/getfiles/default/2022/11/14/20221114044023249.jpg" />

使用 win7客户机进行访问,再次上传个文件。

技术分享650) this.width=650;" title="图片24.png" src="/upload/getfiles/default/2022/11/14/20221114044023494.jpg" />

回到 linux查看刚才上传的文件的权限,能够看到已经是644权限。

技术分享650) this.width=650;" title="图片25.png" src="/upload/getfiles/default/2022/11/14/20221114044023901.jpg" />

 经验总结:用户名,编辑目录位置,服务开启加载状态等都是容易忘记和出错的地方。还有权限设置,一般匿名访问都是用于公共场合使用,建议不要给最大权限。用户身份验证的时候注意应该给用户的权限,不能让他权限太多。虚拟用户登陆时用户设置别搞错了。

好了,实验完成谢谢大家!

 

本文出自 “朕的天下” 博客,请务必保留此出处http://zhang2015.blog.51cto.com/9735109/1661086

原文:http://zhang2015.blog.51cto.com/9735109/1661086


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!