一、安裝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/