操作系統: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; } }
