FTP安装与配置

12月10、11日任务
15.1 FTP介绍
15.2/15.3 使用vsftpd搭建ftp
15.4 xshell使用xftp传输文件
15.5 使用pure-ftpd搭建ftp服务

15.1 FTP介绍

FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。

小公司用的多,大企业不用FTP,因为不安全。许多大企业用自动化发布工具,比如git。

15.2/15.3 使用vsftpd搭建ftp

centos上自带vsftpd,如果没有使用yum install -y vsftpd安装。

vsftpd可以使用系统用户操作,但是为了安全,为ftp设置虚拟用户,将虚拟用户映射成系统用户。首先创建一个系统用户,用来之后虚拟用户映射。useradd -s /sbin/nologin virftp。然后就编辑虚拟用户密码文件,vim /etc/vsftpd/vsftpd_login,奇数行为用户名,偶数行为密码,多个用户就写多行。我在密码文件中添加了一个虚拟用户:

testuser1
alinux

保存后修改文件权限: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
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10

然后创建共享目录:mkdir /home/virftp/testuser1,随便创建一个文件:touch /home/virftp/testuser1/aming.txt。更改共享目录的属主:chown -R virftp:virftp /home/virftp

定义密码文件路径:vim /etc/pam.d/vsftpd,在最前面加上:

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

最后配置vsftpd的主配置文件:vim /etc/vsftpd/vsftpd.conf
将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_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES

systemctl start vsftpd,启动vsftpd服务。netstat -lntp 查看21端口是否开启。

测试ftp服务就需要安装ftp客户端,图形软件推荐filezilla,linux上命令行软件有lftp。yum install -y lftp。使用lftp [email protected]登录服务端,注意用户名和服务端ip。执行命令ls,看是否正常输出。若不正常查看日志/var/log/messages和/var/log/secure。lftp下输入问号查看命令提示,常用的有put、get等。

windows下安装filezilla客户端软件,进行测试。注意filezilla有server、client版本,不要安装错。另外,许多linux管理员在windows下使用xshell登录管理linux,xshell提供了基于ssh的sftp功能。类似ssh登录配置,在xshell连接登录界面简单设置后就可以命令行界面登录linux。默认登录用户家目录,使用put上传,get下载。xshell还提供了xftp功能,这个是sftp的图形实现,安装xftp插件即可(按ctrl+alt+f)。

15.5 使用pure-ftpd搭建ftp服务

pure-ftpd比vsftpd要轻量,可以代替vsftpd。

yum安装需要扩展源:yum install -y epel-release,安装pure-ftpd:yum install -y pure-ftpd

编辑配置文件:vim /etc/pure-ftpd/pure-ftpd.conf,找到pureftpd.pdb这行,把行首的#删除,保存退出即可。systemctl stop vsftpd,关闭vsftpd,释放21端口。systemctl start pure-ftpd,开启pure-ftpd服务。

测试前准备:

mkdir /data/ftp  #创建共享目录
useradd -u 1010 pure-ftp #创建系统用户
chown -R pure-ftp:pure-ftp /data/ftp #更改共享目录(即虚拟用户的家目录)
pure-pw useradd ftp_usera -u pure-ftp  -d /data/ftp #创建虚拟用户ftp_usera,-u指定映射的系统用户,-d指定家目录。执行此命令后按要求设置密码
pure-pw mkdb #生成密码文件。此外常用命令有:pure-pw list/userdel/usermod/passwd,与系统用户管理类似。

然后就可以用lftp或filezilla测试了。

你可能感兴趣的:(FTP安装与配置)