ftp搭建

==========ftp===========================
https://ke.qq.com/webcourse/index.html#cid=275195&term_id=100325482&taid=1955155012760315&vid=m14243r4at7

列出所有已安装的软件包 
命令:yum list installed

iptables -L     //查看防火墙状态
getenforce    //查看slind防火墙状态
ss -tnpl    //看端口
ps  -ef|grep ftp    //查看ftp是否开启
netstat -tnlp
yum -y install vsftpd    //安装插件 ftp客户端
service vsftpd start  或stop或status    //开启ftp
1. 永久性生效
开启:chkconfig iptables on
关闭:chkconfig iptables off
2. 即时生效,重启后失效
开启:service iptables start
关闭:service iptables stop
3.临时关闭Selinux
    setenforce 0    //关闭Selinux
    getenforce        //查看Selinux 状态Enforcing:开启的 Permissive:关闭的

匿名用户上传文件配置,其他基本不用动:
    anonymous_enable=YES    //允许匿名登录,匿名用户ftp 没有密码
    write_enable=YES
    anon_umask=022        #没有,需要手写
    anon_upload_enable=YES #允许匿名用户上传文件,上传权限
    anon_mkdir_write_enable=YES #允许匿名用户建立目录,可写权限
    anon_other_write_enable=YES #允许匿名用户更多操作 如删除文件、更名。需要手写上去

而如果userlist_deny=YES,则user_list文件中的用户将不允许登录FTP服务器
#userlist_enable=YES/NO


mkdir testdir
setfacl -m u:ftp:rwx testdir/    //给ftp用户设置读写权限
getfacl testdir/    //查看testdir的读写权限
登录用户访问配置
    local_enable=YES    //允许linux登录用户,默认是允许的
    write_enable=YES    //是否允许系统用户上传文件
    local_root=/ftproot    //非匿名用户登录所在目录,否则为家目录
    local_umask=022        //指定系统用户上传文件的默认权限
    chroot_local_user=YES    //打开注释,只能访问家目录。是全局属性
        
useradd -s /sbin/nologin ftpuser    //创建用户
echo "123456" |passwd --stdin ftpuser    //加密码

user_list中的本地用户可以访问ftp,而其他本地用户不能访问ftp
    userlist_enable=YES
    userlist_deny=NO
    userlist_file=/etc/vsftpd/user_list
user_list中指定的本地用户不能访问ftp,而其他本地用户可以访问ftp
    userlist_enable=YES
    userlist_deny=YES
    userlist_file=/etc/vsftpd/user_list
chroot_list中指定的用户 只能访问家目录,其他用户可以访问其他目录。
    chroot_local_user=NO
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
指定pam配置文件,配置虚拟用户访问ftp
    userlist_enable=YES
    tcp_wrappers=YES
    guest_enable=YES
    guest_username=vuser
    pam_service_name=vsftpd.db
    user_config_dir=/etc/vsftpd/vusers.d/
    在/etc/vsftpd/vusers.d/目录下新建与登录用户名相同的文件 
        如zhangsan
            anon_upload_enable=YES    //允许上传
            anon_mkdir_write_enable=YES    //允许创建目录
            anon_other_write_enable=YES    //允许删除目录
            
==========ftp end===========================


--------------配置虚拟用户访问FTP,亲测有效:-------------------------
CentOS release 6.4 (Final)
vsftpd 2.2.2
1.虚拟用户都需要使用一个系统本地用户 
id ftpuser      //查看是否存在ftpuser用户
useradd -s /sbin/nologin ftpuser
echo "ftpuser" |passwd --stdin ftpuser    //加密码
chmod a-w /home/ftpuser
mkdir /home/ftpuser/pub
chmod 777 /home/ftpuser/pub/

2.vsftpd的安全配置
    # vim /etc/vsftpd/vuser.txt
    test        //登录用户
    123456        //登录密码
    
生成db文件
    # db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
编辑vsftpd的PAM认证文件:vsftpd文件最上面增加两行
    # vim /etc/pam.d/vsftpd
    auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
    account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

3.配置文件
    # vim /etc/vsftpd/vsftpd.conf

    #禁止匿名用户
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES

    #不启动锁定用户名单,所有的用户都将被锁定不允许访问上级目录,只允许访问其主目录
    chroot_local_user=YES
    chroot_list_enable=NO

    #启动log
    xferlog_enable=YES
    xferlog_std_format=YES
    xferlog_file=/etc/vsftpd/vsftpd.log

    #开启虚拟用户
    guest_enable=YES
    #FTP虚拟用户对应的系统用户
    guest_username=vsftpd
    #PAM认证文件/etc/pam.d/vsftpd
    pam_service_name=vsftpd

    virtual_use_local_privs=YES
    
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf |grep ^[^#]
    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
    xferlog_file=/etc/vsftpd/vsftpd.log
    xferlog_std_format=YES
    chroot_local_user=YES
    chroot_list_enable=NO
    chroot_list_file=/etc/vsftpd/chroot_list
    listen=YES
    guest_enable=YES
    guest_username=ftpuser
    virtual_use_local_privs=YES
    pam_service_name=vsftpd
    listen_ipv6=NO
    #local_root=/home/ftpuser/pub                #配置到test文件中也行
    #user_config_dir=/etc/vsftpd/vuser_conf        #这个配置是有效的,增加如下test文件。不配置也行
test文件名跟vuser.txt中登录用户名一致:
[root@localhost ~]# cat /etc/vsftpd/vuser_conf/test 
    local_root=/home/ftpuser/pub
    anonymous_enable=NO
    write_enable=YES
    local_umask=022
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    idle_session_timeout=600
    data_connection_timeout=120
    max_clients=20
    chroot_list_enable=YES

4)启动:最后让vsftpd加载指定的配置文件来启动: 
# vsftpd /etc/vsftpd/vsftpd.conf
5) 访问:ftp://192.168.1.253     
-------------配置虚拟用户访问FTP,亲测有效  end-----------------
cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core) 
vsftpd 3.0.2
配置同上。但是会报错如下解决:
报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
    因为:/home/ftpuser/pub 这个文件夹 对于ftpuser这个用户不能有写的权限,设置为755即可
    可以使用下面命令修改权限:
    sudo chown -R root:root /home/ftpuser/pub
    将/home/ftpuser/pub目录包含所有的子目录和文件,所有者改变为root,所属组改变为root,-R意思是循环遍历
登录ftp后 没有写的权限:解决如下:
    mkdir /home/ftpuser/pub/ftpfiles    //新建一个文件夹
    chown -R ftpuser:ftpuser /home/ftpuser/pub/ftpfiles        //所有者改为ftpuser
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值