linux FTP安装与配置详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TZ_GG/article/details/52822408
linux FTP安装与配置详解

一.vsftpd说明:

LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd.

  访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.vsftpd提供了3种ftp登录形式:

   (1)anonymous(匿名帐号)

使用anonymous是应用广泛的一种FTP服务器.如果用户在FTP服务器上没有帐号,那么用户可以以anonymous为用户名,以自己的电子邮件地址为密码进行登录.当匿名用户登录FTP服务器后,其登录目录为匿名FTP服务器的根目录/var/ftp.为了减轻FTP服务器的负载,一般情况下,应关闭匿名帐号的上传功能.

  (2)real(真实帐号)

real也称为本地帐号,就是以真实的用户名和密码进行登录,但前提条件是用户在FTP服务器上拥有自己的帐号.用真实帐号登录后,其登录的目录为用户自己的目录,该目录在系统建立帐号时系统就自动创建.

  (3)guest(虚拟帐号)

如果用户在FTP服务器上拥有帐号,但此帐号只能用于文件传输服务,那么该帐号就是guest,guest是真实帐号的一种形式,它们的不同之处在于,geust登录FTP服务器后,不能访问除宿主目录以外的内容.

二:原理说明
    ftp工作是会启动两个通道:控制通道,数据通道
    在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式)
    PORT模式:
        在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21)  发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来传送数据。

    PASV模式:
        传送数据时,ftp_client--PASV命令-->ftp_server(21) 发送PASV命令时,ftp_server自动打开一个1024--5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。

三:vsftpd安装:
    1.查询是否安装vsftpd: rpm -qa |grep vsftpd
        (rpm的安装:apt-get install rpm)
        或者查询当前ftp进程:ps -ef|grep vsftpd

    2.安装vsftpd服务器: rpm -ivh vsftpd-*.rpm

    3.可以使用yum命令直接安装ftp
        # yum install vsftpd
        ftp服务的开启与关闭命令:
            开启:# service vsftpd start 或者 /etc/init.d/vsftpd start
            关闭:# service vsftpd stop 或者 /etc/init.d/vsftpd stop
            状态:# service vsftpd status 或者 /etc/init.d/vsftpd status
            重启:# service vsftpd restart 或者 /etc/init.d/vsftpd restart

    在linux中添加ftp用户,并设置相应的权限,操作步骤如下:
    1、环境:
        ftp为vsftp 被限制用户名为test。被限制路径为/home/test
    2、建用户:在root用户下:
        # useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
        # passwd test //为test设置密码

    3、更改用户相应的权限设置:
        # usermod -s /sbin/nologin test //限定用户test不能telnet,只能ftp
        # usermod -s /sbin/bash test //用户test恢复正常
        # usermod -d /test test //更改用户test的主目录为/test

四.FTP相关配置文件说明

其相关配置文件有/etc/vsftpd/vsftpd.conf,  /etc/vsftpd.ftpusers,  /etc/vsftpd.user_list,在配置FTP服务器时,主要是修改这些文件中的相关语句.

/etc/vsftpd/vsftpd.conf   //主配置文件

/etc/vsftpd.ftpusers      //被禁止登录FTP的用户文件

/etc/vsftpd.user_list     //允许登录FTP的用户文件



1.vsftpd.conf文件说明

anonymous_enable=YES  //控制匿名登录,是否允许anonymous登录FTP服务器,默认是允许的.

local_enable=YES //是否允许本地用户登录FTP服务器,默认是允许

write_enable=YES  //是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许

local_umask=022 //控制本地文件的权限掩码,设置本地用户的文件生成掩码为022,默认是077

anon_upload_enable=YES //是否允许匿名用户上传文件(与anon_mkdir_write_enable=YES同时开启或关闭)

anon_mkdir_write_enable=YES  //是否允许匿名账户在FTP服务器中创建目录

dirmessage_enable=YES //激活目录信息,当远程用户更改目录时,将出现提示信息

xferlog_enable=YES  //控制上传或下载的日志记录,启用上传和下载日志功能

connect_from_port_20=YES   //启用FTP数据端口的连接请求

#chown_uploads=YES  //默认注释了,开启匿名用户上传用户映射,和下面一行一起使用

#chown_username=whoever  //默认注释了,将匿名用户上传的文件的用户映射为whoever用户

xferlog_file=/var/log/vsftpd.log  //设置日志文件的文件名和存储路径,这是默认的

xferlog_std_format=YES//是否使用标准的ftpd xferlog日志文件格式

idle_session_timeout=600  //设置指令超时的时间,空闲的用户会话中断时间,默认是600s

nopriv_user=ftpsecure  

async_abor_enable=YES

ascii_upload_enable=YES

ascii_download_enable=YES //是否允许使用ASCII格式来上传和下载文件

ftpd_banner=Welcome to blah FTP service.//在FTP服务器中设置欢迎登录的信息.

deny_email_enable=YES
(default follows)

banned_email_file=/etc/vsftpd.banned_emails

chroot_list_enable=YES //如果希望用户登录后不能切换到自己目录以外的其它目录,需要设置该项,如果设置chroot_list_enable=YES,那么只允许/etc/vsftpd.chroot_list中列出的用户具有该功能.如果希望所有的本地用户都执行者chroot,可以增加一行:chroot_local_user=YES
(default follows)

chroot_list_file=/etc/vsftpd.chroot_list

ls_recurse_enable=YES

pam_service_name=vsftpd  //设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.

userlist_enable=YES //用户列表中的用户是否允许登录FTP服务器,默认是不允许

listen=YES  //使vsftpd 处于独立启动模式

tcp_wrappers=YES  //使用tcp_wrqppers作为主机访问控制方式.开启后,在/etc/hosts.allow文件中天剑拒绝的主机IP:DENY



2.vsftpd.ftpusers文件说明

这个文件是用来记录"不允许"登录到FTP服务器的用户,通常是一些系统默认的用户.

下面是该文件中默认的不允许登录的名单:

# Users that are not allowed to login via ftp

root //默认情况下,root和它以下的用户是不允许登录FTP服务器的.可以将不允许登录的用户添加到这里来.但切记每个用户都要单独占用一行.

bin

daemon

adm

lp

sync

shutdown

halt

mail

news

uucp

operator

games

nobody


3.vsftpd.user_list文件说明

其实它的内容跟上面那个文件内容一样,只是在系统对文件vsftpd.conf 进行检测时,会检测到"userlist_deny=YES",因此这个文件必须存在.下面是这个文件的内容.

# vsftpd userlist

# If userlist_deny=NO, only allow users in this file

# If userlist_deny=YES (default), never allow users in this file, and

# do not even prompt for a password.

# Note that the default vsftpd pam config also checks /etc/vsftpd.ftpusers

# for users that are denied.

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

news

uucp

operator

games

nobody

更多信息请参考:http://ming228.blog.51cto.com/421298/112083
                http://www.cnblogs.com/JemBai/archive/2009/02/05/1384413.html
                http://www.linuxidc.com/Linux/2015-06/118442.htm
                http://blog.itpub.net/22578826/viewspace-763780/

猜你喜欢

转载自blog.csdn.net/TZ_GG/article/details/52822408
今日推荐