linux ftp

                                          FTP服務器的搭建linux


FTP服務器,是在互聯網上提供存儲空間的計算機,它們依照FTP協議提供服務。咱們能夠用windows和linux等平臺來搭建FTP服務器,在windows平臺下咱們能夠用Serv-U等軟件來搭建,在linux平臺下咱們能夠用vsftpd這項軟件來搭建,下面咱們就用linux平臺下面的vsftpd軟件來搭建一臺FTP軟件。數據庫


安裝軟件包:windows

[root@localhost ~]# rpm -ivh /mnt/Server/vsftpd-2.0.5-12.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]安全


而後咱們重啓一下服務:服務器

[root@localhost ~]# service vsftpd restart
關閉 vsftpd:                                                    [失敗]
爲 vsftpd 啓動 vsftpd:                                    [肯定]app


接着咱們用客戶端 ftp://192.169.*.* 訪問tcp

可是咱們須要配置文件的:ide

[root@localhost ~]# vi /etc/vsftpd/vsftpd.confui


配置文件中有:rest

1:anonymous_enable=YES  (禁用和開啓匿名用戶)
2:local_enable=YES  (禁用和開啓本地用戶)
3:write_enable=YES  (容許本地用戶上傳文件)
4:local_umask=022   (FTP上本地的文件權限,默認是077)
5:dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內容)
6:xferlog_enable=yes (激活上傳和下傳的日誌)
7:connect_form_port_20=yes (啓用FTP數據端口的數據鏈接)
8: xferlog_std_format=yes  (使用標準的日誌格式)
9:  listen=yes (獨立的VSFTPD服務器)
10:pam_service_name=vsftpd (驗證方式/指明認證文件vsftpd在var下)
11: tcp_wrappers=YES (啓用tcp_wrappers 支持)

  

1:基於匿名用戶ftp服務器的配置:

默認狀況下匿名用戶登陸ftp服務器只能下載不能上傳 咱們能夠經過修改配置文件來實現下列效果:


anon_upload_enable=YES          容許上傳  (把這一行前面的#號去掉


而後再任意位置添加:

anon_mkdir_write_enable=YES  容許上傳文件夾
anon_world_readable_only=NO 容許下載
anon_other_write_enable=YES   容許刪除

而後咱們咱們更改/var/ftp/pub目錄的權限chmod  o+w


這樣匿名用戶配置過程就ok了!


2:基於系統用戶的ftp服務器配置:

基於系統用戶咱們首先要創建用戶 而且登錄之後實現上傳,下載,和刪除的操做,其中在配置文件中有關聯有:

local_enable=YES   啓用和禁用系統用戶
write_enable=YES  系統用戶有沒有寫入和刪除的權限,YES爲能夠上傳、下載和刪除NO爲只能下載不能寫入和刪除。

若是咱們想把系統用戶禁錮在本身家目錄中 咱們須要在配置文件中加上一行:
 chroot_local_user=YES

 

 在咱們創建系統用戶用做登陸FTP服務器的時候咱們最好在創建用戶的時候讓用戶不具有登陸系統的權限,不然是一個嚴重的錯誤。咱們能夠在創建用戶的時候:

[root@localhost hello]# useradd    用戶名  -s /sbin/nologin


 默認狀況下新創建的系統用戶均可以做爲FTP的客戶端,但若是咱們不想讓新創建的一些用戶做爲FTP的客戶端的話咱們能夠把這些新創建的用戶加入到/etc/vsftp/ftpusers這個文件裏來,這樣加入到這裏面的用戶就不能夠做爲FTP的客戶端了。


還有一個方法就是利用user_list這個文件,

userlist_enable=YES  啓用user_list這個表(這個文件的位置默認在/etc/vsftp目錄下)

userlist_deny=YES   啓用拒絕這個文件所出來的用戶,

userlist_deny=NO   若是這裏爲NO則表示只有這個文件裏的系統用戶能登陸FTP服務器。(匿名用戶不能夠用了)

 


3:基於虛擬用戶FTP服務器的配置


系統用戶做爲FTP的客戶端會給系統安全帶來隱患,由於這些用戶不便能登陸FTP還能夠訪問系統資源,如何解決這個問題呢,建立虛擬的FTP用戶就能夠解決這個問題,要建立虛擬的FTP用戶咱們須要作下面的幾個步驟:

(1)生成用戶和口令列表文件
(2)生成vsftpd虛擬用戶數據庫文件
(3)創建虛擬用戶所需的PAM文件配置文件
(4)創建虛擬用戶所映射的系統用戶
(5)配置vsftpd.conf文件來支持虛擬用戶
(6)設置虛擬用戶的權限

首先咱們來第一步:
(1)生成用戶和口令的列表文件:

先使用命令:#vi /etc/vsftpd/login.txt

在裏面添加虛擬用戶的帳戶和密碼信息 奇數是用戶名 偶數是密碼


(2)生成vsftpd虛擬用戶數據庫文件

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db

(#說明:‘db_load  -T  -t  hash ’爲筆寫命令參數,
前面的login.txt指的是剛纔所建的文檔login.txt 後面的login.db是指生成的虛擬用戶存放在的位置
並取名叫作login.db)

在生成vsftpd虛擬用戶數據庫文件以前 咱們須要
用db_load命令生成數據庫文件可是咱們系統可能沒有安裝db_load命令,咱們能夠安裝db4-utils-4.3.29-9.fc6這個軟件包:


[root@localhost ~]# rpm -ivh /mnt/Server/db4-utils-4.3.29-9.fc6.i386.rpm


(3)創建虛擬用戶所需的PAM文件配置文件

咱們在/etc/pam.d目錄下創建一個文本文件叫niming.pam而後用vi進行編輯添加以下內容

auth   required   /lib/security/pam_userdb.so   db=/etc/vsftpd/login
account   required   /lib/security/pam_userdb.so  db=/etc/vsftpd/login


(#說明:上面的兩行中‘db=/etc/vsftpd/login.’意思是指定你剛纔生成的虛擬用戶認證庫文件的絕對路徑,注意‘login’後面沒有‘db’其餘的爲固定必寫內容)寫完這兩行以後就能夠保存並退出。


(4)創建虛擬用戶所映射的系統用戶


#useradd  -d  /home/ftp virtual

(說明:‘-d  /home/ftp’是指定匿名用戶的登錄目錄,必需要保證有這個目錄,若是沒有可使用mkdir命令新建一個,能夠在任何位置創建,可是在這裏必需要指定。‘virtual’是我創建的用戶並起名字爲virtual,能夠隨意起名字,但必定要有意義。這個用戶就是我在開篇中說道的虛擬用戶要使用的guest用戶)

 


(5)配置vsftpd.conf文件來支持虛擬用戶

打開文件:#vi  /etc/vsftpd/vsftpd.conf

打開以後找到以下行:

pam_service_name=vsftpd
更改成:
pam_service_name=niming.pam 

(說明:這樣更改是說明把pam_service_name執行第二步咱們創建的pam文件,是服務可以讀取這個文件)

anonymous_enable=yes
local_enable=YES
更改成:
anonymous_enable=no
local_enable=YES


(#說明:這樣更改的做用是關閉服務的匿名用戶登錄功能,而且容許非匿名用戶的登陸,就是虛擬用戶所須要的權限)

添加以下幾行:
chroot_local_user=YES
guest_enable=YES
guest_username=virtual


(#說明:'chroot_local_user=YES'這說明了把用戶鎖定到登錄目錄,guest_enable=yes'說明讓服務啓用虛擬用戶功能,'guest_username=virtual'是指定虛擬用戶使用的guest用戶,也就是咱們第三步創建的virtual用戶)


去掉
anon_upload_enable=YES(具備上傳的權限)
anon_mkdir_write_enable=YES (有創建和刪除目錄權限)

添加
anon_world_readable_only=NO(具備瀏覽和下載的權限)
anon_other_write_enable=YES(有文件更名和刪除文件權限)

 

給虛擬用戶權限 咱們須要在:

vi /etc/vsftpd/vsftpd.cof,在這個主配置文件內添加一個虛擬用戶的權限文件的路徑,添加user_config_dir=/etc/vsftpd_user_conf;


創建咱們剛剛虛擬用戶的權限文件夾,mkdir /etc/vsftpd_user_conf;


進入這個文件夾內cd /etc/vsftpd_user_conf再創建用戶的權限配置文件,文件名爲虛擬用戶名,如aa用戶則創建touch aa;


在用戶的權限文件內寫入用戶相應的權限,分別爲
anon_world_readable_only=NO 表示用戶能夠瀏覽FTP目錄和下載文件;
anon_upload_enable=YES 表示用戶能夠上傳;
anon_mkdir_write_enable=YES 表示用戶能夠創建和刪除目錄;
anon_other_write_enable=YES 表示用戶具備更改文件名和刪除文件的權限。

 


                  版權全部 !! 未經本人贊成,不得轉載!

                            2012年3月17號            秦(qin)都(du)            

相關文章
相關標籤/搜索