国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用虛擬用戶賬號(hào)訪問(wèn)基于linux的FTP服務(wù)器

2014-10-10 16:58:11邵雨舟
電腦知識(shí)與技術(shù) 2014年24期
關(guān)鍵詞:配置文件

摘要:FTP是文件傳輸協(xié)議的縮寫(xiě),它是Internet最早提供的網(wǎng)絡(luò)服務(wù)功能之一,利用FTP服務(wù)可以實(shí)現(xiàn)文件的上傳及下載等相關(guān)的文件傳輸服務(wù)。 Linux的FTP服務(wù)器根據(jù)服務(wù)的對(duì)象可以支持3種用戶:匿名帳戶、本地帳戶、虛擬用戶 。其中虛擬用戶的配置比較麻煩,虛擬用戶是FTP專有用戶,使用虛擬用戶登錄FTP只能訪問(wèn)FTP服務(wù)器提供的資源,大大增強(qiáng)了系統(tǒng)的安全,虛擬用戶不能用這些用戶名登錄到服務(wù)器中,而只能登錄到FTP。該文將對(duì)虛擬用戶的配置和使用加以介紹。

關(guān)鍵詞:虛擬用戶;FTP ;配置文件;權(quán)限

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)24-5620-04

從FTP服務(wù)器的安全角度考慮,可以為不同的訪問(wèn)者設(shè)置不同的訪問(wèn)賬號(hào)。對(duì)于系統(tǒng)中的合法用戶,可以用本地用戶賬號(hào)以/etc/passwd中的用戶名為認(rèn)證方式,當(dāng)這類用戶登錄FTP服務(wù)器的時(shí)候,其默認(rèn)的主目錄就是他們的home目錄;在服務(wù)器上沒(méi)有賬戶的的用戶,使用匿名(anonymous或ftp)身份獲取公共資源,不需要密碼。登錄后默認(rèn)進(jìn)入/var/ftp服務(wù)目錄(當(dāng)然也可以根據(jù)需要自己建立目錄);FTP服務(wù)器為虛擬用戶建立專有的用戶,將賬號(hào)及密碼保存在賬號(hào)數(shù)據(jù)庫(kù)中,采用非系統(tǒng)賬戶訪問(wèn)服務(wù)器資源,相對(duì)于FTP的本地用戶而言,虛擬用戶只能訪問(wèn)FTP共享資源,而不能登錄linux服務(wù)器,增強(qiáng)了系統(tǒng)安全性。

通常,匿名帳戶可以很好的保證FTP服務(wù)器的安全性,但是,對(duì)匿名用戶的權(quán)限管理不夠靈活。如果想對(duì)訪問(wèn)FTP的帳戶給予更多的權(quán)限,就要使用本地帳戶來(lái)實(shí)現(xiàn)。但是,本地帳戶默認(rèn)情況下是可以登陸Linux系統(tǒng)的,這樣對(duì)Linux系統(tǒng)來(lái)說(shuō)是一個(gè)安全隱患。那么怎么能在靈活的賦予FTP用戶權(quán)限的前提下,保證FTP服務(wù)器乃至整個(gè)Linux系統(tǒng)的安全呢?

使用虛擬用戶就是一種解決辦法。虛擬用戶,顧名思義,并不是一個(gè)合法的Linux系統(tǒng)帳戶,但是他可以用來(lái)登陸該系統(tǒng)上運(yùn)行的FTP服務(wù)器,當(dāng)用戶在連接上FTP服務(wù)器后,會(huì)被要求輸入用戶名和密碼,F(xiàn)TP服務(wù)器在拿到這個(gè)用戶名和密碼后,會(huì)調(diào)用相應(yīng)的PAM認(rèn)證模塊對(duì),和系統(tǒng)中的FTP認(rèn)證文件進(jìn)行相比較。如果該用戶名和密碼與FTP認(rèn)證文件中的某條記錄相符,就可以通過(guò)認(rèn)證,此時(shí)該帳戶就被映射成一個(gè)Linux下的本地帳戶,然后就可以使用該本地帳戶對(duì)FTP資源進(jìn)行訪問(wèn),否則就斷開(kāi)該連接請(qǐng)求。

在FTP服務(wù)器上創(chuàng)建虛擬用戶的步驟如下:

建立虛擬用戶口令文件

生成vsftpd的認(rèn)證文件

建立虛擬用戶所需的PAM配置文件

建立虛擬用戶訪問(wèn)所需要的目錄

修改vsftpd.conf配置文件。

定義虛擬用戶的配置文件

下面我們通過(guò)一個(gè)應(yīng)用實(shí)例來(lái)介紹在FTP服務(wù)器上創(chuàng)建虛擬用戶。

要求:添加三個(gè)FTP虛擬用戶user1、user2、user3

設(shè)置用戶訪問(wèn)及文件權(quán)限控制:

User1:有瀏覽目錄、上傳、改名、刪除等權(quán)限;

User2:有瀏覽目錄、上傳、下載權(quán)限;

User3:有瀏覽目錄、下載的權(quán)限,速度為20k;

對(duì)于以上3個(gè)用戶可以登陸FTP服務(wù)器,但不能登陸到linux系統(tǒng),這樣可以保證FTP服務(wù)器的安全。

1 建立虛擬用戶的口令庫(kù)文件

首先我們需要?jiǎng)?chuàng)建一個(gè)文本文件(這個(gè)文本文件的命名是任意的):ftpuser.txt ,在文件中為每個(gè)虛擬用戶建立一個(gè)登錄賬號(hào)和口令,要求登錄賬號(hào)和口令都要單獨(dú)占用一行。

其中:奇數(shù)行為虛擬用戶名,偶數(shù)行為相應(yīng)的口令,在該文件中,不要存在空格和空行。

2 生成虛擬用戶的認(rèn)證數(shù)據(jù)庫(kù)文件

把剛才建立的虛擬用戶口令庫(kù)文件通過(guò)db_load命令生成FTP服務(wù)器的認(rèn)證的數(shù)據(jù)庫(kù)文件,該認(rèn)證文件是一個(gè)被加密后的密文。用戶訪問(wèn)FTP服務(wù)器的時(shí)候,F(xiàn)TP服務(wù)器的vsftpd服務(wù)程序把用戶的請(qǐng)求發(fā)送到PAM模塊進(jìn)行認(rèn)證。PAM在調(diào)用相應(yīng)的認(rèn)證模塊后,會(huì)對(duì)從FTP服務(wù)器發(fā)來(lái)的用戶名和密碼進(jìn)行加密,然后再和該數(shù)據(jù)庫(kù)文件進(jìn)行對(duì)比,發(fā)現(xiàn)相符條目后,登陸用戶才會(huì)被允許登陸。

圖1 PAM工作原理示意圖

可以使用db_load命令將用戶文本信息文件轉(zhuǎn)換為db數(shù)據(jù)庫(kù)并按照hash方式進(jìn)行加密。

db_load是軟件包db4_utils帶的命令,在RHEL5上沒(méi)有安裝,需要安裝db4_utils這個(gè)軟件包才支持db_load命令。db4-utils-4.3.29-9.fc6.i386.rpm在安裝盤(pán)的Server目錄中。

db_load命令一定要在運(yùn)行:rpm —ivh db4-utils-4.3.29-9.fc6.i386.rpm 命令后才能使用。

db_load命令使用格式如下:

#db_load —T —t hash —f ftpuser.txt /etc/vsftpd/vuser.db

其中:

選項(xiàng):-T 允許應(yīng)用程序能夠?qū)⑽谋疚募D(zhuǎn)譯載入進(jìn)數(shù)據(jù)庫(kù)。由于我們是將虛擬用戶的信息以文件方式存儲(chǔ)在文件里的,所以必須要使用這個(gè)選項(xiàng)。

因?yàn)槭褂昧诉x項(xiàng)-T,那么一定要使用子選項(xiàng) —t ;子選項(xiàng)-t放在-T選項(xiàng)后,用來(lái)指定轉(zhuǎn)譯載入的數(shù)據(jù)庫(kù)類型,hash就是使用hash碼加密。

選項(xiàng):-f 參數(shù)后面接包含用戶名和密碼的文本文件。

最后一項(xiàng)是生成的數(shù)據(jù)庫(kù)的路徑和文件名,該文件必須放在“/etc/vsftpd/”中。

由于vsftpd的認(rèn)證文件vuser.db里保存了所有虛擬用戶的用戶名和密碼,為了增強(qiáng)其安全性,應(yīng)當(dāng)設(shè)置只有root才可以查看。

#chmod 600 /etc/vsftpd/vuser.db ;修改數(shù)據(jù)庫(kù)權(quán)限

3 創(chuàng)建虛擬用戶使用的PAM認(rèn)證文件 /etc/pam.d/vsftpd

在Linux中,大多數(shù)程序都定義使用叫做PAM的方法進(jìn)行身份認(rèn)證,PAM是一個(gè)可插入式的、模塊化的結(jié)構(gòu),它為系統(tǒng)管理員設(shè)置用戶身份驗(yàn)證政策提供了很大的靈活性。

一個(gè)支持PAM的應(yīng)用程序的默認(rèn)PAM配置文件就可以滿足一般的要求。但是在有些情況下,還是需要對(duì)PAM配置文件進(jìn)行特殊的配置。因?yàn)槿绻麑?duì)PAM進(jìn)行了錯(cuò)誤的配置可能會(huì)導(dǎo)致系統(tǒng)的安全性被破壞,所以在對(duì)這些文件進(jìn)行配置前必須對(duì)這些文件的結(jié)構(gòu)有一定的了解。

每個(gè)支持PAM的應(yīng)用程序或服務(wù)都在/etc/pam.d/目錄中有一個(gè)對(duì)應(yīng)的文件,這個(gè)對(duì)應(yīng)的文件名稱與它們所控制訪問(wèn)的服務(wù)名稱相同。支持 PAM 的應(yīng)用程序需要定義它們的服務(wù)名并在/etc/pam.d/目錄中安裝它們自己的PAM配置文件。例如vsfptd程序定義了它的服務(wù)名為vsftpd,并安裝/etc/pam.d/vsftpd配置文件。這里要注意,該文件名要與FTP服務(wù)主配置文件(/etc/vsftpd/vsftpd.conf)中的pam_service_name=vsftpd選項(xiàng)的選項(xiàng)值相同。

PAM配置文件用于為應(yīng)用程序提供用戶認(rèn)證控制(本地和虛擬賬號(hào)登陸)。

如果是本地賬戶登陸,則認(rèn)證文件名必須是:/etc/pam.d/vsftpd;

如果只用虛擬賬號(hào)登陸,則文件名為:vsftpd.vu;

將虛擬用戶的配置寫(xiě)入本地用戶的驗(yàn)證文件,就可以實(shí)現(xiàn)本地用戶和虛擬同時(shí)登錄ftp。

配置命令如下:

#vi /etc/pam.d/vsftpd

#%PAM-1.0

auth sufficient pam_userdb.so db=/etc/vsftpd/vusers

account sufficient pam_userdb.so db=/etc/vsftpd/vusers

session optional pam_keyinit.so force revoke

auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

auth required pam_shells.so

auth include system_ayth

account include system_ayth

session include system_ayth

session required pam_loginuid.so

參數(shù)如下。

auth :是authentication(認(rèn)證)的縮寫(xiě),認(rèn)證、授權(quán)(檢查用戶的名字、密碼正確與否);

account:是賬戶,檢查用戶的帳戶是否到期、禁用等;

pam_userdb.so:說(shuō)明使用數(shù)據(jù)庫(kù)驗(yàn)證;db=庫(kù)文件名,后綴名.db可以不用寫(xiě);

Sufficient:表示遞歸查找,最上2行表示虛擬用戶配置文件,下面的都是本地用戶配置文件。當(dāng)上面查找不到時(shí),再查找下面的。如果為required,則只能登錄虛擬用戶。

該文件第一行是注釋行,由該行行首的井字號(hào)(#)標(biāo)示。

注意:pam文件中db后面的數(shù)據(jù)庫(kù)不能加擴(kuò)展名。

在此文件中,只有第二行和第三行是虛擬用戶認(rèn)證設(shè)置行,必須要放在其他行的前面。其他行可以不用管它。

4 建立虛擬用戶及所要訪問(wèn)的目錄并設(shè)置相應(yīng)的權(quán)限

建立虛擬用戶對(duì)應(yīng)的系統(tǒng)賬號(hào) virtual,虛擬用戶賬戶不能登錄系統(tǒng),只能用于訪問(wèn)FTP服務(wù)器。通過(guò)下列命令建立vsftpd虛擬用戶所需的系統(tǒng)本地帳號(hào)virtual:

# useradd -s /sbin/nologin virtual

其中選項(xiàng): -s /sbin/nologin 表示指定shell環(huán)境,不允許登錄系統(tǒng)。

創(chuàng)建虛擬用戶要訪問(wèn)的目錄:

# mkdir /home/virtual

虛擬用戶必須有一個(gè)宿主目錄,否則虛擬用戶無(wú)法登陸。

建立的虛擬用戶的宿主目錄默認(rèn)都是700權(quán)限,由于/home/virtual是公共目錄,是不允許普通用戶修改、添加、刪除和重命名的,所以將其改成500(讀+執(zhí)行)即可。

# chmod o+rw /home/virtual

5設(shè)置vsftpd.conf配置文件

在vsftpd.conf配置文件中添加虛擬用戶的配置項(xiàng),內(nèi)容如下:

#vi /etc/vsftpd/vsftpd.conf

write_enable=YES

anonymous_enable=NO ;禁用匿名用戶登錄

local_enable=YES ;啟用本地用戶登錄是為了能夠讓虛擬用戶登錄

chroot_local_user=YES ;將所有本地用戶限制在自己的目錄中

pam_service_name=vsftpd ;配置vsftpd使用的PAM模塊為vsftpd

user_config_dir=/etc/vsftpd/vs_dir ;設(shè)置虛擬賬戶配置文件的主目錄為 /users_config

注意,在vsftpd.conf主配置文件中這里千萬(wàn)不要添加:guest_enable=yes和guest_username=virtual 這2行,否則本地用戶無(wú)法寫(xiě)入文件,就算權(quán)限足夠也不行。

為了保證服務(wù)器的安全,需要關(guān)閉匿名訪問(wèn)及與匿名相關(guān)的設(shè)置;虛擬用戶會(huì)映射為服務(wù)器的系統(tǒng)賬號(hào),所以需要開(kāi)啟本地用戶的支持。

6 創(chuàng)建虛擬用戶配置文件目錄

為了實(shí)現(xiàn)對(duì)不同虛擬用戶的權(quán)限設(shè)置,要為不同的虛擬用戶各自定義一個(gè)配置文件,這些配置文件要放在vsftpd.conf 文件中有user_config_dir選項(xiàng)定義的路徑中。

在此,我們創(chuàng)建虛擬用戶配置文件的主文件夾為/etc/vsftpd/vs_dir,并在此文件夾下建立虛擬用戶user1、user2和user3的配置文件。

# mkdir /etc/vsftpd/vs_dir

7 創(chuàng)建虛擬用戶的各自宿主目錄

#mkdir /home/virtual/user1_folder

#mkdir /home/virtual/user2_folder

#mkdir /home/virtual/user3_folder

#chown virtual /home/virtual/ user1_folder

#chown virtual /home/virtual/ user2_folder

#chown virtual /home/virtual/ user3_folder

8 創(chuàng)建虛擬用戶配置文件

1) 編輯user1用戶的需求配置文件:有瀏覽目錄、上傳、改名、刪除等權(quán)限

# vi /etc/vsftpd/vs_dir/user1

guest_enable=YES 開(kāi)啟虛擬賬戶登錄

guest_username=virtual 設(shè)置虛擬用戶的賬戶為virtual

anon_world_readable_only=NO 允許用戶瀏覽FTP目錄和下載文件

anon_other_write_enable=YES 允許進(jìn)行文件改名和刪除文件的權(quán)限

anon_mkdir_write_enable=YES 表示用戶具有建立和刪除目錄的權(quán)利

anon_upload_enable=YES 表示用戶可以上傳文件

local_root=/home/virtual/user1_folder

2) 編輯user2用戶的需求配置文件:有瀏覽目錄、上傳、下載權(quán)限

# vi /etc/vsftpd/vs_dir/user2

guest_enable=YES

guest_username=virtual

anon_world_readable_only=NO

anon_mkdir_write_enable= NO

anon_other_write_enable= NO

anon_upload_enable=YES

local_root=/home/virtual/user2_folder

3) 編輯user3用戶的需求配置文件:有瀏覽目錄、下載的權(quán)限,速度為20k

#vi /etc/vsftpd/vs_dir/user3

guest_enable=YES

guest_username=virtual

anon_world_readable_only=NO

anon_mkdir_write_enable= NO

anon_other_write_enable= NO

local_root=/home/virtual/ user3_folder

anon_max_rate=20000

9 最后重啟vsftpd服務(wù)即可

#service vsftpd start

分別以三個(gè)用戶登錄,驗(yàn)證結(jié)果。如果設(shè)置虛擬賬號(hào)后,再用匿名賬號(hào)登陸,就會(huì)出項(xiàng):Reading non-root config file 的錯(cuò)誤提示,導(dǎo)致匿名賬號(hào)無(wú)法登陸。

可以采取如下措施解決:在虛擬賬號(hào)用戶的配置文件目錄下創(chuàng)建一個(gè)名稱為ftp的空文件即可。

# touch /etc/vsftpd/vs_dir/ftp

猜你喜歡
配置文件
基于Docker的實(shí)時(shí)數(shù)據(jù)處理系統(tǒng)配置文件管理軟件的設(shè)計(jì)與實(shí)現(xiàn)
提示用戶配置文件錯(cuò)誤 這樣解決
掌握顏色查找表的魔力
從Windows 10中刪除所有網(wǎng)絡(luò)配置文件
用軟件處理Windows沙盒配置文件
搭建簡(jiǎn)單的Kubernetes集群
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心設(shè)計(jì)與實(shí)現(xiàn)
忘記ESXi主機(jī)root密碼怎么辦
為View桌面準(zhǔn)備父虛擬機(jī)
志丹县| 南雄市| 馆陶县| 亳州市| 和平区| 察雅县| 九江县| 巴青县| 富裕县| 福泉市| 鄂托克旗| 沁阳市| 广平县| 阿拉善左旗| 尉犁县| 苏州市| 惠州市| 山阳县| 富蕴县| 湟中县| 洛扎县| 开平市| 陆川县| 江都市| 武威市| 鄱阳县| 拜泉县| 贡觉县| 塔河县| 霍城县| 泰来县| 封丘县| 竹北市| 交口县| 乌拉特中旗| 油尖旺区| 郧西县| 资阳市| 河池市| 宁海县| 满洲里市|