zoukankan      html  css  js  c++  java
  • Linux FTP 服务器配置

    Ø  简介

    本文主要介绍 Linux FTP 服务器配置,包括如下内容:

    1.  FTP 介绍

    2.  安装及配置

    3.  用户访问

    4.  匿名访问

    5.  连接ftp 的常用命令

    6.  nmap 端口扫描工具

     

    1.  FTP 介绍

    FTPFile Transfer Protocol)文件传输协议,是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式,FTP 属于网络传输协议的应用层。

     

    通俗的将就是,如果一台服务器上如果启用了 ftp 协议,任意的一台电脑就可以与这台服务器建立连接。只要权限足够,就可以从这个服务器上下载文件和上传文件。

     

    ftp 有两个端口号,一个端口号是21,用于传输控制流;另一个端口号是20,用于传输数据流。也就是21号端口用于建立连接,20号端口用于传输数据。

     

    n  常用的FTP 软件

    1)  Wu-FTP

    古老、配置比较复杂,安全性不是特别理想。UNIX 系统自带的 FTP 软件。

     

    2)  Proftp(Professional FTP daemon)

    功能强大。

     

    Proftpd 简介:

    全称Professional FTP daemon,是针对Wu-FTP 的弱项而开发的,软件在经过多年的发展之后完善了很多功能,ProFTP 已经成为继Wu-FTP 之后最为流行的FTP 服务器软件,越来越多的站点选用它构筑安全高效的FTP 站点。Proftpd 软件和vsftpd 一样是一个开放源代码的ftp 服务器软件,但是可配置项比vsftpd 要多,是目前比较流行的ftp 软件,Proftpd 的配置和apache 的配置相似,因此该软件也十分容易配置和管理。

     

    3)  vsftp(推荐使用)

    安全、高速、稳定。具有以下特点:

    1.  配置简洁、使用方便,使用加密传送安全性较高。

    2.  绝大多数Linux 提供的官方下载,都是有vsftp 来提供的。

     

    vsftp 简介:

    全称Very secure FTP daemon,比ProFTPD 具有更高的安全性。vsftpd 使用一般身份启动服务,降低了FTP 服务的PID 权限,使该服务即使被入侵也无法得到有效的系统管理权限。同时vsftpd 利用chroot 软件来改变登录者的根目录,使登陆者只能在这个目录中活动,限制了登录者的执行权限。vsftpd 通过配置vsftpd.conf 文件来完成部署,设定简单,登录者仅分为anonymous real user 两种。可以使用standalone super daemon 的方式启动。vsftpd 无法控制每个目录的流量、不能控制上传和下载的比例、不能针对不同的登陆者进行不同的权限设定。

     

    2.  安装及配置

    说明:以下标红的文本为安装vsftp 所需的步骤。

    更多配置参考:https://www.cnblogs.com/wenwei-blog/p/8890436.html

     

    n  首先检查系统是否安装了 vsftp

    rpm -q vsftpd

    vsftpd-3.0.2-27.el7.x86_64

     

    如果没有安装,直接使用yum 安装

    yum -y install vsftpd

     

    安装完成后,启动 vsftpd 服务

    systemctl start vsftpd

    systemctl enable vsftpd     #开机自启动

    或者 service vsftpd restart

    启动后默认支持用户访问宿主目录,及匿名用户访问 /var/fpt目录。

     

    n  vsftp 相关配置

    vi /etc/vsftpd/vsftpd.conf

    1.  日志选项(建议开启)

    xferlog_enable=YES         #是否启用日志功能,默认开启

    xferlog_std_format=YES     #日志文件记录的格式(标准格式),默认开启

    xferlog_file=/var/log/xferlog   #如果启用日志,需要将日志文件存放的位置注释取消掉,默认注释

    提示:Linux 系统中,建议都将日志存放在 /var/log 目录下。

     

    2.  设置非标准端口

    listen_port=18021          #默认连接断开为21,数据传输端口为20

    添加至 listen=NO 下面;

    1024以上的端口,不与其他知名端口冲突;

    使用非标准断开时,需要显示指定端口号,比如:ftp 192.168.1.150 18021

    设置为非标准端口,主要是为了安全性考虑,可以防止如 nmap 这种端口扫描器扫描。

     

    3.  其他选项

    ftpd_banner=Welcome to blah Abeam FTP service.  #设置登录欢迎信息

    idle_session_timeout=600    #用户会话空闲10分钟后被断开

    max_clients=50             #服务器总的并发连接数为50

    max_per_ip=3               #每个客户机的最大连接数为3

     

    3.  用户访问

    1)  创建ftp 用户

    groupadd ftpg

    useradd -g ftpg -d /opt/res ftpuser

    echo "ftpuser" | passwd --stdin ftpuser

     

    2)  防火墙开发相应端口

    systemctl start firewalld

    firewall-cmd --zone=public --list-ports --permanent     #查看开放端口

    firewall-cmd --zone=public --add-port=18021/tcp --permanent

    # 被动式端口

    firewall-cmd --zone=public --add-port=30000-31000/tcp --permanent

    firewall-cmd --reload

     

    3)  设置 vsftpd.conf 配置文件

    vi /etc/vsftpd/vsftpd.conf

    必须设置以下3个选项:

    local_enable=YES           #默认YES

    write_enable=YES           #默认YESNO 禁止用户上传)

    local_umask=022            #本地用户创建目录或文件的掩码,默认022

    local_max_rate=200000      #设置用户最大传输速率为200KB/s(添加)

     

    若启用了 SELinux,允许用户上传文件到宿主目录,需要执行以下命令:

    getsebool -a | grep ftp     #查看状态

    setsebool -P tftp_home_dir on

    setsebool -P allow_ftpd_full_access on

    注意:否则用户也无法上传文件。

    关闭 SELinux,编辑 /etc/selinux/config

    SELINUX=enforcing 改为 disabled     #阿里云 ESC 默认为 disabled

     

    注意:阿里云 ESC 一定不要设置为enforcing,否则重启后无法连接。

    clip_image002

    后来,登录阿里云控制台远程连接,发送远程命令才得以解决!!!

    mv /etc/selinux/config /etc/selinux/config.bak

    sed 's/enforcing/disabled/g' /etc/selinux/config.bak >> /etc/selinux/config    #enforcing 替换为 disabled

     

     

    4)  用户访问控制(两种方式)

    限制指定的用户不可以访问,而其他用户可以访问,适合大多数可以访问:

    userlist_enable=YES                    #默认只有该选项

    userlist_deny=YES                      #是否为禁止模式

    userlist_file=/etc/vsftpd.user_list     #每个用户名占一行

     

    限制指定的用户可以访问,而其他用户不可以访问,适合大多数用户不可以访问:

    userlist_enable=YES

    userlist_deny=NO

    userlist_file=/etc/vsftpd.user_list

     

    5)  设置 chroot

    chroot 就是把ftp 用户宿主目录作为/根目录,使其用户无法切换到其他目录。

    设置所有用户执行chroot

    vi /etc/vsftpd/vsftpd.conf

    chroot_local_user=YES      #限制只能访问自身目录,默认注释

    allow_writeable_chroot=YES  #加入此项

     

    设置指定的用户不执行chroot

    chroot_local_user=YES      #启用chroot,默认注释

    chroot_list_enable=YES     #启用指定的用户执行chroot,默认注释

    chroot_list_file=/etc/vsftpd/chroot_list    #每个用户名占一行,默认注释

     

    6)  启用被动连接模式

    vi /etc/vsftpd/vsftpd.conf  #末尾添加以下选项

    #启用被动连接模式

    pasv_enable=YES

    pasv_min_port=30000

    pasv_max_port=31000

     

    4.  匿名访问

    n  设置 vsftpd.conf 配置文件

    vi /etc/vsftpd/vsftpd.conf

    anonymous_enable=NO         #是否允许匿名访问,默认为YES

    anon_max_rate=100000       #设置匿名用户最大传送速率为100KB/s(这个选项默认没有,需要添加,开启匿名下载时建议开启此限制)

     

    开启匿名用户上传功能

    #anon_upload_enable=YES

    #anon_mkdir_write_enable=YES

     

    1)  匿名 FTP 用户名:ftp anonymous,密码为空即可;

     

    2)  匿名用户访问的目录:为ftp 伪用户的宿主目录下:/var/fpt

    grep ftp /etc/passwd    #查看ftp 伪用户的宿主目录

    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

     

    3)  使用Windows DOS 命令测试连接 vsftp

    C:\Users\Abeam>ftp 192.168.1.150

    用户(192.168.1.150:(none)): ftp    #用户名输入ftp

    或者

    C:\Users\Abeam>ftp

    ftp> open 192.168.1.150

     

    # 如果连接不上,关闭防火墙或开放2021端口

    systemctl stop firewalld

     

    5.  连接ftp 的常用命令

    连接ftpftp FTP地址

    ftp>

    ls      #查看目录下的文件

    cd      #切换目录(FTP服务器)

    bin     #二进制传输(vsftp 不需要)

    lcd     #指定下载目录(本地),如果不指定默认下载到当前登录目录

    get     #下载单个文件

    mget    #下载多个文件

    put     #上传单个文件

    mput    #上传多个文件

    prompt  #关闭交互模式(如:提示某某文件是否需要下载?关闭后默认为下载)

    bye     #退出

    open    #连接 FTP 服务器

    user    #输入 FTP 服务器用户名和密码

    另外,ftp 命令也可以执行 Linux 的一些命令,如:pwd

     

    说明:其实也可以不用掌握这些命令,通常都使用 FTP 的客户端来实现上传和下载。但如果需要实现自动化的上传和下载,就需要了解这些命令了。

    clip_image004

     

    6.  nmap 端口扫描工具

    nmap 基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。

    1)  光盘安装nmap

    mount /dev/cdrom /mnt/cdrom/

    find /mnt/cdrom -name "nmap*"       #搜索软件包

    /mnt/cdrom/Packages/nmap-6.40-16.el7.x86_64.rpm        #命令行

    /mnt/cdrom/Packages/nmap-ncat-6.40-16.el7.x86_64.rpm    #图形工具

    rpm -ivh /mnt/cdrom/Packages/nmap-6.40-16.el7.x86_64.rpm    #安装

     

    2)  使用方法

    nmap 192.168.1.150             认扫描1 – 65535

    clip_image006

     

    nmap -p1-1024 192.168.1.150     #扫描指定端口范围

    clip_image008

  • 相关阅读:
    有赞移动Crash平台建设
    软件测试创新之路
    手把手教你用Python实现智能推荐算法
    接口测试--参数实现MD5加密签名规则
    重置一发LCT模板
    LOJ #2131. 「NOI2015」寿司晚宴
    LOJ #3119「CTS2019 | CTSC2019」随机立方体 (容斥)
    2019牛客暑期多校训练营(第九场)
    20190815模拟赛
    zhengrui集训笔记2
  • 原文地址:https://www.cnblogs.com/abeam/p/15730319.html
Copyright © 2011-2022 走看看