簡介
vsftpd是一個完全免費的、開放源代碼的ftp服務器軟件
安裝
yum -y install vsftpd
注意:
- yum需要管理員權限,根據情況使用sudo
- rpm -qa|grep vsftpd 可以查看是否已經安裝vsftpd
- 默認配置文件在/etc/vsftpd/vsftpd.conf
創建虛擬用戶
- 選擇在根或者用戶目錄下創建ftp文件夾:mkdir ftpfile ,eg:/ftpfile
- 添加匿名用戶:useradd ftpuser -d /ftpfile -s /sbin/nologin (這個用戶是沒有登錄linux的權限的)
- 修改ftpfile文件夾權限: chown -R ftpuser.ftpuser /ftpfile
- 重設ftpuser密碼:passwd ftpuser
配置
- 在/etc/vsftpd中,創建chroot_list文件
-
在choot_list目錄中添加剛才的用戶(ftpuser)
chroot_list.png
3.配置vsftpd.conf文件
- 配置local_root指向剛剛創建的ftp目錄(當本地用戶登入時,將被更換到定義的目錄下,默認值為各用戶的家目錄))
local_root=/ftpfile - 配置anonymous_enable設置為NO,不允許匿名用戶登錄
anonymous_enable=NO - 配置chroot_list相關
chroot_local_user=NO(用于指定用戶列表文件中的用戶是否允許切換到上級目錄)
chroot_list_enable=YES(設置是否啟用chroot_list_file配置項指定的用戶列表文件)
chroot_list_file=/etc/vsftpd/chroot_list(用于指定用戶列表文件) - 配置use_localtime(默認是GMT時間,改成使用本機系統時間)
use_localtime=YES - 配置PASV工作模式
FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
(1)PORT(主動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。
當需要傳送數據時,客戶端在命令鏈路上用 PORT命令告訴服務器:“我打開了****端口,你過來連接我”。于是服務器從20端口向客戶端的****端口發送連接請求,建立一條數據鏈路來傳送數據。
(2)PASV(被動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。
當需要傳送數據時,服務器在命令鏈路上用 PASV命令告訴客戶端:“我打開了****端口,你過來連接我”。于是客戶端向服務器的****端口發送連接請求,建立一條數據鏈路來傳送數據。
從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。
pasv_enable=YES(PASV工作模式)
pasv_min_port=61001(被動模式使用端口范圍最小值)
pasv_max_port=62000(被動模式使用端口范圍最大值)
- 修改/etc/selinux/config,修改為SELINUX=disabled(否則會出現550拒絕訪問)
注:配置完后要重啟linux服務器 - 關閉防火墻 修改/etc/sysconfig/iptables,然后重啟防火墻服務service iptables restart
- 重啟vsftpd服務 service vsftpd restart
驗證
- 方式一:在瀏覽器輸入ftp://{ip:}登錄即可
- 方式二:在linux下安裝ftp客戶端,連接驗證(ftp {ip}即可)