• ftp文件的部署


    之前在公司搭建了一个静态资源服务器,现在来记录一下
    我们是通过搭建vsftp服务,然后结合apache。访问方式为http的方式
     
    http://www.eetop.cn/blog/html/03/885803-39346.html
     
    一:VSFTPD环境安装
    首先我们就是要查看一下vsftpd是否有安装过(检测
    我这里是没有安装的
    所以我这里就通过YUM的方式给他装上安装
     
    安装完成之后我们可以通过下面的命令启动、停止ftp
    启动命令#service vsftpd start
    停止命令#service vsftpd stop
    重启命令#service vsftpd restart
     
    二:VSFTPD环境配置

    ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是:
    ftpusers 该文件用来指定那些用户不能访问ftp服务器。

    user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp.vsftpd.conf vsftpd的主配置文件.ftpusers和user_list 用来控制登录用户。

    ftpusers文件中的内容不受任何配制项的影响,总是有效,是一个黑名单!
    该文件存放的是一个禁止访问FTP的用户列表,通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载一些危险位置上的文件从而对系统造成损坏。
    而user_list文件则是和vsftpd.conf中的userlist_enable和userlist_deny两个配置项紧密相关的,它可以有效,也可以无效,有效时它可以是一个黑名单,也可以是一个白名单。
    userlist_enable和userlist_deny两个选项联合起来针对的是:本地全体用户(除去ftpusers中的用户)和出现在user_list文件中的用户以及不在在user_list文件中的用户这三类用户集合进行的设置。
    当且仅当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
    当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
    当 userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准 许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一 行:anonymous
    而最常用的配置文件是vsftpd.conf,在配置完成后要运行#service vsftpd restart重启FTP服务。
     
     
    三:VSFTPD配置文件的修改
    在修改之前我们可以吧源配置文件给备份一下
     
    然后我们就开始来修改配置文件了
    这是我在生产上的配置
    anonymous_enable=NO
    port_enable=YES
    pasv_enable=YES
    pasv_min_port=9010
    pasv_max_port=9060
    local_enable=YES
    write_enable=YES
    download_enable=YES
    local_umask=022
    chroot_local_user=YES
    ascii_upload_enable=YES
    ascii_download_enable=YES
    pam_service_name=vsftpd------------------》确保开启
    guest_enable=YES----------------------------》开启虚拟用户
    guest_username=virtual—————————》虚拟用户所映射的本地用户
    user_config_dir=/etc/vsftpd/user_config_dir
    dirmessage_enable=YES
    connect_from_port_20=YES
    listen=YES
    listen_port=21
    xferlog_enable=YES
    xferlog_std_format=YES
    xferlog_file=/var/log/vsftplog
    userlist_enable=YES
    tcp_wrappers=YES
    allow_writeable_chroot=YES-------这个看你的vsftpd版本是多少,要是在2.3.5以后,就给他加上
     
     
    我这里设置的是被动模式:
    我现在设置一个虚拟用户的专有目录/etc/vsftpd/user_config_dir
    然后这个下面放的是虚拟用户的专有配置文件
    write_enable=YES
    local_root=/ftproot/app
    download_enable=YES
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    anon_umask=022
     
     
    四:给FTP添加用户和主目录
    这个时候我们可以创建用户了,
    useradd -d /ftproot/ -s /sbin/nologin virtual
    passwd virtual 设置密码
    我们这里就指定用户的家目录为ftp的上传下载主目录
     
    设置权限
    chmod -R 755 /ftproot
    chown virtual:virtual /ftproot -R
     
     
     
    四:设置使用虚拟用户能够上传、下载、建立文件
     
    首先这里我们要建立一个虚拟用户口令的文本文件,格式是:
    奇数行为用户名
    偶数行是密码
    下面是我生产的例子:

    [root@filesvr vsftpd]# cat vuser
    app-----------------------------》虚拟用户的名字
    bbqqaakkdl--------------------》用户的口令
     
    这里我们可以设置不同的虚拟用户专属不同的文件目录,同时你也可以设置不同的用户角色权限
    比说说我们现在再创建一个虚拟用户
    [root@filesvr vsftpd]# cat vuser
    app-----------------------------》虚拟用户的名字
    bbqqaakkdl--------------------》用户的口令
    IAM
    1234asdf
     
    [root@filesvr vsftpd]# vim IAM
     
    local_root=/home/IAM
    local_umask=022
    anon_umask=022
     
    idle_session_timeout=600
    data_connection_timeout=120
    max_clients=10
    max_per_ip=5
    local_max_rate=1048576
     
    #download
    #anon_world_readable_only=NO
     
    #upload
    #anon_world_readable_only=NO
    #write_enable=YES
    #anon_upload_enable=YES
    #anon_mkdir_write_enable=YES
     
    #admin
    anon_world_readable_only=NO
    write_enable=YES
    anon_upload_enable=YES
    anon_other_write_enable=YES
    anon_mkdir_write_enable=YES
     
    保存之后我们要用db_host来生成用户口令库文件
    db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
    chmod 600 /etc/vsftpd/vuser.db #为了安全设为只读。
     
    然后我们重启一下vsftpd的服务(我们可以用nginx来代理一下)
    然后我们输入服务器的IP地址,这样我们不同的用户读取到的内容是不一样的,IAM用户读取到的内容是/home/IAM 下面的文件内容
     
    现在修改/etc/pam.d/vsftpd
    把文件中的所有行给注释掉,然后加上下面两行
     
    需要注意的是,上面那个db所指的vuser这个文件不需要加".db"不然会登录不了的。
     
    我这个在启动的时候报了一个错
     
    我想起来了,这是因为我当时在centos 7装vsftpd的时候我yum安装的是3.0版本的,因为当时要是不加上这个
    allow_writeable_chroot的话会报错
    500 OOPS: vsftpd: refusing to run with writable root inside chroot()
    网上找到的解释是:

    从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

    要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。(http://linux.it.net.cn/e/server/ftp/2015/0227/13554.html

    但是我当前的版本是2.2.2的。所以这里我就把这个参数去掉就好了
     
    然后我们就可以访问测试一下
     
     
    我发现创建和删除文件都是没有问题的
     
    这里vsftpd的安装配置工作就完成了,接下来要做的就是给他装上一个apache,方便我们的后台程序使用http的方式来调用
     
    yum -y install httpd
    cd /etc/httpd/conf.d
    vim ftp.conf
    <VirtualHost *:8001>
    DocumentRoot /ftproot/app
    ServerName 192.168.220.116
    ErrorLog logs/ftpsvr.error.log
    CustomLog logs/ftpsvr.access.log common
    <Directory "/ftproot/app">
    Options -Indexes
    AllowOverride All
    Require all granted
    </Directory>---------------------->这一部分是当时是因为什么原因加上的不记得了
    </VirtualHost>
     
    vim /etc/httpd/conf/httpd.conf
    添加一行
    Listen 8001
     
    然后重启httpd
    把上面的红色内容给去掉,重启http访问成功
     
     
     
  • 相关阅读:
    Java循环结构
    Java正则表达式
    Java日期时间
    Java如何输入数据
    Java数组
    Java StringBuffer和StringBuilder类
    Java String类
    Java Character类
    Java Number&Math类
    python之二维码生成
  • 原文地址:https://www.cnblogs.com/smail-bao/p/6201609.html
Copyright © 2020-2023  润新知