[转帖]FTP服务搭建与配置

FTP服务搭建与配置

https://blog.csdn.net/zhengyshan/article/details/81058194
原作者写的很好..  比我写的好一百倍..

原创zhengyshan 发布于2018-07-15 22:52:06 阅读数 69 收藏
展开

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

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

小公司用的多,大企业不用FTP,因为不安全。

使用vsftpd搭建ftp服务
centos系统上自带vsftpd

安装vsftpd

[[email protected] ~]# yum install -y vsftpd
创建普通用户,目的为了让虚拟用户来映射

[[email protected] ~]# useradd -s /sbin/nologin virftp
虚拟用户的密码文件配置(可以自定义).

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

[[email protected] ~]# vim /etc/vsftpd/vsftpd_login
testuser1
zyshanlinux
设置好密码,接着要配置密码文件的权限

[[email protected] ~]# chmod 600 /etc/vsftpd/vsftpd_login
接着需要把密码文件的文本文件转换为计算机识别的二进制文件

[[email protected] ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[[email protected] ~]# ls -l /etc/vsftpd
total 36
-rw-------. 1 root root   125 Aug 3 2017 ftpusers
-rw-------. 1 root root   361 Aug 3 2017 user_list
-rw-------. 1 root root 5030 Aug 3 2017 vsftpd.conf
-rwxr--r--. 1 root root   338 Aug 3 2017 vsftpd_conf_migrate.sh
-rw------- 1 root root   22 Jul 16 09:25 vsftpd_login
-rw-r--r-- 1 root root 12288 Jul 16 09:29 vsftpd_login.db ##生成的二进制文件,db结尾
创建虚拟用户的配置文件所在的目录(自定义)

[[email protected] ~]# mkdir /etc/vsftpd/vsftpd_user_conf
跳转到该目录

[[email protected] ~]# cd !$
cd /etc/vsftpd/vsftpd_user_conf
创建虚拟用户的配置文件,创建的文件名字需要和用户名一致。

[[email protected] 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 ##连接超时600秒
data_connection_timeout=120 ##数据传输超时时间120秒
max_clients=10 ##最大的客户端数目10
创建虚拟用户的家目录,新建测试文件,对虚拟用户权限做修改

[[email protected] vsftpd_user_conf]# mkdir /home/virftp/testuser1
[[email protected] vsftpd_user_conf]# touch /home/virftp/testuser1/zyshan.txt
[[email protected] vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
重要:

配置认证文件

[[email protected] vsftpd_user_conf]# vim /etc/pam.d/vsftpd
##配置内容
[[email protected] vsftpd_user_conf]# cat !$
cat /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
?
session   optional     pam_keyinit.so   force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include     password-auth
account   include     password-auth
session   required     pam_loginuid.so
session   include     password-auth
?

编辑vsftpd的主配置

[[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
启动vsftpd服务

[[email protected] vsftpd_user_conf]# systemctl start vsftpd
[[email protected] vsftpd_user_conf]# ps aux |grep vsftp
root     11979 0.0 0.0 53256   576 ?       Ss   10:17   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root     12413 0.0 0.0 112704   956 pts/0   R+   10:17   0:00 grep --color=auto vsftp
##可以看看监听的端口,是21
[[email protected] vsftpd_user_conf]# netstat -lnpt
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     570/rpcbind        
tcp       0     0 0.0.0.0:80             0.0.0.0:*               LISTEN     1295/nginx: master  
tcp       0     0 0.0.0.0:20048           0.0.0.0:*               LISTEN     1116/rpc.mountd    
tcp       0     0 0.0.0.0:22             0.0.0.0:*               LISTEN     1101/sshd          
tcp       0     0 0.0.0.0:44888           0.0.0.0:*               LISTEN     1118/rpc.statd      
tcp       0     0 127.0.0.1:25           0.0.0.0:*               LISTEN     1373/master        
tcp       0     0 0.0.0.0:443             0.0.0.0:*               LISTEN     1295/nginx: master  
tcp       0     0 0.0.0.0:2049           0.0.0.0:*               LISTEN     -                  
tcp       0     0 0.0.0.0:42792           0.0.0.0:*               LISTEN     -                  
tcp6       0     0 :::111                 :::*                   LISTEN     570/rpcbind        
tcp6       0     0 :::20048               :::*                   LISTEN     1116/rpc.mountd    
tcp6       0     0 :::21                   :::*                   LISTEN     11979/vsftpd        
tcp6       0     0 :::22                   :::*                   LISTEN     1101/sshd          
tcp6       0     0 ::1:25                 :::*                   LISTEN     1373/master        
tcp6       0     0 :::56347               :::*                   LISTEN     1118/rpc.statd      
tcp6       0     0 :::36797               :::*                   LISTEN     -                  
tcp6       0     0 :::2049                 :::*                   LISTEN     -                  
tcp6       0     0 :::3306                 :::*                   LISTEN     1491/mysqld
23端口是telnet监听的,但现在几乎没人用了。

在Linux上测试:

安装lftp测试工具

[[email protected] ~]# yum install lftp
测试操作~

[[email protected] ~]# lftp [email protected]
Password:
lftp [email protected]:~> ls    
-rw-r--r--   1 1018     1019           0 Jul 16 01:42 zyshan.txt
lftp [email protected]:/>
可以查看该状态下能够运行的命令

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>
获取Ftp上的文件,下载到当前目录的。命令quit退出

lftp [email protected]:/> get zyshan.txt
lftp [email protected]:/> quit            
[[email protected] ~]# ls -lt |head
total 20
-rw-r--r-- 1 root root   0 Jul 16 09:42 zyshan.txt ##新下载的测试文件
-rw-r--r--. 1 root root   0 Jun 11 09:16 zyshanlinux-01.ssh:
-rw-r--r--. 1 root root   0 Jun 11 09:16 192.168.106.1.wins:
-rw-r--r--. 1 root root   0 Jun 11 09:16 239.255.255.250.ssdp:
-rw-r--r--. 1 root root   12 Jun 6 22:19 1.txt
-rw-r--r--. 1 root root   53 Jun 6 22:19 a.txt
drwxr-xr-x. 2 root root   22 Jun 3 20:13 awk
drwxr-xr-x. 2 root root   42 Jun 3 17:45 sed
drwxr-xr-x. 2 root root   35 Jun 3 15:59 grep
若不正常查看日志/var/log/messages和/var/log/secure

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

即使关闭vsftpd服务,Filezilla也可以访问sftp://[email protected]

使用pure-ftpd搭建ftp服务
pure-ftpd比vsftpd更加轻量,更加简单。

更新源,把epel-release换回来

[[email protected] ~]# yum install -y epel-release
安装pure-ftpd

[[email protected] ~]# yum install -y pure-ftpd
编辑配置文件,找到pureftpd.pdb这行,把行首的#删除

[[email protected] ~]# vim /etc/pure-ftpd/pure-ftpd.conf
PureDB                       /etc/pure-ftpd/pureftpd.pdb ##指定密码配置文件

由于pure-ftpd和vsftpd都是监听21端口,所以要运行pure-ftpd,就必须停掉vsftpd,否则会出错。

[[email protected] ~]# systemctl stop vsftpd
[[email protected] ~]# systemctl start pure-ftpd
[[email protected] ~]# ps aux |grep ftp
root     6997 0.0 0.0 202516 1200 ?       Ss   11:06   0:00 pure-ftpd (SERVER)
root     7673 0.0 0.0 112704   960 pts/0   S+   11:06   0:00 grep --color=auto ftp
[[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     570/rpcbind        
tcp       0     0 0.0.0.0:80             0.0.0.0:*               LISTEN     1295/nginx: master  
tcp       0     0 0.0.0.0:20048           0.0.0.0:*               LISTEN     1116/rpc.mountd    
tcp       0     0 0.0.0.0:21             0.0.0.0:*               LISTEN     6997/pure-ftpd (SER
tcp       0     0 0.0.0.0:22             0.0.0.0:*               LISTEN     1101/sshd          
tcp       0     0 0.0.0.0:44888           0.0.0.0:*               LISTEN     1118/rpc.statd      
tcp       0     0 127.0.0.1:25           0.0.0.0:*               LISTEN     1373/master        
tcp       0     0 0.0.0.0:443             0.0.0.0:*               LISTEN     1295/nginx: master  
tcp       0     0 0.0.0.0:2049           0.0.0.0:*               LISTEN     -                  
tcp       0     0 0.0.0.0:42792           0.0.0.0:*               LISTEN     -                  
tcp6       0     0 :::111                 :::*                   LISTEN     570/rpcbind        
tcp6       0     0 :::20048               :::*                   LISTEN     1116/rpc.mountd    
tcp6       0     0 :::21                   :::*                   LISTEN     6997/pure-ftpd (SER
tcp6       0     0 :::22                   :::*                   LISTEN     1101/sshd          
tcp6       0     0 ::1:25                 :::*                   LISTEN     1373/master        
tcp6       0     0 :::56347               :::*                   LISTEN     1118/rpc.statd      
tcp6       0     0 :::36797               :::*                   LISTEN     -                  
tcp6       0     0 :::2049                 :::*                   LISTEN     -                  
tcp6       0     0 :::3306                 :::*                   LISTEN     1491/mysqld
创建测试目录,是给pure-ftpd用户使用

[[email protected] ~]# mkdir /data/ftp
创建普通用户,1010不唯一就是已存在了,那就创建1020

[[email protected] ~]# useradd -u 1010 pure-ftp
useradd: UID 1010 is not unique
[[email protected] ~]# useradd -u 1020 pure-ftp
更改属主属组

[[email protected] ~]# chown -R pure-ftp:pure-ftp /data/ftp
创建用户,指定用户名ftp_usera,指定系统用户是谁(映射)-u pure-ftp,虚拟用户的家目录指定-d /data/ftp,输入密码2遍。

[[email protected] ~]# pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp
Password:
Enter it again:
[[email protected] ~]#
把密码生成系统识别的文件(二进制),不执行这步是无法登录的。

[[email protected] ~]# pure-pw mkdb
ftp_usera支持哪些用法

[[email protected] ~]# pure-pw list/userdel/usermod/passwd
或者
[[email protected] ~]# pure-pw --help
测试

[[email protected] ~]# pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp^C
[[email protected] ~]# touch /data/ftp/123.txt
[[email protected] ~]# lftp [email protected]
Password:
lftp [email protected]:~> ls    
drwxr-xr-x   2 1020       pure-ftp           21 Jul 16 11:23 .
drwxr-xr-x   2 1020       pure-ftp           21 Jul 16 11:23 ..
-rw-r--r--   1 0         0                   0 Jul 16 11:23 123.txt
lftp [email protected]:/>
可以更改一下属主属组,属主映射成uid,属组映射系统组的名字。

lftp [email protected]:/> quit
[[email protected] ~]# chown pure-ftp:pure-ftp /data/ftp/123.txt
[[email protected] ~]# lftp [email protected]
Password:
lftp [email protected]:~> ls
drwxr-xr-x   2 1020       pure-ftp           21 Jul 16 11:23 .
drwxr-xr-x   2 1020       pure-ftp           21 Jul 16 11:23 ..
-rw-r--r--   1 1020       pure-ftp           0 Jul 16 11:23 123.txt
?

扩展 :

vsftp使用mysql存放虚拟用户并验证 http://www.aminglinux.com/bbs/thread-342-1-1.html

ftp的主动和被动模式 http://www.aminglinux.com/bbs/thread-961-1-1.html
————————————————
版权声明:本文为CSDN博主「zhengyshan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhengyshan/article/details/81058194

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/12089462.html

时间: 2024-11-02 20:55:31

[转帖]FTP服务搭建与配置的相关文章

FTP服务搭建与配置

14.4 exportfs命令 exportfs命令用来管理当前NFS共享的文件系统列表. Options:-a:全部卸载或全部挂载-r:重新挂载-u:卸载某个目录-v:显示共享目录 常用组合: exportfs -arv服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效. 注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统. 以上操作均在服务端进行!!! 14.5 NFS客户端问题 针对NFS4版本在centos6中应用存在如下问

[转帖]NFS服务搭建与配置

NFS服务搭建与配置 https://blog.csdn.net/zhengyshan/article/details/81058164 自己搞过这一块 感觉这个文章 比自己写的要好. 原创zhengyshan 发布于2018-07-15 22:49:28 阅读数 4226 收藏展开 NFS介绍NFS是Network File System的缩写 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本 NFS数据传输基

第十五章 FTP服务搭建与配置

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

FTP 服务搭建

FTP 服务搭建 最近一直偷懒,没有上传博客,最近工作中正好要搭建FTP,来写个博客吧.同志还需努力啊,天天犯懒以后只能去吃土了. 首先介绍一下我的实验环境:CentOS6.7,内核2.6 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [[email protected] ~]# uname -a Linux CentOS-6 2.6.32-573.el6.x86_64 #1 SMP Thu J

FTP服务器搭建与配置

FTP服务器搭建与配置 FTP介绍 使用vsftpd搭建ftp服务 xshell使用xftp传输文件 使用pure-ftpd搭建ftp服务 FTP介绍 FTP是File Transfer Protocol(文件传输协议,简称文件协议)的简称,用于在Internet上控制文件的双向传输. FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序) 并查看远程计算机中的文件,然后把文件从远程计算机复制到要地计算机,或是本地计算机的文件传送到远程计算机. 小公司用的多,大企业不

syslog-ng日志收集分析服务搭建及配置

syslog-ng日志收集分析服务搭建及配置:1.网上下载eventlog_0.2.12.tar.gz.libol-0.3.18.tar.gz.syslog-ng_3.3.5.tar.gz三个软件: 2.解压及安装服务端: [[email protected] tools]# tar xf eventlog_0.2.12.tar.gz [[email protected] tools]# cd eventlog-0.2.12/ [[email protected] eventlog-0.2.12

【阿里云】windows 2012R2 ftp服务搭建图文全过程及主被模式理解

题外话:相信拿到阿里云服务器,首先要配置的就是ftp服务(本地的项目要上传到服务器上线啊),对于一个刚入门小白来说,官方给的文档根本不足以完整的跑起来ftp服务. 正体: 一:服务器上配置ftp服务 ①服务器管理器上安装ftp服务 ②进入iis配置ftp服务站点 至此,ftp的基本安装完成了,但在阿里云上根本跑不起来!! 二.端口的配置 ①有一点了解的可能会知道,开放阿里云安全组的20/21端口,当然要开启,但你开启后使用FileZilla依然连接不上! 出现下列报错 状态: 已登录状态: 读取

ftp服务搭建配置管理

ftp[file transfer protocol这是档案传输的通讯协议,也是一般最常用来传送档案的方式这是档案传输的通讯协议,也是一般最常用来传送档案的方式]是/tcp/ip的一种具体的应用,工作在OSI上的第七层,TCP/IP模型的第四层,是一种面向连接的协议,工作模式分为主动模式和被动模式 vsftpd是UNIX类操作系统上运行的服务器名称,它的名字代表"very secure FTP daemon",安全性是其设计与开发的一个重要目标,支持很多其他的FTP 服务器不支持的特征

CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

概述 最近在搞Oracle在Linux系统下集群,针对Linux系统,笔人也是一片空白.Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建.FTP服务器需要安装vsftp服务端软件.我们知道,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问ftp,但有时我们只想提供ftp服务,而避免用户用ftp的帐号去登录linux,采用一般的方式只能是限制该用户的访问权限,但还是避免不了用户登录进linux系统,所以比