五十六、FTP介绍、使用vsftpd搭建ftp服务

五十六、FTP介绍、使用vsftpd搭建ftp服务

一、FTP介绍

FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输,文件共享。

FTP的主要作用:让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。

小公司用的多,大企业不用FTP,因为不安全,尽量不要用FTP,如果一定要用,就用SFTP,然后用密钥


二、使用vsftpd搭建ftp服务

centos上默认自带ftp的软件包叫:vsftpd

# yum install -y vsftpd

# useradd -s /sbin/nologin virftp      

//名字自定义,-s指定shell,/sbin/nologin表示这个用户不能登录系统。

//vsftpd这个软件包可以使用系统级别的软件包,就比如user1,可以用user1来登录vsftpd,登录形式不是ssh,而是ftp,登录以后会进入user1的家目录下;但是这样不安全,所以解决办法是:给这个ftp设置一个虚拟用户,虚拟用户映射成系统的普通用户,这个虚拟用户名,是不能登录服务器这个机器的,这样就安全很多。

# vim /etc/vsftpd/vsftpd_login   这个文件叫虚拟用户密码文件。

//内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行

testuser1

aminglinux

# chmod 600 /etc/vsftpd/vsftpd_login

# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

//把文本的密码文件转换成计算机识别的二进制文件

# mkdir /etc/vsftpd/vsftpd_user_conf

//虚拟用户的配置文件所在目录,这个目录是自定义的,也需要在配置文件中去定义。

# cd /etc/vsftpd/vsftpd_user_conf

# vim testuser1

//创建一个虚拟用户的配置文件,这个文件名必须和用户名保持一致,加入如下内容

local_root=/home/virftp/testuser1    虚拟用户家目录

anonymous_enable=NO      是否允许匿名用户

write_enable=YES                是否允许可写

local_umask=022                  和系统的umask保持一致的

anon_upload_enable=NO     是否允许匿名用户可上传

anon_mkdir_write_enable=NO  是否允许匿名用户可创建目录和写

idle_session_timeout=600      超时时间,超过600秒以后就自动断开ftp连接

data_connection_timeout=120     数据传输的超时时间

max_clients=10                         最大的客户端是多少

//标红的是关键配置参数。


# mkdir /home/virftp/testuser1     创建虚拟用户的家目录

# touch /home/virftp/testuser1/aming.txt

# chown -R virftp:virftp /home/virftp    

//因为最终要映射成virftp这个用户,所以没有权限不行

# vim /etc/pam.d/vsftpd      //在最前面加上,这个操作很重要,定义密码文件的位置,用来认证的文件。

#%PAM-1.0

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

# ls /lib64/security/pam_userdb.so     //这里需要注意,如果是centos6,区分32位和64位的操作系统,是32就写32,这个文件是必须存在的。


# vim /etc/vsftpd/vsftpd.conf     编辑vsftpd的主配置文件

将anonymous_enable=YES 改为 anonymous_enable=NO

将#anon_upload_enable=YES 改为 anon_upload_enable=NO取消注释

将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO

这行也取消注释;  

再增加如下内容

chroot_local_user=YES

guest_enable=YES    下面行的guest要想生效,这里打开

guest_username=virftp   虚拟用户映射的对应的系统用户

virtual_use_local_privs=YES  告诉这个我们用的是虚拟用户

user_config_dir=/etc/vsftpd/vsftpd_user_conf  

//定义虚拟用户配置文件所在路径

allow_writeable_chroot=YES

# systemctl start vsftpd //启动vsftpd服务

然后看一下监听的端口是21,看一下进程。


测试ftp

# yum install -y lftp

# lftp [email protected]    口令就是密码,

执行命令ls,就能看到之前创建的文件,看是否正常输出

若不正常查看日志/var/log/messages和/var/log/secure

看支持什么命令,输入个问号再回车。

常用的有put,get

lftp [email protected]:/> get aming.txt    会get到当前目录

lftp [email protected]:/> quit      

[root@MRX ~]# ls

就可以看到aming.txt这个文件

windows下安装filezilla客户端软件,进行测试

lftp:Linux上的ftp客户端。

filezilla:ftp的开源的,免费的,可以搭建服务,有客户端,很好用。


用xshell实现和ftp的功能:两种方案

(一)新建会话

协议改成SFTP,名称定义的yaowei-01-sftp,主机名是192.168.93.130,端口22。然后就可以连接了,用户名root,输入密码,进入后这时候是在root下。然后就可以get文件了,那么get的文件保存的路径就在这个会话属性中SSH下的SFTP中可以自定义本地文件夹,这里我定义了桌面,get就会直接传到桌面上,因为这边是命令行,所以不太直观。

(二)使用XFTP

先ctrl+d退出来终端,然后可以使用ctrl+alt+f

然后到这个网站里去下载这个插件,再安装这样的一个过程。


猜你喜欢

转载自blog.51cto.com/13576245/2115064
今日推荐