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