日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用vsftp虚拟用户实现安全访问控制

發(fā)布時(shí)間:2023/12/6 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用vsftp虚拟用户实现安全访问控制 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、ftp連接方式

1、命令連接

? ?ftp在與用戶交互時(shí),首先打開的是TCP的21號(hào)端口,建立命令連接,這個(gè)連接會(huì)始終存在,直到用戶輸入bye的那一刻,才斷開命令連接。

2、數(shù)據(jù)連接

? ?1)主動(dòng)連接

? ?主動(dòng)連接是基于TCP21號(hào)端口的,這種方式下,是ftp服務(wù)器主動(dòng)去連接客戶端的,而客戶端該使用哪個(gè)端口來響應(yīng)這個(gè)請(qǐng)求呢?在這種情況下,ftp服務(wù)器和客戶端就會(huì)達(dá)成一個(gè)共識(shí):ftp服務(wù)器主動(dòng)連接請(qǐng)求的端口是用于命令連接的端口加1,如果端口被占用,就再加1,直到找到空閑的端口為止。假如客戶端與服務(wù)端建立的命令連接是:CIP,12345,SIP,21 此時(shí)客戶端使用12345這個(gè)端口與ftp服務(wù)器的21號(hào)端口建立命令連接,那么在主動(dòng)連接時(shí),服務(wù)器就會(huì)使用12345+1=12346這個(gè)端口去主動(dòng)連接客戶端。

? ?使用主動(dòng)連接這種方式去連接客戶端,就必然會(huì)造成一種缺陷:客戶端是不向外提供服務(wù)的,所以對(duì)于像這種主動(dòng)來掃描它端口的行為就會(huì)被認(rèn)為是一種赤裸裸的挑釁,一種攻擊,因此很容易被客戶端防火墻拒絕掉,造成連接的失敗。

? ?2)被動(dòng)連接

? ?被動(dòng)連接是基于TCP的隨機(jī)端口,這種方式下,客戶端會(huì)發(fā)送給服務(wù)器兩個(gè)數(shù)字(如123,89),那么這時(shí)建立的數(shù)據(jù)連接端口就是123*256+89。

二、用戶認(rèn)證方式

1、匿名用戶

? ?在登錄FTP時(shí)使用默認(rèn)的用戶名,一般是ftp或anonymous

2、系統(tǒng)用戶?

? ?使用系統(tǒng)用戶登錄,在/etc/passwd中

3、虛擬用戶

? ?FTP虛擬用戶是FTP服務(wù)器的專有用戶,使用虛擬用戶登錄FTP,只能訪問FTP服務(wù)器提供的資源,大大增強(qiáng)了系統(tǒng)的安全。

? ?虛擬用戶的優(yōu)點(diǎn):

? ?1)獨(dú)立:即為虛擬的,那么不會(huì)受到系統(tǒng)其他用戶的影響

2)安全:如果vsftpd用本地用戶搭建的話,有可能由于限制目錄,權(quán)限等問題而引發(fā)安全為題

三、配置虛擬用戶,實(shí)現(xiàn)安全控制(vsftpd+pam_mysql+mysql)

1、使用ftp虛擬用戶案例

? ?某技術(shù)論壇需要做一個(gè)與用戶交流使用的FTP服務(wù)器,需實(shí)現(xiàn)以下2條功能:

? ?1)專用賬號(hào)(ftpuser1)允許用戶上傳文件、下載文件、刪除文件、創(chuàng)建目錄

? ?2)專用賬號(hào)(ftpuser2)則只允許用戶下載,不允許上傳

2、新建本地用戶"vuser"

? ?為什么需要本地用戶呢?因?yàn)樘摂M用戶在服務(wù)器系統(tǒng)上不存在,所以需要新建一個(gè)本地用戶,把所有的虛擬用戶映射為一個(gè)系統(tǒng)用戶,它們?cè)L問時(shí)的文件目錄就是此系統(tǒng)用戶的家目錄(默認(rèn)權(quán)限是700)

3、安裝相關(guān)軟件程序

1 [root@nmshuishui ~]# yum -y install vsftpd mysql-server mysql-devel pam_mysql

4、創(chuàng)建虛擬用戶賬號(hào)

? ?1)準(zhǔn)備數(shù)據(jù)庫及相關(guān)表

? ?(1)創(chuàng)建數(shù)據(jù)庫

1 [root@nmshuishui ~]# service mysqld start

? ?(2)授權(quán)管理數(shù)據(jù)庫的用戶及網(wǎng)段

? ?(3)為vsftpd數(shù)據(jù)庫創(chuàng)建用戶表

? ?2)添加測(cè)試的虛擬用戶

? ?為了密碼安全,在為虛擬用戶添加密碼時(shí)應(yīng)該使用PASSWORD函數(shù)加密后存儲(chǔ)

5、配置vsftpd

? ?1)建立基于pam認(rèn)證配置文件

1 [root@nmshuishui ~]# vim /etc/pam.d/vsftpd.mysql

? ?添加如下兩行

1 2 auth required?/lib64/security/pam_mysql.so user=vsftp?passwd=vsftpd host=172.16.251.93 db=vsftpd table=users?usercolumn=name passwdcolumn=password crypt=2 account required?/lib64/security/pam_mysql.so user=vsftp?passwd=vsftpd host=172.16.251.93 db=vsftpd table=users?usercolumn=name passwdcolumn=password crypt=2

? ?注意:由于mysql的安裝方式不同,pam_mysql.so基于unix sock連接mysql服務(wù)器時(shí)可能會(huì)出問題,此時(shí),建議授權(quán)一個(gè)可遠(yuǎn)程連接的mysql并訪問vsftpd數(shù)據(jù)庫的用戶。

? ?2)修改vsftpd的配置文件(/etc/vsftpd/vsftpd.conf),使其支持mysql認(rèn)證

? ?3)啟動(dòng)vsftpd服務(wù)進(jìn)行測(cè)試

為了以示區(qū)別,在公共目錄/var/ftp/pub目錄下,touch一個(gè)pub.txt,在/var/ftproot/目錄下touch一個(gè)ftproot.txt

? ?(1)匿名用戶登錄

? ?(2)虛擬用戶ftpuser1登錄

再看它所處的目錄,是在/var/ftproot/目錄下,有文件為證

(3)虛擬用戶ftpuser2登錄

? ?虛擬用戶ftpuser2登錄后與ftpuser1登錄所處的位置完全一樣,不再貼圖。

6、配置虛擬用戶的訪問權(quán)限

? ?vsftpd可以在配置文件目錄中為每個(gè)用戶提供單獨(dú)的配置文件以定義其ftp服務(wù)訪問權(quán)限,每個(gè)虛擬用戶的配置文件名同虛擬用戶的用戶名。配置文件目錄可以是任意未使用目錄,只需要在vsftpd.conf指定其路徑及名稱即可。

? ?1)配置vsftpd為虛擬用戶提供配置文件目錄

1 2 #vim /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/vusers??#添加此項(xiàng)

? ?2)創(chuàng)建虛擬用戶的配置文件目錄,并提供配置文件

1 2 3 4 5 6 [root@nmshuishui ~]# cd /etc/vsftpd/??????????????? #進(jìn)入vsftpd目錄 [root@nmshuishui vsftpd]# mkdir vusers????????????? #創(chuàng)建虛擬用戶的配置文件目錄 [root@nmshuishui vsftpd]# cd vusers???????????????? #進(jìn)入虛擬用戶的配置文件目錄 [root@nmshuishui vusers]# touch ftpuser1 ftpuser2?? #提供虛擬用戶的配置文件 [root@nmshuishui vusers]# ls ftpuser1? ftpuser2

? ?3)配置虛擬用戶的訪問權(quán)限

? ?(1)ftpuser1允許用戶上傳文件、下載文件、刪除文件、創(chuàng)建目錄

1 2 3 4 5 #vim ftpuser1 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022

? ? ? 在windows上使用FlashFXP測(cè)試

? ?(2)ftpuser2只允許用戶下載,不允許上傳

既然只允許ftpuser2下載,不允許上傳,那就不需要給它任何權(quán)限了,只要ftpuser1上傳的文件可讀,ftpuser2即可下載。

四、經(jīng)驗(yàn)分享時(shí)刻

1、如果沒有iptables規(guī)則的話,請(qǐng)關(guān)閉iptables,否則它會(huì)阻擋你vsftp服務(wù)的正常運(yùn)行

2、如果不使用selinux,也請(qǐng)關(guān)閉,如果不關(guān)閉會(huì)報(bào)下面這個(gè)錯(cuò)(使用FlashFXP連接FTP服務(wù)器)










本文轉(zhuǎn)自 nmshuishui 51CTO博客,原文鏈接:http://blog.51cto.com/nmshuishui/1390942,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的使用vsftp虚拟用户实现安全访问控制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。