zoukankan      html  css  js  c++  java
  • CentOS7下ftp服务器搭建

    FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。

    FTP协议包括两个组成部分,

    其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,

    用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。

    在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。

    此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

    1.安装ftp服务

    在centos7系统上

    [root@lsx04-ftp ~]# yum install vsftpd -y
    [root@lsx04-ftp ~]# rpm -qa |grep vsftpd       //查询已安装的软件过滤出vsftpd的信息//

    得到:

    vsftpd-3.0.2-25.el7.x86_64

    安装成功

    2.开启VSFTPD

    开启服务

    [root@lsx04-ftp ~]# systemctl start vsftpd

    查询21端口

    [root@lsx04-ftp ~]# netstat -nultp | grep 21

    此时可以通过ip地址访问服务器(需要防火墙开放21端口,已经配置文件允许匿名访问)

    3.配置ftp权限

    [root@lsx04-ftp ~]# vi /etc/vsftpd/vsftpd.conf

    添加或修改成

    # 禁用匿名用户
    anonymous_enable=NO
    
    # 禁止切换根目录
    chroot_local_user=YES
    
    # 设置FTP主目录
    local_root=/data/ftp
    
    # 配置FTP被动模式的端口
    pasv_min_port=30000
    pasv_max_port=30000
    

    重启vsftpd服务

    4.创建FTP用户

    在centos添加用户ftpuser

    修改好密码后:

    [root@lsx04-ftp ~]# usermod -s /sbin/nologin ftpuser   //限制其登录

    为用户配主目录

    5.SElinux配置

    VSFTPD是一个FTP服务器程序,然后SELinux是CentOS的防火墙组件, vsftpd 默认被 SELinux 拦截

    解决方法有两种:

    方法1:

    降低SElinux安全级别

    vi /etc/sysconfig/selinux

    设置SELINUX=enforcing改为SELINUX=permissive

    重启vsftpd服务

    方法2:

    在linux中设置ftp允许访问

    [root@lsx04-ftp ~]# getsebool -a | grep ftp

    设置ftpd_full_access为on

    [root@lsx04-ftp ~]# setsebool -P ftpd_full_access=on

    重启vsftpd服务,即可正常访问FTP

    备注:

    [root@lsx04-ftp ~]# firewall-cmd --add-service=ftp --permanent  //添加ftp服务到防火墙

    ftp配置文件说明:

    anonymous_enable=NO  #允许匿名用户访问为了安全选择关闭
    local_enable=YES   # 允许本地用户登录
    write_enable=YES   # 是否允许写入
    local_umask=022  # 本地用户上传文件的umask
    dirmessage_enable=YES #为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
    xferlog_enable=YES #开启日志

    xferlog_std_format=YES #标准格式
    connect_from_port_20=YES
    xferlog_file=/var/log/xferlog   #ftp日志目录

    idle_session_timeout=6000 #设置客户端连接时间

    data_connection_timeout=1200 #设置数据连接时间 针对上传,下载
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list #设置为YES则下面的控制有效
    chroot_list_enable=YES #若为NO,则记录在chroot_list_file所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里YES.
    chroot_local_user=YES
    userlist_deny=NO #若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login,并且将检察下面的userlist_deny选项
    userlist_enable=YES #若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求.
    userlist_file=/etc/vsftpd/user_list #白名单
    chroot_list_enable=YES
    local_root=/var/ftp/pub #根目录
    listen=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES 
  • 相关阅读:
    Python爬虫 Urllib库的高级用法
    Python爬虫入门 Urllib库的基本使用
    Oracle wm_concat()函数
    linux cut命令详解
    linux sort命令详解(转)
    linux awk 命令详解
    linux sed命令详解
    Oracle 数据导入导出操作 (转)
    sqlldr用法
    Python os与sys模块解析
  • 原文地址:https://www.cnblogs.com/JiaoTou/p/10764354.html
Copyright © 2011-2022 走看看