zoukankan      html  css  js  c++  java
  • CentOS开启FTP及配置用户

    vsftpd作为FTP服务器,在Linux系统中是非常常用的。下面我们介绍如何在centos系统上安装vsftp。

    什么是vsftpd

    vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

    vsftpd 的名字代表”very secure FTP daemon”, 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。

    安装vsftpd

    1、以管理员(root)身份执行以下命令

    1. yum install vsftpd

    2、设置开机启动vsftpd ftp服务

    1. chkconfig vsftpd on

    3、启动vsftpd服务

    1. service vsftpd start

    管理vsftpd相关命令:

    停止vsftpd:  service vsftpd stop

    重启vsftpd:  service vsftpd restart

    配置防火墙

    打开/etc/sysconfig/iptables文件

    1. vi /etc/sysconfig/iptables

    在REJECT行之前添加如下代码

    1. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

    保存和关闭文件,重启防火墙

    1. service iptables start

    配置vsftpd服务器

    默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。

    1. vi /etc/vsftpd/vsftpd.conf

    添加ftp用户

    下面是添加ftpuser用户,设置根目录为/var/www,禁止此用户登录SSH的权限,并限制其访问其它目录。

    1、修改/etc/vsftpd/vsftpd.conf

    将底下三行

    1. #chroot_list_enable=YES
    2. # (default follows)
    3. #chroot_list_file=/etc/vsftpd.chroot_list

    改为

    1. chroot_list_enable=YES
    2. # (default follows)
    3. chroot_list_file=/etc/vsftpd/chroot_list

    3、增加用户ftpuser,指向目录/var/www,禁止登录SSH权限。

    1. useradd -d /home/www -g ftp -s /sbin/nologin ftpuser

    4、设置用户口令

    1. passwd ftpuser

    5、编辑文件chroot_list:

    1. vi /etc/vsftpd/chroot_list

    内容为ftp用户名,每个用户占一行,如:

    peter
    john

    6、重新启动vsftpd

    1. service vsftpd restart

    另外,如果觉得以后管理ftp用户名嫌麻烦,可以使用centos官方发布的脚本管理。地址如下:

    http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users

    出现的错误

    1、500 OOPS: cannot change directory
    解决方法:

    在终端输入命令:

    1. setsebool -P ftpd_disable_trans 1
    2. service vsftpd restart

    就OK了!
    原因:这是因为服务器开启了selinux,这限制了FTP的登录。

    centos vsftpd 出现553 Could not create file 解决方法

    1。首先确保你的FTP目录 文件是可写的,ls -l 可以查看 如果不是则 chmod 777 ftpd目录

    2。使用命令getsebool -a|grep ftp 查看
    ftpd_disable_trans ftp_home_dir allow_ftpd_full_access 是否为on 
    如果不是则使用
    setsebool allow_sftpd_full_access on 
    setsebool ftpd_disable_trans on
    setsebool ftp_home_dir on
    3。一般这样就可以了,如果还不行请查看配置文件,如果配置文件没有问题可以先远程连接服务器在FTP目录下随便创建一个文件,使用ftp刷新下目录会恢复正常(这个情况我遇到过)

    4、chmod -R 777 /var/www

    7.实现虚拟路径
    将某个目录挂载到FTP服务器下供用户使用,这就叫做虚拟路径.
    比如将gxl用户的目录挂载到FTP服务器中,供FTP服务器的用户使用,使用如下命令即可:
    [root@localhost opt]# mount --bind /home/gxl /var/ftp/pub #使用挂载命令
    [root@localhost opt]# ls /var/ftp/pub
    LumaQQ Screenshot.png 桌面

    8.打开vsFTPd的日志功能
    添加下面一行到vsftpd.conf文件中,一般情况下该文件中有这一行,只要把前面的注释符号#去掉即可,没有的话就添加,或者修改:
    xferlog_file=/var/log/vsftpd.log

    9.限制链接数,以及每个IP最大的链接数
    修改配置文件中,例如vsftp最大支持链接数100个,每个IP能支持5个链接:
    max_client=100
    max_per=5

    10.限制传输速度
    修改配置文件中,例如让匿名用户和vsftd上的用户(即虚拟用户)都以80KB=1024*80=81920的速度下载
    anon_max_rate=81920
    local_max_rate=81920

    11.将用户(一般指虚拟用户)限制在自家目录
    修改配置文件中,这样用户就只能访问自己家的目录了:
    chroot_local_user=yes
    如果只想某些用户仅能访问自己的目录,其它用户不做这个限制,那么就需要在chroot_list文件(此文件一般是在/etc/vsftpd/中)中添加此用户.
    编辑此文件,比如将test用户添加到此文件中,那么将其写入即可.一般的话,一个用户占一行.
    [root@localhost vsftpd]# cat chroot_list
    test

    12.绑定某个IP到vsFTPd
    有时候要限制某些IP访问服务器,只允许某些IP访问,例如只允许192.168.0.33访问这个FTP,同样修改配置文件:
    listen_address=192.168.0.33


    配置vsftpd.conf
                       anonymous_enable=NO            #禁止匿名
                       local_enable=YES                       #允许本地登录
                       write_enable=YES                       #允许写,如需上传,则必须
                       local_umask=027                        #将上传文件的权限设置为:777-local_umask
                       anon_upload_enable=YES          #允许虚拟用户和匿名用户上传
                       anon_other_write_enable=YES #允许虚拟用户和匿名用户修改文件名和删除文件
                       dirmessage_enable=YES           
                       xferlog_enable=YES                      #打开日志记录
                       connect_from_port_20=YES
                       xferlog_file=/var/log/vsftpd.log     #日志存放位置
                       xferlog_std_format=YES              #标准日志格式
                       idle_session_timeout=600        #空闲连接超时
                       data_connection_timeout=120
                       ftpd_banner=Welcome to ChinaRise FTP service       #欢迎信息
                       guest_enable=yes                       #允许虚拟用户
                       guest_username=vsftpdguest #虚拟用户使用的系统账号
                       virtual_use_local_privs=YES     #虚拟用户拥有本地系统权限

                       chroot_local_user=NO              
                       chroot_list_enable=YES
                         #以上两行将虚拟用户限制在其目录下,不能访问其他目录,或者直接用                            
                       chroot_local_user=YES                               

                       listen=yes                #监听/被动模式
                       listen_port=21        #监听端口

                       chroot_list_file=/etc/vsftpd/vsftpd.chroot_list       #虚拟用户名单保存在文件/etc/vsftpd/vsftpd.chroot_list 中
                       user_config_dir=/etc/vsftpd/vsftpd_user_conf   #每个虚拟用户名的更加详细的培植保存在/etc/vsftpd/vsftpd_user_conf 中

    虚拟用户其他设置

          在/etc/vsftpd/vsftpd.chroot_list 文件中写入允许登陆的虚拟用户名称,每行一个
          在/etc/vsftpd/vsftpd_user_conf 文件夹中创建一个以虚拟用户用户名命名的文件,
          写入:local_root = /var/FTP/子目录名
          然后在/var/FTP下创建一个对应的目录即可

  • 相关阅读:
    poj1047
    poj1129
    poj1050
    C#中break、continue的用法
    关于一个不大常用的SQL数据类型-UNIQUEIDENTIFIER
    关于net2.0里面新出现的类backgroundworker的应用
    深入讲解SQL Union和Union All的使用方法
    让你一次性搞定堆、栈、值类型、引用类型 (转载)
    EXEC与sp_executesql的区别及应用(转)
    几种常用排序算法总结(转载)
  • 原文地址:https://www.cnblogs.com/sandea/p/4582002.html
Copyright © 2011-2022 走看看