FTP介绍、使用vsftpd搭建ftp、使用pure-ftpd搭建ftp服务

FTP介绍

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

使用vsftpd搭建ftp服务

1.安装及建立账号
[[email protected] ~]# yum install -y vsftpd
[[email protected] ~]# useradd -s /sbin/nologin virftp
//创建一个普通用户,为了以这个用户的身份来传文件,-s是用来指定shell,/sbin/nologin是使这个用户不能登录,保证安全

[[email protected] ~]# vim /etc/vsftpd/vsftpd_login
//内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行

testuser1
aminglinux

[[email protected] ~]# chmod 600 /etc/vsftpd/vsftpd_login
//更改文件权限,提升安全级别

[[email protected] ~]# cat /etc/vsftpd/vsftpd_login
testuser1
aminglinux
[[email protected] ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
//vsfpd使用的密码文件不是明文的,需要生成对应的库文件

[[email protected] ~]# ls -l /etc/vsftpd/
总用量 36
-rw------- 1 root root   125 8月   3 14:10 ftpusers
-rw------- 1 root root   361 8月   3 14:10 user_list
-rw------- 1 root root  5030 8月   3 14:10 vsftpd.conf
-rwxr--r-- 1 root root   338 8月   3 14:10 vsftpd_conf_migrate.sh
-rw------- 1 root root    21 1月  16 17:12 vsftpd_login
-rw-r--r-- 1 root root 12288 1月  16 17:16 vsftpd_login.db
[[email protected] ~]# mkdir /etc/vsftpd/vsftpd_user_conf
//建立虚拟账号相关的目录以及配置文件

[[email protected] ~]# cd /etc/vsftpd/vsftpd_user_conf/
2.创建和用户对应的配置文件
[[email protected] vsftpd_user_conf]# vim testuser1
//定义虚拟用户的配置文件 

增加如下配置内容:

local_root=/home/virftp/testuser1  //定义test1的家目录
anonymous_enable=NO //用来限制是否允许匿名账号登录(no表示不允许)
write_enable=YES   //表示可写
local_umask=022    //umask值
anon_upload_enable=NO   //表示是否允许匿名账号上传文件
anon_mkdir_write_enable=NO  //表示是否允许匿名账号可写
idle_session_timeout=600   //上传完文件后超时多久断开连接
data_connection_timeout=120  //数据传输超时时间
max_clients=10

[[email protected] vsftpd_user_conf]# mkdir /home/virftp/testuser1
[[email protected] vsftpd_user_conf]# touch /home/virftp/testuser1/aming.txt
[[email protected] vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
[[email protected] vsftpd_user_conf]# 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

//Centos7为64系统,所有库文件路径为/lib64/security/pam_userdb.so(32位系统的库文件路径为/lib/security/pam_userdb.so)

配置如下图:

3.修改全局配置文件/etc/vsftpd/vsftpd.conf
[[email protected] vsftpd_user_conf]# 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
[[email protected] vsftpd_user_conf]# systemctl start vsftpd
//启动vsftpd服务
[[email protected] vsftpd_user_conf]# ps aux |grep vsftpd
root      18027  0.0  0.0  53216   576 ?        Ss   19:20   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      18029  0.0  0.0 112680   976 pts/1    R+   19:21   0:00 grep --color=auto vsftpd
[[email protected] vsftpd_user_conf]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      13969/rpc.mountd
tcp        0      0 0.0.0.0:33684           0.0.0.0:*               LISTEN      13963/rpc.statd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      852/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1505/master
tcp        0      0 0.0.0.0:34238           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -
tcp6       0      0 :::3306                 :::*                    LISTEN      3373/mysqld
tcp6       0      0 :::43663                :::*                    LISTEN      -
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::20048                :::*                    LISTEN      13969/rpc.mountd
tcp6       0      0 :::21                   :::*                    LISTEN      18027/vsftpd
tcp6       0      0 :::22                   :::*                    LISTEN      852/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1505/master
tcp6       0      0 :::44448                :::*                    LISTEN      13963/rpc.statd
tcp6       0      0 :::2049                 :::*                    LISTEN      -            

配置如下图:


4.测试ftp
[[email protected] vsftpd_user_conf]# yum install -y lftp
//安装lftp客户端软件

[[email protected] vsftpd_user_conf]# lftp [email protected]
口令:
lftp [email protected]:~> ls
ls: 登录失败: 530 Login incorrect.
lftp [email protected]:~> exit
[[email protected] vsftpd_user_conf]# lftp [email protected]
口令:
lftp [email protected]:~> ls
-rw-r--r--    1 1004     1004            0 Jan 16 11:03 aming.txt
lftp [email protected]:/> ?
    !<shell-command>                     (commands)                           alias [<name> [<value>]]             attach [PID]
    bookmark [SUBCMD]                    cache [SUBCMD]                       cat [-b] <files>                     cd <rdir>
    chmod [OPTS] mode file...            close [-a]                           [re]cls [opts] [path/][pattern]
    debug [<level>|off] [-o <file>]      du [options] <dirs>                  exit [<code>|bg]
    get [OPTS] <rfile> [-o <lfile>]      glob [OPTS] <cmd> <args>             help [<cmd>]
    history -w file|-r file|-c|-l [cnt]  jobs [-v] [<job_no...>]              kill all|<job_no>                    lcd <ldir>
    lftp [OPTS] <site>                   ln [-s] <file1> <file2>              ls [<args>]
    mget [OPTS] <files>                  mirror [OPTS] [remote [local]]       mkdir [-p] <dirs>
    module name [args]                   more <files>                         mput [OPTS] <files>                  mrm <files>
    mv <file1> <file2>                   [re]nlist [<args>]                   open [OPTS] <site>
    pget [OPTS] <rfile> [-o <lfile>]     put [OPTS] <lfile> [-o <rfile>]      pwd [-p]
    queue [OPTS] [<cmd>]                 quote <cmd>                          repeat [OPTS] [delay] [command]
    rm [-r] [-f] <files>                 rmdir [-f] <dirs>                    scache [<session_no>]
    set [OPT] [<var> [<val>]]            site <site-cmd>                      source <file>
    torrent [-O <dir>] <file|URL>...     user <user|URL> [<pass>]             wait [<jobno>]                       zcat <files>
    zmore <files>
lftp [email protected]:/> get aming.txt
lftp [email protected]:/> quit
[[email protected] vsftpd_user_conf]# ls
aming.txt  testuser1
[[email protected] vsftpd_user_conf]# ls -lt |head
总用量 4
-rw-r--r-- 1 root root   0 1月  16 19:03 aming.txt
-rw-r--r-- 1 root root 204 1月  16 18:57 testuser1
windows下安装filezilla客户端软件,测试结果如下图:

使用pure-ftpd搭建ftp服务

1.安装pure-ftpd
//默认的Centos yum源并不包含pure-ftpd,需要安装epel扩展源

[[email protected] ~]# yum install -y epel-release
[[email protected] ~]# yum install -y pure-ftpd
2.配置pure-ftpd

说明:

在启动pure-ftpd之前,需要先修改配置文件/etc/pure-ftpd/pure-ftpd.conf。其中需要把PureDB /etc/pure-ftpd/pureftpd.pdb前面的#删除,然后启动pure-ftpd,启动之前需要关闭vsftpd,因为有端口冲突。

[[email protected] ~]# vim /etc/pure-ftpd/pure-ftpd.conf
//找到pureftpd.pdb这行,把行首的#删除

[[email protected] ~]# systemctl stop vsftpd
[[email protected] ~]# systemctl start pure-ftpd
[[email protected] ~]# ps aux |grep pure-ftpd
root      20478  0.0  0.1 202424  1204 ?        Ss   11:31   0:00 pure-ftpd (SERVER)
root      20480  0.0  0.0 112680   972 pts/1    R+   11:31   0:00 grep --color=auto pure-ftpd
[[email protected] ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      13969/rpc.mountd
tcp        0      0 0.0.0.0:33684           0.0.0.0:*               LISTEN      13963/rpc.statd
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      20478/pure-ftpd (SE
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      852/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1505/master
tcp        0      0 0.0.0.0:34238           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -
tcp6       0      0 :::3306                 :::*                    LISTEN      3373/mysqld
tcp6       0      0 :::43663                :::*                    LISTEN      -
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::20048                :::*                    LISTEN      13969/rpc.mountd
tcp6       0      0 :::21                   :::*                    LISTEN      20478/pure-ftpd (SE
tcp6       0      0 :::22                   :::*                    LISTEN      852/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1505/master
tcp6       0      0 :::44448                :::*                    LISTEN      13963/rpc.statd
tcp6       0      0 :::2049                 :::*                    LISTEN      -             
3.建立账号

为了安全,pure-ftpd使用的账号并非linux的系统账号,而是虚拟账号。

[[email protected] ~]# mkdir /data/ftp
[[email protected] ~]# useradd -u 1010 pure-ftp
[[email protected] ~]# chown -R pure-ftp:pure-ftp /data/ftp
[[email protected] ~]# pure-pw useradd ftp_usera -u pure-ftp  -d /data/ftp
Password:
Enter it again:
//创建虚拟账户,-u是将虚拟用户ftp_usera与系统用户pure-ftp关联在一起,也就是说,使用ftp_usera账号登录ftp后,会以pure-ftp的身份来读取和下载文件,-d是指定ftp_usera账户的家目录,这样可以使用户ftp_usera只能访问其家目录/data/ftp/。

[[email protected] ~]# pure-pw mkdb
//创建用户信息数据库文件,这一步很关键。
[[email protected] ~]# pure-pw list  //列出当前账号
ftp_usera           /data/ftp/./
[[email protected] ~]# pure-pw userdel ftp_usera  //删除账号

[[email protected] ~]# touch /data/ftp/123.txt
[[email protected] ~]# lftp [email protected]  //测试连接
口令:
lftp [email protected]:~> ls
drwxr-xr-x    2 1010       pure-ftp           21 Jan 17 11:40 .
drwxr-xr-x    2 1010       pure-ftp           21 Jan 17 11:40 ..
-rw-r--r--    1 0          0                   0 Jan 17 11:40 123.txt

原文地址:http://blog.51cto.com/taoxie/2062012

时间: 2024-08-29 20:04:35

FTP介绍、使用vsftpd搭建ftp、使用pure-ftpd搭建ftp服务的相关文章

exportfs命令 NFS客户端问题 FTP介绍 使用vsftpd搭建ftp

一.exportfs命令NFS服务端的nfs服务不能随意重启,如果需要重启服务端的nfs服务,需要先把挂载服务端共享目录的所有客户端的挂载先全部卸载客户端执行:#umount /mnt/ //提示如下umount.nfs4: /mnt: device is busy解决:第一种办法:退出/mnt目录[[email protected] mnt]# cd[[email protected] ~]# umount /mnt/第二种方法:#umount -l /mnt/ 先卸载掉客户端的挂载,然后在重

14.4 exportfs命令;14.5 NFS客户端问题;15.1 FTP介绍;15.2/15.3 使用vsftpd搭建ftp

14.4 exportfs命令 重启nfs服务需要把所有挂载点卸载掉,如果一台机器有多个挂载点,不能一一去卸载挂载点,用exportfs -arv命令: 1. 编辑exports配置文件,添加一条新的共享目录: [[email protected] ~]# vim /etc/exports {no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大} 添加内容(hao1服务端的共享目录,hao2客户端的ip): /tmp 192.168.211.129(rw,sy

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

- 14.4 exportfs命令 - 14.5 NFS客户端问题 - 15.1 FTP介绍 - 15.2/15.3 使用vsftpd搭建ftp # 14.4 exportfs命令 - exportfs命令 和NFS一起安装的 例: - 配置了一个共享目录,之后需要新增.更改.机器或者目录:首先需要更改配置,重启NFS服务,但是远程客户端正在使用NFS服务,重启服务端的NFS服务就会对远程的客户端有影响,比如,造成服务异常,进程异常,有很大可能导致系统坏掉 - 到了这种时候,只能去一台一台机器的

exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp

exportfs命令 加入我们之前已经配置了nfs的共享目录,之后要增加更改或增加共享目录,我们需要更改配置文件,重启,如果远程客户端正在使用,此时就会一直挂载着,这时候就有问题 使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用exportfs即可 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在服务端上 #vim /etc/exports //增加一行 /tmp/ 192.168.37.0/2

exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp服务

exportfs命令 exportfs命令用来管理当前NFS共享的文件系统列表. 常用选项 -a:全部卸载或全部挂载 -r:重新挂载 -u:卸载某个目录 -v:显示共享目录 常用组合:exportfs -arv 服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效. 注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统. 以上操作都在服务端进行! 测试 在服务端的/etc/exports配置文件中,增加一行.把/tmp/目录单独共享给1

FTP:介绍、vsftpd搭建ftp、xshell使用xftp传输文件、pure-ftpd搭ftp

             FTP介绍 (rz和sz: 传文件    rz:window-->linux    sz:linux-->window  文件超过4GB则不管用)                       使用vsftpd搭建ftp服务 1.安装:yum install -y vsftpd 2.创建用户: (vsftpd默认支持是可以使用系统账号登录的,但是这样不安全,因为我们系统的用户是可以登录,然后去操作我们的操作系统的.所以使用虚拟账号体系,创建虚拟用户,虚拟用户是不能登陆到

8.27 exports命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp服务

1.exports命令 由于开启NFS服务时,会有其他系统访问共享的目录,所以当服务端重启NFS服务时,会导致其他系统NFS服务出现异常,因此NFS服务不能随便重启,如果确实需要重启服务,需要先将客户端挂载的NFS目录卸载,执行如下命令: umount -l /mnt 卸载完成后,再重启NFS服务 如果不想卸载共享目录,则可以使用exports命令,exports常用的选项如下: -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在服务端上 需要重启服

14.4exportfs命令14.5NFS客户端问题15.1FTP介绍 使用vsftpd搭建ftp

14.4 exportfs命令在服务器上运行了exportfs -arv然后在客户端showmount -e 192.168.133.130查看是否连接14.5 NFS客户端问题在centos6就会有以上的情况mount -t nfs -o nfsers=3 192.168.137.129:/tmp/ /mnt/15.1 FTP介绍将这个文件的字符转换成电脑识别的二进制字符,转换后下面的目录多了一个vsftpd_login.db文件,它是无法用cat查看的vim testuser1vim /et

exportfs命令,NFS客户端问题,FTP介绍,使用vsftp搭建ftp

笔记内容: 14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp 笔记日期: 14.4 exportfs命令 这个exportfs命令会在安装nfs-util包时一起安装,当服务端需要停止NFS服务或者进行一些变动并重启时,其他挂载了共享目录的机器需要将这个挂载的目录卸载掉,不然的话服务进程就会出问题,单台机器我们可以使用unmnt命令去卸载,但是如果有几十台机器的话总不能一个个去unmnt吧,所以这个exportfs命