linux中的FTP服务配置详解

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

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

二、使用身份验证的方式上传和下载文件。数据库

三、创建虚拟用户(步骤比较多)。安全

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

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

wKiom1V5lyHjjUfOAAQTtN8o6MQ743.jpg

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

wKioL1V5mMiB0svuAAEfYA0xkr8413.jpg

若是说是匿名访问的话,此时就能够直接开启vsftpd服务,开启以后也能够检查FTP21端口开启了没有。spa

wKiom1V5lyGALOyfAAH34gKeSeE255.jpg

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

wKioL1V5mMmxLx1YAAQuQYduUAo097.jpg

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

wKiom1V5lyLxVBCgAARb3ndUwI8547.jpg

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

wKioL1V5mMnRLO_7AAWNC2KLNRc693.jpg

如今设置目录权限,注意这里更改权限只能修改ftp下面的某个目录的权限,不能修改ftp目录的权限,一旦修改ftp目录权限,将全部用户都没法访问。我这里权限设置的是ftp目录下面的pub目录。

wKiom1V5lyOx8Vp_AAHv8uAVf7Y122.jpg

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

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

wKioL1V5mMrQWnCgAARMHxvEvVI510.jpg

下面作本地用户登录访问,首先建立两个用户,并设置密码。

wKiom1V5lyPA3ElOAAHo1XOHu90515.jpg

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

wKioL1V5mMvz6emJAAO0vRgeQ40686.jpg

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

wKiom1V5lyTQZjG1AAKo-q5PWoo520.jpg

Win7客户机上一样须要by退出后从新登陆,显示随便怎么切换都是在本身的家目录而已。

wKioL1V5mMvRcVdeAANX5zhbh50100.jpg

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

wKiom1V5lyShmycUAAKNg1SRAh8712.jpg

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

wKioL1V5mMuDrGlhAADYQlMquAk645.jpg

一样的道理,若是把主配置文件里面的userlist_enable=YES改成deny=YES那么上面的user_list中的用户将只是容许登录的用户。

wKiom1V5lyWQQU7fAADZmI6WE-8406.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登录*/

wKioL1V5mMzDup-tAAPxI6EZUR0870.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数据库文件,此处必须省略不写*/

wKiom1V5lyXjmm_-AAB2rJeQd2Q133.jpg

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

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

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

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

wKioL1V5mM3gtlY8AADaIdjaKn8816.jpg

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

wKiom1V5lyaxmKuVAAFkkvo4gSs779.jpg

而后使用win7客户机从新访问FTP服务,使用虚拟用户jack进行访问,put上传文件也是能够的(若是你能够上传可是ls看不到文件那是权限的问题)。

wKioL1V5mM2ggbSYAANj6muTXFI657.jpg

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

wKiom1V5lybB6leGAAGX7rz_lFs916.jpg

wKioL1V5mM3ggToqAAC9edVi_kU164.jpg

wKiom1V5lyaTmGJBAABvNj2BqZ0786.jpg

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

wKioL1V5mM6QvamtAAPDAybhPq0871.jpg

回到linux查看刚才上传的文件的权限,可以看到已是644权限。

wKiom1V5lyexUcjoAAD12vR_A4E271.jpg

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

好了,实验完成谢谢你们!

相关文章
相关标签/搜索