✏️
安全运维
  • 目录
  • 常用命令速查手册
    • LINUX 命令总结
  • Linux--CentOS
    • 实战案例
      • 进入CentOS 7紧急模式,恢复root密码
      • 创建一个让root都无法删除的文件
      • tar源码包管理及srpm源码包安装方法
      • 找出系统中使用CPU最多的进程
      • 使用screen执行备份命令
      • 扩展Swap分区
      • 解决磁盘有空间但创建不了文件及修复文件系统问题
      • 修复服务器文件系统
      • 自定义ssh服务的日志类型和存储位置
      • 日志切割及搭建远程日志收集服务器
      • 配置公司内网服务器每天定时自动开关机
    • 基础知识
      • Linux的目录结构
      • 系统时间管理
      • 关机、重启命令及7个运行级别
      • passwd、shadow 文件
    • 基础命令
      • 帮助命令
      • ping 命令
      • ls 命令
      • alias 命令
      • history 命令
      • Linux中的快捷键
      • Untitled
      • Untitled
    • 基础配置
      • 安装中文版man手册
      • 网卡配置
      • 关闭防火墙并设置开机不启动防火墙
      • 临时和永久关闭SELinux
      • 配置本地YUM源
    • 文件管理
      • touch 命令
      • VIM 命令
      • cp 命令
      • mv 命令
    • 文件查看
      • cat 命令
      • more 命令
      • less 命令
      • head 命令
      • tail 命令
      • sort 命令
    • 用户和用户组管理
    • 文件权限管理
      • 文件基本权限
      • 文件的特殊权限:SUID、SGID、STicky及文件扩展权限ACL
    • 程序包的管理与安装
      • Yum的使用
    • 文件的压缩和归档
    • 系统进程管理
      • uptime命令查看系统负载
      • top 命令动态管理进程
      • lsof 命令
      • pstree 命令
      • 进程前、后台切换及优先级管理
    • 重定向和文件的查找
      • 文件描述符
      • 重定向的含义及管道、tee命令的使用
      • 查找文件的常用命令及应用
      • 命令判断——3个特殊符号“;”“﹠﹠”“||”
    • 磁盘介绍及管理
      • 磁盘分区工具和挂载
    • 文件系统结构
      • 文件系统结构
      • 文件的硬链接和软链接
      • 使用ln命令创建文件的链接
    • RAID的原理与搭建
      • RAID常用类型搭建和使用,以及注意事项
    • LVM管理和SSM工具的使用
      • 创建LVM的基本步骤
      • SSM工具
    • Linux计划任务与日志的管理
      • 日志的种类和记录的方式
    • 文件共享服务
      • NFS 的安装与使用
      • Samba 的安装与使用
      • CentOS 7.6 安装和配置samba文件共享服务
      • FTP 的安装与使用
      • proftpd
  • 安全加固
    • Windows 安全加固
    • WebLogic 安全加固
    • Apache 安全加固
    • Tomcat 安全加固
    • MySql 安全加固
    • PHP 安全加固
    • SSH 安全加固
    • IIS 安全加固
  • 基线检查
    • DB2数据库基线检查策略
    • MySQL数据库基线检查策略
    • Oracle10g数据库基线检查策略
    • Sybase数据库基线检查策略
    • MSSQL 2008 基线检查策略
    • Jboss7 基线检查策略
    • Apache 基线检查策略
    • Tomcat 基线检查策略
    • 基线检查策略
  • ClamAV
  • iptables
由 GitBook 提供支持
在本页
  • FTP服务器
  • FTP服务概述
  • vsftp的安装与配置
  • FTP命令详解

这有帮助吗?

  1. Linux--CentOS
  2. 文件共享服务

FTP 的安装与使用

FTP服务器

FTP文件共享基于TCP/IP协议,目前绝大多数系统都会有支持FTP的工具存在。FTP是一种通用性比较强的网络文件共享方式。

FTP服务概述

FTP方便地解决了文件的传输问题,从而让人们可以方便地从计算机网络中获得资源。FTP已经成为计算机网络上文件共享的一个标准。FTP服务器中的文件按目录结构进行组织,用户通过网络与服务器建立连接。FTP是仅基于TCP的服务,不支持UDP。与众不同的是FTP使用两个端口,一个数据端口和一个命令端口,也可叫作控制端口。通常来说这两个端口是21(命令端口)和20(数据端口)。FTP的工作方式不同,数据端口也并不总是20,可由此分为主动FTP和被动FTP。

1.主动FTP

主动方式的FTP客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口21,然后客户端开始监听端口N+1,并发送FTP命令“portN+1”到FTP服务器。接着服务器会从自己的数据端口(20)连接到客户端指定的数据端口(N+1)。主动模式下,服务器端开启的是20和21端口,客户端开启的是1024以上的端口。

2.被动FTP

为了解决服务器发起到客户的连接的问题采取了被动方式,或叫作PASV,当客户端通知服务器处于被动模式时才启用。在被动方式FTP中,命令连接和数据连接都由客户端发起,当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第1个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连接它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器端口P的连接来传送数据,此时服务端的数据端口不再是20端口。此时服务端开启的是21命令端口和大于1024的数据连接端口,客户端开启的是大于1024的两个端口。

主动模式是从服务器端向客户端发起连接,被动模式是客户端向服务器端发起连接。两者的共同点是都使用21端口进行用户验证及管理,差别在于传送数据的方式不同。

vsftp的安装与配置

在Linux系统下,vsftp是一款应用比较广泛的FTP软件,其特点是小巧轻快,安全易用。目前在开源操作系统中常用的FTP软件除vsftp外,主要有proftpd、purefrpd和wu-ftpd等,各个FTP软件并无优劣之分,读者可选择熟悉的FTP软件。

1.安装vsftpd

安装此FTP软件可以采用rpm包或源码的方式,rpm包可以在系统安装盘中找到。

安装过程如下:

#使用yum安装
yum -y install vsftpd

#验证是否安装成功
rpm -qa vsftpd

2. vsftp配置文件

anonymous_enable=NO #是否允许匿名用户登录YES/NO
local_enable=YES #是否允许本地用户登录YES/NO
write_enable=YES #是否允许本地用户对FTP服务器文件具有写权限YES/NO
local_root=/home/wwwroot/ #为不同用户设置不同的ftp根目录
chroot_local_user=YES #锁定用户到各自目录为其根目录YES/NO
allow_writeable_chroot=YES #各用户是否可以上传下载YES/NO
user_config_dir=/etc/vsftpd/userconfig #用户配置目录,这就是我新建的那个文件夹
local_umask=022 #设置本地用户的文件掩码为缺省022,也可根据个人喜好将其设置为其他值
dirmessage_enable=YES # 是否激活目录欢迎信息功能YES/NO
xferlog_enable=YES #是否让系统自动维护上传和下载的日志文件默认情况该日志文件为/var/log/vsftpd.log,也可以通过下面的xferlog_file选项对其进行设定YES/NO
connect_from_port_20=YES #是否设定FTP服务器将启用FTP数据端口的连接请求YES/NO
xferlog_std_format=YES #是否以标准xferlog的格式书写传输日志文件YES/NO
ascii_upload_enable=YES #是否以ASCII方式上传数据YES/NO
ascii_download_enable=YES #是否以ASCII方式下载数据YES/NO
listen=YES #是否允许监听新的端口YES/NO
#listen_ipv6=YES #此项很重要,记得注释
pam_service_name=vsftpd #
userlist_enable=YES #设置是否阻扯user_list文件中的用户登录FTP服务器,默认为YES
tcp_wrappers=YES #是否使用tcp_wrappers作为主机访问控制方式
userlist_deny=NO #当userlist_enable为YES,userlist_deny为NO时,FTP服务器仅允许user_list中的用户访问
listen_port=6666 #监听一个新的端口6666
#修改ftp默认的21端口,数字随意,只要在1024-65535之内就行(1024以下是系统保留的,从1024-65535是用户使用的)

3. 匿名FTP设置

配置允许匿名用户访问并上传文件,配置文件路径一般为/etc/vsftpd.conf,如果是使用rpm包安装,配置文件位于/etc/vsftpd/vsftpd.conf

4. 实名FTP设置

除配置匿名FTP服务外,vsftp还可以配置实名FTP服务器,以便实现更精确的权限控制。实名需要的用户认证信息位于/etc/vsftpd/目录下,vsftpd.conf也位于此目录,用户启动时可以单独指定其他的配置文件,本示例FTP认证采用虚拟用户认证。

vsftp可以指定某些用户不能登录FTP服务器、支持SSL连接、限制用户上传速率等,更多配置可参考帮助文档。

FTP命令详解

FTP的命令行格式为:ftp -v -d -i -n -g [主机名],其中

  -v显示远程服务器的所有响应信息;

  -n限制ftp的自动登录,即不使用;

  .n etrc文件;

  -d使用调试方式;

  -g取消全局文件名。

  ftp使用的内部命令如下(中括号表示可选项):

  1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip.

  2.$ macro-ame[args]:执行宏定义macro-name.

  3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。

  4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。

  5.ascii:使用ascii类型传输方式。

  6.bell:每个命令执行完毕后计算机响铃一次。

  7.bin:使用二进制文件传输方式。

  8.bye:退出ftp会话过程。

  9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。

  10.cd remote-dir:进入远程主机目录。

  11.cdup:进入远程主机目录的父目录。

  12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。

  13.close:中断与远程服务器的ftp会话(与open对应)。

  14.cr:使用asscii方式传输文件时,将回车换行转换为回行。

  15.delete remote-file:删除远程主机文件。

  16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。

  17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。

  18.disconnection:同close。

  19.form format:将文件传输方式设置为format,缺省为file方式。

  20.get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。

  21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。

  22.hash:每传输1024字节,显示一个hash符号(#)。

  23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。

  24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。

  25.image:设置二进制传输方式(同binary)。

  26.lcd[dir]:将本地工作目录切换至dir。

  27.ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。

  28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。

  29.mdelete[remote-file]:删除远程主机文件。

  30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如:mdir *.o.*.zipoutfile

  31.mget remote-files:传输多个远程文件。

  32.mkdir dir-name:在远程主机中建一目录。

  33.mls remote-file local-file:同nlist,但可指定多个文件名。

  34.mode[modename]:将文件传输方式设置为modename,缺省为stream方式。

  35.modtime file-name:显示远程主机文件的最后修改时间。

  36.mput local-file:将多个文件传输至远程主机。

  37.newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。

  38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。

  39.nmap[inpattern outpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。

  40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。

  41.open host[port]:建立指定ftp服务器连接,可指定连接端口。

  42.passive:进入被动传输方式。

  43.prompt:设置多个文件传输时的交互提示。

  44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。

  45.put local-file[remote-file]:将本地文件local-file传送至远程主机。

  46.pwd:显示远程主机的当前工作目录。

  47.quit:同bye,退出ftp会话。

  48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.

  49.recv remote-file[local-file]:同get。

  50.reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。

  51.rhelp[cmd-name]:请求获得远程主机的帮助。

  52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。

  53.rename[from][to]:更改远程主机文件名。

  54.reset:清除回答队列。

  55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。

  56.rmdir dir-name:删除远程主机目录。

  57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀..1,.2等。

  58.send local-file[remote-file]:同put。

  59.sendport:设置PORT命令的使用。

  60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。

  61.size file-name:显示远程主机文件大小,如:site idle 7200。

  62.status:显示当前ftp状态。

  63.struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。

  64.sunique:将远程主机文件名存储设置为唯一(与runique对应)。

  65.system:显示远程主机的操作系统类型。

  66.tenex:将文件传输类型设置为TENEX机的所需的类型。

  67.tick:设置传输时的字节计数器。

  68.trace:设置包跟踪。

  69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。

  70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3。

  71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。

  72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.

  73.?[cmd]:同help。

上一页CentOS 7.6 安装和配置samba文件共享服务下一页proftpd

最后更新于3年前

这有帮助吗?