Linux的ftp服務
1.FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。 基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議以傳輸文件。在FTP的使用當中,用戶經常遇到兩個概念:"下載" (Download)和"上傳"(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上傳"文件就是將文件從自己的計算機中拷貝至 遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。
2.安裝ftp
( 1)配置IP地址
hostnamectl set-hostname ftp_server.example.com
(2)yum install vsftpd -y 安裝服務
(3)systemctl start vsftpd 啟動服務
systemctl enable vsftpd 開機自動啟動
(4)systemctl stop firewalld 設置防火墻允許ftp通過
或者使用圖形界面
firewall-config
選擇permanent,ftp,點擊options,reload完成允許ftp通過
(5)setenforce 0 關閉selinux,由於selinux改變配置文件後,需要重新加載內核
(6)reboot
(7)lftp 172.25.254.128 能登陸並且顯示,表示安裝成功
3.vsftpd文件信息
/var/ftp/pub 默認發布目錄pub
/etc/vsftpd.conf 配置目錄
4.vsftpd服務的配置參數
(1)匿名用戶設定
匿名用戶登陸限制
anonymous_enable=NO | YES
匿名用戶上傳
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
匿名用戶下載
anon_world_readable_only=YES|NO 設定參數值為no表示匿名用戶可以下載
匿名用戶刪除
anon_other_write_enable=YES|NO
匿名用戶建立目錄
anon_mkdir_write_enable=YES|NO
匿名用戶家目錄修改
anon_root=/direcotry
匿名用戶上傳文件默認權限修改
anon_umask=xxx
匿名用戶使用的用戶身份修改
chown_uploads=YES
chown_username=student
最大上傳速率
anon_max_rate=102400(單位為kb,表示最大傳輸速度100M)
最大鏈接數
max_clients=2(表示最多連接2臺主機)
(2)本地用戶設定
本地用戶登陸限制
local_enable=YES|NO
write_enable=YES|NO 本地用戶寫權限限制,如果關閉,本地匿名都無法寫入
本地用戶家目錄修改
local_root=/directory
本地用戶上傳文件權限
local_umask=xxx
原本local_umask=022
更改umask=002
權限發生變化
限制本地用戶瀏覽/目錄
所有用戶被鎖定到自己的家目錄中
chroot_local_user=YES
chmod u-w /home/*
用戶白名單建立
chroot_local_user=YES 可以瀏覽/目錄
chroot_list_enable=YES 啟用名單
chroot_list_file=/etc/vsftpd/chroot_list 寫入名單內的可以瀏覽/目錄
用戶黑名單建立
chroot_local_user=NO 無法瀏覽/目錄
chroot_list_enable=YES 啟用名單
chroot_list_file=/etc/vsftpd/chroot_list 寫入名單內的無法瀏覽/目錄
限制本地用戶登陸
vim /etc/vsftpd/ftpusers 用戶永久黑名單
vim /etc/vsftpd/user_list 用戶臨時黑名單
添加westos用戶到/etc/vsftpd/ftpusers
westos用戶無法登陸
用戶白名單設定
userlist_deny=NO 在/etc/vdftp/vsftpd.conf配置文件裏新加 userlist_deny=NO
/etc/vsftpd/user_list 啟用userlist_deny=NO 參數設定後,此文件變成用戶白名單,只在名單中出現的用戶可以登陸ftp
4.ftp虛擬用戶的設定
創建虛擬帳號身份
vim /etc/vsftpd/loginusers 編寫用戶密碼文件(文件名稱任意)
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db 用hash算法加密文件
vim /etc/pam.d/ckvsftpd 用pam.d插件關聯加密文件和配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd
guest_enable=YES
使用ftpuser1賬戶登陸成功
在配置文件中加入guest_username=用戶,虛擬帳號指定本地身份登陸
guest_username=ftpuser(本地用戶)
chmod u-w /home/ftpuser
指定ftp用戶登陸
虛擬帳號家目錄獨立設定
建立獨立用戶目錄
vim /etc/vsftpd/vsftpd.conf 打開vstfpd配置文件,在最後面寫入下面兩行配置
local_root=/vuserdir/$USER 不同賬戶進入自己的獨立目錄
user_sub_token=$USER 聲明配置文件中的$USER 就是shell中的變量
虛擬帳號配置獨立權限
vim /etc/vsftpd/vsftpd.conf 打開配置文件
user_config_dir=/etc/vsftpd/userconf 在最後一行寫入獨立權限配置文件,userconf為一個目錄
創建目錄
mkdir -p /etc/vsftpd/userconf
在創建目錄中新建配置獨立的配置文件,文件名為獨立用戶的用戶名
vim /etc/vsftpd/userconf/ftpuser1
在此文件中設定配置文件中的所有參數,此文件的優先級高,寫入ftpuser1可以上傳文件配置信息
實驗結果,ftpuser1可以上傳文件,ftpuser2不能上傳文件
Linux的ftp服務