天天看點

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/

今天越懶,明天要做的事越多。

繼續閱讀