Centos7 FTP服務安裝,Centos FTP安裝配置


 

一、安裝FTP服務端

yum  install -y vsftpd

 

安裝ftp客戶端(可省略)

yum  install -y ftp

 

二、FTP服務配置

1、進入FTP配置文件目錄

cd /etc/vsftpd

 

2、備份配置文件vsftpd.conf和去掉所有注釋

mv vsftpd.conf vsftpd.conf.bak
grep -v "#" vsftpd.conf.bak > vsftpd.conf 

 

3、編輯配置文件

vi vsftpd.conf

 

修改的內容

 
#修改
#是否支持匿名用戶,默認YES,改成NO表示需要用戶名密碼登錄不允許匿名登錄
anonymous_enable=NO
 
#匿名上傳。首先,文件系統上用戶的家目錄,要具備寫權限。其次,ftp服務器要開啟允許匿名上傳的配置
anon_upload_enable=YES
 
#以下取消注釋
#允許匿名用戶上傳,建立目錄
anon_mkdir_write_enable=YES
 
#默認只能下載全部讀的文件。這句話的意思是說,如果啟動了這句話,則匿名用戶只能下載所有用戶都具備讀權限的文件。如果有一個文件,有一個用戶不劇本讀權限,匿名用戶就不能夠下載。
anon_world_readable_only=YES
 
#匿名用戶能否刪除和修改上傳的文件
anon_other_write_enable=YES
 
#指定匿名上傳文件的umask值。umask的值可以直接影響到上傳文件的權限。
anon_umask=077
 
#指定上傳文件的默認的所有者和權限。 完成了這些指定之后,匿名用戶上傳的元數據就是我們指定的那些內容。
chown_uploads=YES
#chown_username=wang
#chown_upload_mode=0644
 
#所有系統用戶都映射成guest用戶,但是映射的guest賬戶,需要人為地去指定下。
#guest_enable=YES
#guest_username=vsftpd
 
#是否允許Linux用戶登陸,默認是允許的,當然也可以禁止。
local_enable=YES
 
#是否允許Linux用戶上傳文件,如果用戶默認允許登陸的話,linux用戶登陸成功之后,默認位於自己的家目錄,這時是允許上傳文件的。 如果將下面的這句話,改成no,則服務拒絕linux用戶上傳文件,即便位於自己的家目錄也不可以。
#write_enable=YES
 
#指定系統用戶上傳文件的默認權限
#local_umask=022
 
#非匿名用戶登錄所在目錄,當使用Linux用戶登陸成功之后,就不會默認在自己的家目錄了。相反,會位於下面指定的目錄里。
#local_root=/ftproot
 
#禁錮所有的用戶在家目錄中的意思是說,用戶登陸成功之后,不能夠隨意切換目錄,只能夠在自己的家目錄中進行操作。
chroot_local_user=YES
 
#ASCII碼支持
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
 
#登錄提示信息
ftpd_banner=Welcome to FTP server.  
# 這一句話優先生效
#banner_file=/etc/vsftpd/ftpbanner.txt
 
#設置是否使用當地時間。默認就是YES
use_localtime=YES
 
#虛擬用戶建立獨立的配置文件
user_config_dir=/etc/vsftpd/conf
 
listen_port=21
virtual_use_local_privs=YES
 
##被動模式端口
pasv_min_port=40000
pasv_max_port=40010
 
# 被動模式數據連接超時時長,時間單位是秒
accept_timeout=10
#主動模式數據連接超時時長,時間單位是秒
connect_timeout=10
#數據連接無數據輸超時時長,時間單位是秒
data_connection_timeout=300
# 無命令操作超時時長,時間單位是秒
idle_session_timeout=300
 
allow_writeable_chroot=YES

 

 

三、創建虛擬用戶

創建虛擬用戶,是為了避免FTP用戶直接登錄到服務器

1、創建虛擬用戶配置文件

vi ftp_user.conf

 

增加內容:奇數行是賬號,偶數行是密碼,下面第一行是賬號,第二行是密碼

ftpuser
ftpuser123

 

2、加密虛擬用戶配置文件

db_load -T -t hash -f ftp_user.conf ftp_user.db

如果沒有db_load命令,需要安裝:yum install db4 db4-utils

改變權限和刪除未加密的配置

chmod 600 ftp_user.db
rm -f  ftp_user.conf

 

3、修改FTP的訪問權限

先備份

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

修改權限文件

vi /etc/pam.d/vsftpd

先將配置文件中原有的 auth 及 account 的所有配置行均注釋掉(不注釋掉虛擬用戶會登錄不上),添加兩行信息

auth required pam_userdb.so db=/etc/vsftpd/ftp_user
account required pam_userdb.so db=/etc/vsftpd/ftp_user

 

4、增加虛擬用戶,只能登錄FTP,不能登錄后台

useradd -d /home/ftpuser -s /sbin/nologin ftpuser

修改文件夾的擁有者

chown -R ftpuser:ftpuser /home/ftpuser

 

5、虛擬用戶配置文件

創建虛擬用戶配置文件目錄

mkdir -p /etc/vsftpd/conf

 

創建虛擬用戶的配置文件(ftpuser文件和剛才創建的數據庫文件的用戶名必須一致)

vi /etc/vsftpd/conf/ftpuser

 

增加的內容:

#用戶的默認登陸目錄。也就是FTP用戶登陸成功之后的默認路徑。
local_root=/home/ftpuser/ftpuser
write_enable=YES
anon_world_readable_only=NO
#虛擬用戶上傳權限
anon_upload_enable=YES
#虛擬用戶創建文件夾
anon_mkdir_write_enable=YES
## 虛擬的其他用戶對指定用戶目錄的寫權限
anon_other_write_enable=YES

 

創建FTP傳輸目錄,對應上面的 local_root 配置項

mkdir -p /home/ftpuser/ftpuser
chown ftpuser:ftpuser /home/ftpuser/ftpuser
chmod 775 /home/ftpuser/ftpuser

 

四、開放FTP端口和FTP服務

firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --permanent --zone=public --add-port=21/tcp 
 
#被動模式的端口
firewall-cmd --permanent --zone=public --add-port=40000-40010/tcp
 
#重新加載生效
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --zone=public --list-ports

 

 

五、FTP啟動和設置自動啟動

#啟動
systemctl start vsftpd
#設置自動啟動
systemctl enable vsftpd

 

#查看狀態
systemctl status vsftpd.service
#重啟
systemctl restart vsftpd

 

六、FTP訪問地址

ftp://192.168.10.100/

 

 

七、錯誤解決

1、500 OOPS: vsftpd: cannot locate user specified in 'guest_username':vsftpd

 注釋下面的配置
#guest_enable=YES
#guest_username=vsftpd

 

八、其它命令

#安裝filezilla
yum install -y filezilla
運行filezilla
filezilla &
 
#Selinux方式:查看防火牆狀態
getenforce
 
#permissive表示:放任的;縱容的;姑息的;
 
#臨時關閉:setenforce 0
setenforce 0 ->permissive
 
#永久關閉:vim /etc/sysconfig/selinux
將selinux=cnforcing改為selinux=disable
 
 
Firewall
1.關閉防火牆:service firewalld stop
 
2.關閉防火牆:systemctl stop firewalld.service
 
3.禁止防火牆開機啟動:systemctl disable firewalld.service
 
4,查看防火牆狀態:firewall-cmd --state

 

 

 

 

(時間寶貴,分享不易,捐贈回饋,^_^)

 

================================

©Copyright 蕃薯耀 2022-04-19

https://www.cnblogs.com/fanshuyao/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM