ftp服务器搭建

本文详细介绍了如何在CentOS 6.8系统上搭建ftp服务器,包括使用vsftpd软件,创建普通用户并限制其权限,设置虚拟ftp用户映射,配置vsftpd服务,以及进行测试和故障排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于centos 6.8 搭建测试环境ftp服务器

使用vsftpd搭建ftp 

使用root用户用yum安装

1  安装vsftpd: 

         yum install -y vsftpd

2  创建一个普通用户 :

        useradd -s /sbin/nologin virftp        指定用户的shell为nologin,不允许登录

        vsftpd软件是允许系统用户以ftp方式(非SSH)登录系统的,登录后会进入用户家目录,为了安全起见,我们使用虚拟ftp用户映射到真实系统用户的方式,使用ftp服务,从而避免ftp用户直接登录系统。

3    创建虚拟ftp用户配置文件:

        vim /etc/vsftpd/vsftpd_login

        写入虚拟用户的用户名和密码:

        test1          奇数行  写用户名

        123            偶数行  写密码

        test2          多个用户就写多组,中间不能有空行和空格

        456            test1的密码为123,test2的密码为456

4    更改权限:

        chmod 600 /etc/vsftpd/vsftpd_login

        将文本文件转换成二进制文件:

        db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

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

        mkdir /etc/vsftpd/vsftpd_user_conf

        cd /etc/vsftpd/vsftpd_user_conf

6   创建虚拟用户的配置文件:

       vim test1       此处的文件名必须和/etc/vsftpd/vsftpd_login文件里的用户名一致。

       加入如下内容

       local_root=/home/virftp/testuser1     定义虚拟用户的家目录

       anonymous_enable=NO                  不允许匿名用户登陆,如果允许则用YES

       write_enable=YES                            写权限,允许

       local_umask=022                             设定umask,用来控制用户创建文件和目录的默认权限

       anon_upload_enable=NO                不允许匿名用户上传

       anon_mkdir_write_enable=NO         不允许匿名用户创建目录和写权限

       idle_session_timeout=600                空闲时限600秒,超时自动断开

       data_connection_timeout=120         数据连接(请求)时限120秒,超时会自动断开

       max_clients=10                                客户端的最大连接数
 

7   创建虚拟ftp用户的家目录,并创建测试文件

       mkdir /home/virftp/test1

       touch /home/virftp/test1/1.txt

8   级联更改系统用户virftp权限

       chown -R virftp:virftp /home/virftp

      以下两行为在ftp上创建文件报错时添加的权限

       chown -R virftp:virftp /var/ftp

       chmod 755 -R /var/ftp

9   定义用户验证文件路径

       vim /etc/pam.d/vsftpd    编辑ftp的用户认证文件

       在最前面加上:注意区分系统是32位还是64位

       auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 

       指定密码验证形式为文件形式,并指定路径路径

       account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

       指定账户存储形式为文件,并指定账户存储文件路径
 

10   配置vsftp服务:

       vim /etc/vsftpd/vsftpd.conf

       将anonymous_enable=YES 改为 anonymous_enable=NO 不允许匿名用户登录

       将#anon_upload_enable=YES 改为 anon_upload_enable=NO 不允许匿名用户上传

       将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO

       不允许匿名用户创建目录和写入

       再增加如下内容

       chroot_local_user=YES   允许切换到系统用户

       guest_enable=YES          打开来宾用户

       guest_username=virftp    定义来宾用户为virftp

       virtual_use_local_privs=YES    允许虚拟用户映射到系统用户

       user_config_dir=/etc/vsftpd/vsftpd_user_conf 定义用户配置文件目录

       #allow_writeable_chroot=YES    允许写权限。我的centos6.8虚拟机不能写这个参数,启动会报错

11  vsftpd服务

        service vsftpd start     启动

        service vsftpd stop     停止

        service vsftpd restart     重新启动

12   测试:

        安装lftp客户端

        yum install -y lftp

        以test1用户的身份访问ftp服务器,并输入密码

        lftp test1@192.168.x.x

        回车输入密码

        执行命令ls,看是否正常输出

        若不正常查看日志 /var/log/messages 和 /var/log/secure,一般在 /var/log/secure

        tail -20f /var/log/secure

        windows下安装filezilla客户端软件,进行测试

13   报错处理:

      (1)Login failed: 500 OOPS: bad bool value in config file for: anonymous_enable

                解决方案:查看 /etc/vsftpd/vsftpd.conf 文件中每一行后面是否有空格,严格要求不能有空格

      (2)unknown limit item ‘noproc’

                解决方案: vim /etc/security/limits.conf , 看看红框中的参数是否有问题,我还遇到过 nofile 变成 nofil 的情况

                 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值