zoukankan      html  css  js  c++  java
  • Nginx+vsftpd

    一、安装Nginx

    • 关闭selinux和firewalld
    setenforce 0
    sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
    systemctl disable firewalld
    • 时间同步
    yum -y install ntpdate
    ntpdate ntp1.aliyun.com
    • 安装nginx
    yum -y install pcre pcre-devel openssl openssl-devel gcc
    useradd nginx -s /sbin/nologin -M
    wget http://nginx.org/download/nginx-1.13.11.tar.gz
    tar xf nginx-1.13.11.tar.gz
    cd nginx-1.13.11
    ./configure --user=nginx --group=nginx --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module
    make && make install
    cd /opt/nginx/sbin/
    ln -s /opt/nginx/sbin/* /usr/local/sbin/
    • 修改配置文件
    cd /opt/nginx/conf/
    mv nginx.conf nginx.conf_bak
    cat <<EOF > /opt/nginx/conf/nginx.conf
    
    user  virtual;
    worker_processes  2;
    
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  logs/access.log  main;
        sendfile        on;
        tcp_nopush     on;
        keepalive_timeout  65;
        autoindex on;
        gzip  on;
    
        server {
            listen       80;
            server_name  websftp.liveyu.com;
            charset utf-8;
            access_log  logs/host.access.log  main;
            location / {
                root   /data/ftproot;
                index  index.html index.php index.htm;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    EOF
    • 启动nginx
    nginx -t
    nginx

    二、安装vsftpd

    • 安装vsftpd
    yum -y install vsftpd
    mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
    grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
    • 安装ftp客户端
    yum -y install ftp
    • 创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码 
    cd /etc/vsftpd/
    # 创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码
    cat <<EOF > vuser.list
    admin
    123
    EOF
    • 使用db_load命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件
    # 使用db_load命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件
    db_load -T -t hash -f vuser.list vuser.db
    file vuser.db
    chmod 600 vuser.db
    rm -f vuser.list
    • 创建ftp虚拟用户
    useradd -d /var/ftproot -s /sbin/nologin virtual
    ls -ld /var/ftproot/
    chmod -Rf 755 /var/ftproot/
    
    yum -y install pam* db4*
    
    vim /etc/pam.d/vsftpd.vu
    auth       required     pam_userdb.so db=/etc/vsftpd/vuser
    account    required     pam_userdb.so db=/etc/vsftpd/vuser
    
    
    mkdir /etc/vsftpd/vusers_dir/
    cd /etc/vsftpd/vusers_dir/
    touch admin
    vim admin        # 有上传/下载/修改权限
    
    anon_world_readable_only=NO        # 匿名用户可以浏览FTP目录和下载文件
    write_enable=YES                # 设置可写权限
    anon_upload_enable=YES            # 是否允许匿名用户上传文件
    anon_mkdir_write_enable=YES        # 是否允许匿名用户创建目录
    anon_other_write_enable=YES        # 是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
    local_root=/data/ftproot/        # 本地用户的FTP根目录
    
    cat /etc/vsftpd/vsftpd.conf
    
    anonymous_enable=NO                # 是否允许匿名用户访问
    local_enable=YES                # 是否允许本地用户登陆FTP
    guest_enable=YES                # 开启虚拟用户模式
    guest_username=virtual            # 指定虚拟用户账户
    allow_writeable_chroot=YES      # 允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求
    write_enable=YES                # 设置可写权限
    local_umask=022                    # 匿名用户上传文件的umask值
    dirmessage_enable=YES            # 
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO                        # 是否以独立运行的方式监听服务
    listen_ipv6=YES
    pam_service_name=vsftpd.vu        # 指定PAM文件
    userlist_enable=YES                # 开启用户作用名单文件功能
    tcp_wrappers=YES
    user_config_dir=/etc/vsftpd/vusers_dir
    
    
    systemctl restart vsftpd
    systemctl enable vsftpd
  • 相关阅读:
    DMA+USART重定义打印接口
    FTP初探
    ESP8266-lua开发
    GPIO常见问题分析
    新装系统简介
    java四个元注解的作用
    Linux常用操作指令
    @Autowired 与@Resource的区别(详细)
    内存溢出的几种原因和解决办法
    什么是NIO2
  • 原文地址:https://www.cnblogs.com/hwlong/p/11199133.html
Copyright © 2011-2022 走看看