一、安装Nginx
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
systemctl disable firewalld
yum -y install ntpdate
ntpdate ntp1.aliyun.com
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
二、安装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认证的用户数据库文件,其中奇数行为账户名,偶数行为密码
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
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