1. 程式人生 > >Linux的ftp服務

Linux的ftp服務

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服務