linux搭建FTP服务器并整合Nginx
操作系统:Centos7
1.1、服务器配置
# 关闭SELINUX,把SELINUX=enforcing改为SELINUX=disabled,reboot重启服务器生效 vim /etc/sysconfig/selinux SELINUX=disabled # 开放21端口 firewall-cmd --zone=public --add-port=21/tcp --permanent # 开放ftp服务 firewall-cmd --add-service=ftp --permanent # 重新加载防火墙 firewall-cmd --reload # 查看21端口是否开放 firewall-cmd --zone=public --query-port=21/tcp # 查看ftp服务是否开放 firewall-cmd --query-service=ftp # 新建一个不能登录系统用户,只用来登录ftp服务。这里如果没设置用户目录,默认是在home下。 useradd ftpuser -s /sbin/nologin # 设置密码 echo "foo" | passwd --stdin ftpuser
```
500 OOPS: vsftpd: refusing to run with writable root inside chroot() #从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报误。 #要修复这个错误,可以用命令chmod a-w /home/ftpuser 去除用户主目录的写权限,注意把目录替换成你自己的。
#或者你可以在vsftpd的配置文件中增加下列项: allow_writeable_chroot=YES ```
# 查看目录权限
ll -d /home/ftpuser/
drwx------. 2 ftpuser ftpuser 62 9月 19 14:04 /home/ftpuser/
# 去除用户主目录的写权限
chmod a-w /home/ftpuser dr-x------. 2 ftpuser ftpuser 62 9月 19 14:04 /home/ftpuser/
1.2、安装vsftpd
yum -y install vsftpd # vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件: # vsftpd.conf 为主要配置文件 # ftpusers 配置禁止访问FTP服务器的用户列表 # user_list 配置用户访问控制------这里的用户默认情况(即在/etc/vsftpd/vsftpd.conf中设置了userlist_deny=YES)下也不能访问FTP服务器
1.3、配置vsftpd.conf
# 禁用匿名用户,YES改为NO anonymous_enable=NO # 禁止切换根目录 chroot_local_user=YES
1.4、启动vsftpd
#
systemctl start vsftpd.service
#查看vsftpd状态
systemctl status vsftpd.service
1.5、安装ftp客户端
yum install -y ftp
1.6、登录ftp服务器(推荐,这种方式在出错的情况下可以看到错误信息的输出)
ftp 192.168.0.183
2.1、安装Nginx
2.2、配置Nginx
修改nginx.conf
#user nginx;
user ftpuser;
在conf.d下增加ftp_server.conf
server { listen 8080; server_name localhost; #charset koi8-r; access_log /var/log/nginx/ftp.access.log main; location / { # 指定到ftp文件位置 root /home/ftpuser; index index.html index.htm; } }