怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_filezilla搭建ftp服务器

FTP服务器搭建


接上篇:CentOS7服务搭建----搭建FTP服务器(上)

一、FTP相关配置文件说明

相关配置文件:

  • /etc/vsftpd/vsftpd.conf, 主配置文件。
  • /etc/vsftpd/ftpusers, 这个文件是用来记录"不允许"登录到FTP服务器的用户,通常是一些系统默认的用户。
  • /etc/vsftpd/user_list,其实它的内容跟上面那个文件内容一样,只是在系统对文件vsftpd.conf 进行检测时,会检测到"userlist_deny=YES",因此这个文件必须存在。

在配置FTP服务器时,主要是修改这些文件中的相关语句.先来将vsftpd.conf文件解析清楚,就知道需要如何配置满足我们的需求了

1.1、vsftpd.conf:主配置文件

  • # 配置文件/etc/vsftpd/vsftpd.conf示例
  • #
  • # 允许匿名FTP?(请注意-如果您对此发表评论,则默认情况下允许)。
  • anonymous_enable=YES //是否允许anonymous登录FTP服务器,默认是允许的。
  • # 取消注释以允许本地用户登录,默认是允许。
  • local_enable=YES
  • # 是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许
  • write_enable=YES
  • # 设置本地用户的文件生成掩码为022,默认是077
  • local_umask=022
  • # 是否允许匿名FTP用户上载文件。只有在激活上述全局写入启用时,此操作才有效。另外,显然需要创建一个FTP用户可写的目录
  • #anon_upload_enable=YES
  • # 是否允许匿名账户在FTP服务器中创建目录.默认是不允许。
  • #anon_mkdir_write_enable=YES
  • # 激活目录信息,当远程用户更改目录时,将出现提示信息。
  • dirmessage_enable=YES
  • # 启用上传和下载日志记录.
  • xferlog_enable=YES
  • # 启用FTP数据端口的连接请求.
  • connect_from_port_20=YES
  • # 设置匿名文件属主转变为指定用户及指定的用户名。注意!不建议匿名用户使用根目录!
  • #chown_uploads=YES
  • #chown_username=whoever
  • #可以重写日志文件的位置。默认值如下所示
  • #xferlog_file=/var/log/vsftpd.log
  • # 是否使用标准的ftpd xferlog日志文件格式
  • xferlog_std_format=YES
  • # 设置空闲的用户会话中断时间,默认是10分钟.
  • #idle_session_timeout=600
  • # 设置数据连接超时时间,默认是120秒.
  • #data_connection_timeout=120
  • # 运行vsftpd需要的非特权系统用户默认是nobody,可以指定
  • #nopriv_user=ftpsecure
  • # 是否允许运行特殊的ftp命令async ABOR.
  • #async_abor_enable=YES
  • # 是否使用ascii码方式上传文件
  • #ascii_upload_enable=YES
  • # 是否使用ascii码方式下载文件
  • #ascii_download_enable=YES
  • # 定制欢迎信息:
  • #ftpd_banner=Welcome to blah FTP service.
  • # 是否允许禁止匿名用户使用某些邮件地址,默认是允许的。
  • #deny_email_enable=YES
  • # 禁止邮件地址的文件路径
  • #banned_email_file=/etc/vsftpd.banned_emails
  • # 是否将系统用户限止在自己的home目录下,默认不限制,如果设置chroot_list_enable=YES,那么只允许/etc/vsftpd.chroot_list中列出的用户被限制.如果希望所有的本地用户都执行者chroot,可以增加一行:chroot_local_user=YES
  • #chroot_list_enable=YES
  • #chroot_list_file=/etc/vsftpd.chroot_list
  • #您可以激活内置ls的“-R”选项。默认禁用,以避免远程用户在大型站点上导致过多的I/O。但是,一些客户端的批量操作(如“ncftp”和“mirror”)需要“-R”选项,这样的场景就需要开启了。.
  • #ls_recurse_enable=YES
  • # 设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.
  • pam_service_name=vsftpd
  • # 用户列表中的用户是否允许登录FTP服务器,默认是不允许
  • userlist_enable=YES
  • # 使vsftpd 处于独立启动模式
  • listen=YES
  • # 使用tcp_wrqppers作为主机访问控制方式
  • tcp_wrappers=YES

1.2、/etc/vsftpd/ftpusers文件说明

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

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




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_centos7 ftp服务器搭建_02

ftpusers文件内容



1.3、/etc/vsftpd/user_list文件说明

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




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_centos7 ftp服务器搭建_03

user_list文件内容



注意⚠️:如果userlist_deny=NO,则仅允许此文件中的用户;如果userlist_deny=YES(默认),则从不允许此文件中的用户,甚至不提示输入密码。注意,默认的vsftpd pam config还检查/etc/vsftpd/ftpusers以查找被拒绝的用户。

二、虚拟用户的管理

(1) 创建虚拟用户认证及主目录等

系统用户登陆ftp服务,同时也可以登陆系统,所以考虑到系统安全,一般企业使用虚拟用户登录ftp服务器器,所以需要建立ftp虚拟用户,使这些用户只能登陆ftp

建vsftpd使用的系统用户mugo,禁止ssh登录。创建之后所有虚拟用户使用这个系统用户访问文件(所有的虚拟用户其实在系统中都需要有一个映射的用户,但这个用户仅仅作为在系统中的映射作用,所以设置为不可ssh登录系统,不用设置密码,保护系统)

命令:

useradd mugo -s /bin/false




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_ftp dir 超时_04

建立映射用户



创建虚拟用户主目录,比如虚拟用户叫mftp01、mftp02和mftp03(每个虚拟用户都可以有自己的主目录,建议千万别吧使用系统的主目录作为任何虚拟用户的主目录),执行下面的命令

mkdir -p /var/ftpdata/mftp0{1,2}



怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_ftp dir 超时_05

新建虚拟账户主目录



编辑虚拟用户名单文件:(第一行账号,第二行密码,注意:不能使用root及系统保留用户做用户名,系统保留)




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_centos7搭建ftp服务器本地用户_06

建立虚拟用户名单



根据这个文件创建数据库文件




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_centos ftp服务器搭建_07

创建名单数据库文件



启用这个数据库文件,db=/etc/vsftpd/vuser,后面文件名不能是vuser.db,如果写成db=/etc/vsftpd/vuser.db 则实际会将文件识别成loginusers.db.db,required表示用户名认证必须正确,否者直接pass




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_centos ftp服务器搭建_08

启用数据库文件



创建虚拟用户配置文件目录




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_filezilla搭建ftp服务器_09

创建虚拟用户配置目录



创建虚拟用户配置用(一个户名对应一个文件)。

虚拟用户mftp01的配置:




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_filezilla搭建ftp服务器_10

虚拟用户mftp01的配置



注意⚠️:这些虚拟账户的配置每一条后面都不能有任何多余的东西,包括空格也不行,多一个都不想,否则虚拟账户登录一直会失败。

虚拟用户mftp02的配置:




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_centos7搭建ftp服务器本地用户_11

虚拟用户mftp02的配置



虚拟用户mftp03的配置:




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_centos7 ftp服务器搭建_12

虚拟用户mftp03的配置



注意⚠️:此例中的mftp03使用的主目录是mftp01的,也即说明,主目录可以共享

(2) 修改主配置文件/etc/vsftpd/vsftpd.conf




怎么修改Centos7服务器的FTP端口 centos配置ftp服务器_ftp dir 超时_13


文件内容修改为:

  • anonymous_enable=NO
  • local_enable=YES
  • write_enable=YES
  • local_umask=022
  • #anon_upload_enable=YES
  • #anon_mkdir_write_enable=YES
  • dirmessage_enable=YES
  • xferlog_enable=YES
  • connect_from_port_20=YES
  • #chown_uploads=YES
  • #chown_username=whoever
  • #xferlog_file=/var/log/xferlog
  • xferlog_std_format=YES
  • #idle_session_timeout=600
  • #data_connection_timeout=120
  • #nopriv_user=ftpsecure
  • #async_abor_enable=YES
  • ascii_upload_enable=YES
  • ascii_download_enable=YES
  • #ftpd_banner=Welcome to blah FTP service.
  • #deny_email_enable=YES
  • #banned_email_file=/etc/vsftpd/banned_emails
  • chroot_local_user=YES
  • #chroot_list_file=/etc/vsftpd/chroot_list
  • #ls_recurse_enable=YES
  • listen=YES
  • listen_ipv6=NO
  • pam_service_name=vsftpd
  • userlist_enable=YES
  • tcp_wrappers=YES
  • # 虚拟用户启用
  • guest_enable=YES
  • guest_username=mugo
  • user_config_dir=/etc/vsftpd/vuser_conf/
  • allow_writeable_chroot=YES

三、FTP服务定制(安全)

ftp服务配置文件:/etc/vsftpd/vsftpd.conf

这里主要就是限制ftp的上传速度,连接超时时间等等,都是在/etc/vsftpd/vsftpd.conf文件中配置

主要有以下内容:

  • use_localtime=YES # 使用本地时间
  • max_per_ip=10 # 最多允许同一账号在10个不同的IP登录
  • max_clients=10 # 最多连接数
  • local_max_rate=2500000 # 最大下载速度(字节/秒)
  • idle_session_timeout=300 # session超时时间(秒)
  • data_connection_timeout=300 # 数据连接超时时间(秒)
  • virtual_use_local_privs=YES # NO时,虚拟用户和匿名用户有相同的权限,默认是NO
  • pasv_enable=YES # 开启pasv被动模式
  • pasv_min_port=40000 # 开启pasv被动模式的最小端口
  • pasv_max_port=40010 # 开启pasv被动模式的最大端口
  • pasv_promiscuous=YES # 这个是用于检测pasv的安全检查,YES为关闭安全检查
  • ......

按需加入在配置文件中即可。