您的位置:首页 > 运维架构 > Linux

FTP服务器配置 CentOS 7

2020-07-06 23:42 127 查看

FTP服务器配置 CentOS 7

【项目描述】
本章主要学习Red Hat Enterprise Linux 5下 VSFTPD服务的配置。VSFTPD是一个较为安全的FTP服务器软件,本项目使用VSFTPD配置FTP服务器,实现以下功能:

  1. 开放实体用户登陆。使用者登陆FTP的时候显示欢迎消息;系统帐号不允许登陆;允许实体用户进行上传、下载、建立目录及修改文件;设置用户新建文件、目录的umask为002。
  2. 仅允许匿名登陆。匿名登陆时显示欢迎消息;仅开放anonymous登陆,且不需要密码;限制文件转输速度为30KB/s;文件连接过程超过60秒没有回应就断开连接;anonymous超过10分钟没有动作就断线;最大同时上线人数限制为50人,同一IP的最大连线数为5。
    【构思设计】
    使用vsFTPD配置FTP服务器,需要用到几个比较重要的文件以及配置文件中的主要参数:
    几个重要的文件
    /etc/vsftpd/vsftpd.conf
    这是vsftpd的配置文件,这个文件的设定是以“参数=设定值”的格式来设定的,并且等号两边不能有空格。
    /etc/pam.d/vsftpd
    这是vsftpd使用PAM模块时的相关设定文件,用来作身份验证之用。
    /etc/vsftpd/ftpusers
    与上面的文件有关,用来设定不允许登陆的用户帐号。
    /etc/vsftpd/user_list
    这个文件是否生效与vsftpd.conf内的两个参数有关,分別是userlist_enable, userlist_deny,用于控制用户的登陆。
    /etc/vsftpd/chroot_list
    这个文件默认是不存在的,需要手动建立。这个文件的主要功能是可以将某些帐号的使用者chroot在他们的家目录下。但这个文件要生效与vsftpd.conf内的chroot_list_enable, chroot_list_file两个参数有关。
    /usr/sbin/vsftpd
    这是vsftpd的主要执行脚本。
    /var/ftp/
    这是匿名登陆的根目录。
    匿名用户设置
    anonymous_enable=yes 用来设置允许匿名登陆。
    anon_upload_enable=yes 开放上传权限,允许匿名上传。
    anon_mkdir_write_enable=yes 设置匿名用户创建目录的同时可以在此目录中上传文件。
    anon_other_write_enable=yes 设置匿名帐号可以有删除的权限。
    anon_world_readable_only=no 若设置为yes,则匿名用户不仅可以上传和建立目录,而且可以删除和更改文件和目录的权限。
    anon_root=/var/ftp 设置匿名用户登录后所在的目录。
    系统界面设置
    dirmessage_enable=yes 设置是否显示目录信息。当切换目录时,显示目录下.message的内容。
    connect_form_port_20=yes 启用FTP数据端口20的数据连接。
    listen_port=21 设置FTP服务器监听客户端连接使用21端口。
    ftpd_banner=welcome 设置欢迎信息。
    listen=yes 设置独立的VSFTPD服务器。
    local_root=/var/ftp 设置本地用户登录后的目录。
    write_enable=yes 开放本地用户写的权限。
    本地用户权限设置
    表示Linux系统上的用户对该FTP服务器的访问权限,如root用户,tom和john用户等。
    local_enble=yes 本地帐户能够登陆,这样/etc/passwd内的帐号才可以登录。
    userlist_enable=yes 决定usftpd.user_list文件生效,no表示不生效。
    local_max_rate=0 本地用户所能使用的最大传输速度,单位是B/s。设置为0表示不受速度限制。
    服务相关设置
    anon_max_rate=0 匿名用户所能使用的最大传输速度,单位是B/s。设置为0表示不受速度限制。
    max_clients=0 表示服务器最多可以连接多少客户端。0表示不限制,具体的数字表示客户端最大的限制数目。
    max_per_ip=2 表示同一个ip的客户端最多可以最大连接数量是2。
    accept_timeout=60 表示连接服务器的超时时间,单位是秒。
    data_connection_timeout=120 表示数据连接的超时时间,单位是秒。
    idle_session_timeout=600 表示600秒内对服务器没有任何操作后断开服务器连接,单位是秒。
    传输模式设置
    ascii_download_enable=yes 设置启用ASCII模式下载数据。默认是no。
    ascii_upload_enable=yes 设置启用ASCII模式上传数据。默认是no。

【实施运行】
1、 查询是否安装了vsftpd服务。用 rpm –qa | grep vsftpd 查询是否安装了vsftpd软件包。若未安装则使用yum -y install vsftpd 安装。

#rpm –qa | grep vsftpd


2.、 编辑主配置文件 ** /etc/vsftpd/vsftpd.conf**,修改服务器的配置参数

#vim  /etc/vsftpd/vsftpd.conf


3、 保存文件退出vi,然后重启vsftpd服务。

4、 主配置文件中参数 banner_file=/etc/vsftpd/welcome.txt设置了站点消息的文件,现在编辑这个文件。


5、 文件中输入以下消息内容。

建立限制系统用户登陆的文件

建立一个用于登陆FTP的实体帐号ftpuser


切换到客户端登陆测试。

换成用root和anonymous登陆试试。

chroot的使用
通过chroot可以设置某些帐号登陆后不允许离开他的家目录。设定的方法很简单,修改vsftpd.conf,增加以下的项目:


重启vsftpd服务


建立要被chroot的使用者文件。

限制下载带宽,最大上线人数与同一IP来源数。

保存文件退出vi,并且重启服务。

仅允许匿名登陆

匿名访问的根目录是/var/ftp,也就是匿名访问看到的是/var/ftp目录下的文件。先在该目录下建立linux和gnu文件夹,假设是用于存放提供下载的文件。

修改配置文件/etc/vsftpd/vsftpd.conf



保存文件退出vi,重启服务。

切换到客户端登陆测试。

实验到此失败,终止,问题尚未解决,解决回来更新。

续:
我们遇到这个情况,可以尝试使用setsebool -P ftpd_connect_all_unreserved 1这条命令,开启ftp所有权限。

setsebool -P ftpd_connect_all_unreserved 1


可以看到显示出了目录
我们在测试端进入该目录新建文件。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: