Loading

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

 

posted @ 2019-07-17 10:09  KubeSec  阅读(558)  评论(0编辑  收藏  举报