一、文件傳輸協(xié)議
1.FTP協(xié)議
FTP是一種在互聯(lián)網(wǎng)中進行文件傳輸?shù)膮f(xié)議鸵钝,基于客戶端/服務器模式糙臼,默認使用20、21號端口恩商,其中端口20(數(shù)據(jù)端口)用于進行數(shù)據(jù)傳輸变逃,端口21(命令端口)用于接受客戶端發(fā)出的相關FTP命令與參數(shù)。
2.工作模式
FTP協(xié)議有以下兩種工作模式:
主動模式:FTP服務器主動向客戶端發(fā)起連接請求
被動模式:FTP服務器等待客戶端發(fā)起連接請求(FTP的默認工作模式)
二怠堪、vsftpd服務程序
1.常用的vsftpd服務參數(shù)
2.vsftpd服務程序模式
匿名開放模式:一種不安全的認證模式揽乱,任何人都可以無需密碼驗證而直接登陸到FTP服務器
本地用戶模式:是通過Linux系統(tǒng)本地的賬戶密碼信息進行認證的模式,相較于匿名開放模式更安全粟矿,而且配置起來也很簡單凰棉。但是如果被黑客破解了賬戶的信息,就可以暢通無阻地登錄FTP服務器陌粹,從而完全控制整臺服務器
虛擬用戶模式:是這三種模式中最安全的一種認證模式撒犀,它需要為FTP服務單獨建立用戶數(shù)據(jù)庫文件,虛擬出用來進行口令驗證的賬戶信息掏秩,而這些賬戶信息在服務器系統(tǒng)中實際上是不存在的或舞,僅供FTP服務程序進行認證使用。這樣蒙幻,即使黑客破解了賬戶信息也無法登錄服務器映凳,從而有效降低了破壞范圍和影響
3.部署vsftpd
①yum install vsftpd //安裝vsftpd服務
②yum install ftp //安裝ftp命令行工具
③在firewalld圖形界面下開啟ftp端口
(1)匿名開放模式
將以上參數(shù)寫入/etc/vsftpd/vsftpd.conf:
重啟vsftpd服務,將vsftpd服務加入開機啟動項:
systemctl restart vsftpd //重啟vsftpd
systemctl enable vsftpd //將vsftpd加入開機啟動項
此刻邮破,匿名開放模式已經(jīng)部署成功诈豌,現(xiàn)在嘗試一下連接,連接格式如下:
ftp 服務器IP地址
為了保證實驗效果明顯决乎,本地再開一個虛擬機B队询,去連接配置好的虛擬機A:(兩臺機器需要配置好環(huán)境,A需要關閉SELinux构诚,開啟http 21端口蚌斩,B需要安裝ftp命令行工具)
匿名開放模式中name是 anonymous,密碼為空范嘱。
登陸成功之后默認訪問的目錄是/var/ftp送膳,此刻想要有寫入權(quán)限,需要將/var/ftp 目錄的所屬組改為ftp丑蛤,初始所屬組是root叠聋,連接上來的人沒有權(quán)限。
(2)本地用戶模式
修改配置文件如下:
將anonymous_enable=no受裹,是用來關閉匿名開放模式碌补。
此刻用原有的默認賬戶無法登陸虏束,用正常賬戶就能登陸。
使用本地用戶登陸之后厦章,默認訪問的是該用戶的家目錄镇匀,所以不必再修改目錄的權(quán)限,但是這些的前提都是在關閉SELinux之下袜啃。
(3)虛擬用戶模式
①創(chuàng)建用于進行FTP認證的用戶數(shù)據(jù)庫文件汗侵,奇數(shù)行為用戶名,偶數(shù)行為密碼群发。
cd /etc/vsftpd/ //進入vsftpd服務配置文件目錄
vim vuser.list //新建虛擬用戶名單
②加密虛擬用戶列表
db_load -T -t hash -f vuser.list vuser.db
②創(chuàng)建vsftpd服務程序用于存儲文件的根目錄以及虛擬用戶映射的系統(tǒng)本地用戶
由于Linux系統(tǒng)中的每一個文件都有所有者晰韵、所屬組屬性,例如使用虛擬賬戶“張三”新建了一個文件熟妓,但是系統(tǒng)中找不到賬戶“張三”雪猪,就會導致這個文件的權(quán)限出現(xiàn)錯誤。為此滑蚯,需要再創(chuàng)建一個可以映射到虛擬用戶的系統(tǒng)本地用戶浪蹂。簡單來說抵栈,就是讓虛擬用戶默認登錄到與之有映射關系的這個系統(tǒng)本地用戶的家目錄中告材,虛擬用戶創(chuàng)建的文件的屬性也都歸屬于這個系統(tǒng)本地用戶,從而避免Linux系統(tǒng)無法處理虛擬用戶所創(chuàng)建文件的屬性權(quán)限古劲。
為了安全起見斥赋,把這個賬戶設置為不能登陸服務器,避免被黑客得到去做壞事情产艾。
useradd -d /var/ftproot -s /sbin/nologin virtual //添加用戶疤剑,設置其家目錄為/var/ftproot,并設置為不能登陸
chmod -Rf 755 /var/ftproot //為家目錄添加其他用戶權(quán)限
③建立用于支持虛擬用戶的PAM文件
PAM(可插拔認證模塊)是一種認證機制闷堡,通過一些動態(tài)鏈接庫和統(tǒng)一的API把系統(tǒng)提供的服務與認證方式分開隘膘,使得系統(tǒng)管理員可以根據(jù)需求靈活調(diào)整服務程序的不同認證方式。
通俗來講杠览,PAM是一組安全機制的模塊弯菊,系統(tǒng)管理員可以用來輕易地調(diào)整服務程序的認證方式,而不必對應用程序進行任何修改踱阿。PAM采取了分層設計(應用程序?qū)庸芮媒涌趯印㈣b別模塊層)的思想软舌,其結(jié)構(gòu)如圖所示才漆。
vim /etc/pam.d/vsftpd.vu
④在vsftpd服務程序的主配置文件中通過pam_service_name參數(shù)將PAM認證文件的名稱修改為vsftpd.vu,PAM作為應用程序?qū)优c鑒別模塊層的連接紐帶佛点,可以讓應用程序根據(jù)需求靈活地在自身插入所需的鑒別功能模塊醇滥。當應用程序需要PAM認證時,則需要在應用程序中定義負責認證的PAM配置文件,實現(xiàn)所需的認證功能鸳玩。
需要用到的參數(shù)如下:
vim /etc/vsftpd/vsftpd.conf
⑤為虛擬用戶設置不同的權(quán)限焰手,想要讓用戶A有更多的權(quán)限,讀寫修改怀喉,用戶B只有讀權(quán)限
在/var/vsftpd下建立用戶權(quán)限文件目錄vuser_dir书妻,在user_dir中建立文件,以帳戶名為文件名
配置文件中寫入
anon_upload_enable=YES或NO
anon_mkdir_write_enable=YES或NO
anon_other_write_enable=YES或NO
并在主配置文件/etc/vsftpd/vsftpd.conf中添加:
user_config_dir=/etc/vsftpd/vusers_dir
重啟vsftpd服務躬拢,并關閉SELinux躲履,
systemctl restart vsftpd?
setenforce 0
用虛擬賬戶張三、李四分別登陸:
4.簡單文件傳輸協(xié)議
簡單文件傳輸協(xié)議是一種基于UDP協(xié)議在客戶端和服務器之間進行簡單文件傳輸?shù)膮f(xié)議聊闯,占用端口69工猜。
缺點:不如ftp功能強大,不能遍歷目錄菱蔬,在安全性方面也比較弱篷帅。
優(yōu)點:減少了無謂的系統(tǒng)和帶寬消耗
部署TFTP:
(1)安裝tftp
yum install tftp-server tftp -y
(2)修改配置文件/etc/xinetd.d/tftp
(3)重啟tftp服務,加入開機啟動項拴泌,并開啟相應防火墻端口
systemctl restart xinetd
systemctl enable xinetd
TFTP的根目錄/var/lib/tftproot魏身,當用tftp服務登陸時候默認訪問該目錄。