CentOS 5.5下FTP安裝及配置

CentOS 5.5下FTP安裝及配置

1、FTP的安裝

一、檢測是否安裝了FTP :
[root@localhost ~]# rpm -q vsftpd
vsftpd-2.0.5-16.el5_5.1

不然顯示:[root@localhost ~]# package vsftpd is not installed
查看ftp運行狀態
service vsftpd status


二、若是沒安裝FTP,運行yum install vsftpd命令進行安裝
   
   若是沒法下載,須要設置好yum 以下
cd /etc/yum.repos.d
mv CentOS-Base.repo  CentOS-Base.repo.save
wget http://centos.ustc.edu.cn/CentOS-Base.repo

三、完成ftp安裝後,將 /etc/vsftpd/user_list文件和/etc/vsftpd/ftpusers文件中的root這一行註釋掉
   # root
四、執行 setsebool -P ftpd_disable_trans=1  修改SELinux 狀態

   [root@localhost vsftpd]# setsebool -P ftpd_disable_trans=1
   setsebool:  SELinux is disabled.

五、修改/etc/vsftpd/vsftpd.conf,在最後一行處添加local_root=/
六、重啓ftp進程   #service vsftpd restart

注:每次修改過ftp相關的配置文件,都須要重啓ftp進程來生效。

安裝完成
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
vsftpd 文件佈局
/etc/vsftpd/vsftpd.conf    主配置文件
/usr/sbin/vsftpd           主程序
/etc/rc.d/init.d/vsftpd    啓動腳本
/etc/pam.d/vsftpd          PAM認證文件
/etc/vsftpd.ftpusers       禁止使用vsftpd的用戶列表文件
/etc/vsftpd.user_list      禁止或容許使用vsftpd用戶列表文件
/var/ftp                   匿名用戶主目錄
/var/ftp/pub               匿名用戶下載目錄
/etc/logrotate.d/vsftpd.log  日誌文件


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


二.系統賬戶
1.創建Vsftpd服務的宿主用戶:
[root@localhost]# adduser -d /data guest -s /sbin/nologin
默認的Vsftpd的服務宿主用戶是root,可是這不符合安全性的須要。www.linuxidc.com這裏創建名字爲vsftpd的用戶,用他來做爲支持Vsftpd的
創建Vsftpd虛擬宿主用戶:
[root@linuxidc.com nowhere]# useradd virtusers -s /sbin/nologin

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


三 、vsftpd的配置

#anonymous_enable=YES
anonymous_enable=NO    設定不容許匿名訪問
local_enable=YES       設定本地用戶能夠訪問。注意:若是該項目設定爲NO那麼全部虛擬用戶將沒法訪問。
write_enable=YES       設定能夠進行寫操做。
local_umask=022        設定上傳後文件的權限掩碼。
anon_upload_enable=NO  禁止匿名用戶上傳。
anon_mkdir_write_enable=NO  禁止匿名用戶創建目錄。
dirmessage_enable=YES  設定開啓目錄標語功能。
xferlog_enable=YES     設定開啓日誌記錄功能。
connect_from_port_20=YES 設定端口20進行數據鏈接。
chown_uploads=NO        設定禁止上傳文件更改宿主。
chroot_local_user=YES   設定登錄後.只能夠訪問本身的屬主目錄.不可訪問上一層目錄文件
xferlog_file=/var/log/vsftpd.log 設定Vsftpd的服務日誌保存路徑。注意,該文件默認不存在。必需要手動touch出來,而且因爲這裏更改了Vsftpd的服務宿主
用戶爲手動創建的Vsftpd。必須注意給與該用戶對日誌的寫入權限,不然服務將啓動失敗。
xferlog_std_format=YES  設定日誌使用標準的記錄格式
idle_session_timeout=600 設定空閒鏈接超時時間,這裏使用默認。
data_connection_timeout=120 設定單次最大連續傳輸時間,這裏使用默認
nopriv_user=vsftpd       設定支撐Vsftpd服務的宿主用戶爲手動創建的Vsftpd用戶。注意,一旦作出更改宿主用戶後,必須注意一塊兒與該服務相關的讀寫文件的讀寫賦權問題
                         好比日誌文件就必須給與該用戶寫入權限等。

async_abor_enable=YES     設定支持異步傳輸功能。
ascii_upload_enable=YES
ascii_download_enable=YES   設定支持ASCII模式的上傳和下載功能。
ftpd_banner=Welcome to blah FTP service ^_^  設定Vsftpd的登錄標語。
chroot_list_enable=NO    禁止用戶登出本身的FTP主目錄。
ls_recurse_enable=NO    禁止用戶登錄FTP後使用"ls -R"的命令。該命令會對服務器性能形成巨大開銷。若是該項被容許,那麼擋多用戶同時使用該命
                        令時將會對該服務器形成威脅。
listen=YES              設定該Vsftpd服務工做在StandAlone模式下。
pam_service_name=vsftpd  設定PAM服務下Vsftpd的驗證配置文件名。
userlist_enable=YES      設定userlist_file中的用戶將不得使用FTP。
tcp_wrappers=YES         服務器使用tcp_wrappers做爲主機的訪問控制方式。

如下這些是關於Vsftpd虛擬用戶支持的重要配置項目。默認Vsftpd.conf中不包含這些設定項目,須要本身手動添加配置。

guest_enable=YES          設定啓用虛擬用戶功能。
guest_username=virtusers 指定虛擬用戶的宿主用戶。
virtual_use_local_privs=YES 設定虛擬用戶的權限符合他們的宿主用戶。
user_config_dir=/etc/vsftpd/vconf  設定虛擬用戶我的Vsftp的配置文件存放路徑。也就是說,這個被指定的目錄裏,將存放每一個Vsftp虛擬用戶個性的配置文件,
一個須要注意的地方就是這些配置文件名必須和虛擬用戶名相同。保存退出。
max_clients= 99     服務器的最大併發數
max_per_ip=5        用戶最大線程數
anon_max_rate=1000000   設置本底帳號最大傳輸率爲1Mbps

禁止某些IP段得主機匿名訪問服務器

tcp_wrappers=YES   
編輯 /etc/hosts.allow

增長
vsftpd:192.168.110.11:DENY

查看ftp日誌

xferlog_enable=YES  上傳和下載日誌文件記錄  /var/log/vsftpd.log
xferlog_std_format=YES  傳輸日誌文件將以標準xferlog的格式書寫  /var/log/xferlog
xferlog_file= /var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log

經過本底數據文件實現虛擬用戶訪問
安裝db4-utils
yum install db4-utils

建立本地映射用戶,修改本底映射用戶目錄權限

useradd -d /data/ftp/temp -s /sbin/nologin game
chmod o=rwx /data/ftp/temp

修改 /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=zqgamexw

生成虛擬用戶文件
/etc/vsftpd/vsftpuser.txt
test001    虛擬user
123456     虛擬passwd

生成虛擬用戶數據文件
db_load -T -t hash -f /etc/vsftpd/vsftpuser.txt /etc/vsftpd/vsftpuser.db
修改生成的用戶數據文件權限
 chmod 600 /etc/vsftpd/vsftpuser.db
修改PAM 認證文件 /etc/pam.d/vsftpd 註銷原有內容後添加
auth        required     /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpuser
account     required     /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpuse

 

創建Vsftpd的日誌文件,並更該屬主爲Vsftpd的服務宿主用戶:
[root@localhost]# touch /var/log/vsftpd.log
[root@localhost]# chown vsftpd.vsftpd /var/log/vsftpd.log

創建虛擬用戶配置文件存放路徑:
[root@localhost]# mkdir /etc/vsftpd/vconf/

製做虛擬用戶數據庫文件


先創建虛擬用戶名單文件:
[root@localhost]# touch /etc/vsftpd/virtusers
創建了一個虛擬用戶名單文件,這個文件就是來記錄vsftpd虛擬用戶的用戶名和口令的數據文件,
這裏給它命名爲virtusers。爲了不文件的混亂,我把這個名單文件就放置在/etc/vsftpd/下。

編輯虛擬用戶名單文件:
[root@localhost]# vi /etc/vsftpd/virtusers
----------------------------
ftp001
123456
ftp002
123456
ftp003
123456
----------------------------
編輯這個虛擬用戶名單文件,在其中加入用戶的用戶名和口令信息。格式很簡單:「一行用戶名,一行口令」。3.生成虛擬用

戶數據文件:
[root@localhost]# db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

4.察看生成的虛擬用戶數據文件
[root@localhost]# ll /etc/vsftpd/virtusers.db
-rw-r--r-- 1 root root 12288 Sep 16 03:51 /etc/vsftpd/virtusers.db
須要特別注意的是,之後再要添加虛擬用戶的時候,只須要按照「一行用戶名,一行口令」的格式將新用戶名和口令添加進虛

擬用戶名單文件。可是光這樣作還不夠,不會生效的哦!還要再執行一遍「 db_load -T -t hash -f 虛擬用戶名單文件虛擬

用戶數據庫文件.db 」的命令使其生效才能夠!

設定PAM驗證文件,並指定虛擬用戶數據庫文件進行讀取
1.察看原來的Vsftp的PAM驗證配置文件:
[root@localhost]# cat /etc/pam.d/vsftpd
----------------------------------------------------------------
#%PAM-1.0
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-auth
account    include      system-auth
session    include      system-auth
session    required     pam_loginuid.so
----------------------------------------------------------------

2.在編輯前作好備份:
[root@localhost]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup
3.編輯Vsftpd的PAM驗證配置文件
[root@localhost]# vi /etc/pam.d/vsftpd
----------------------------------------------------------------
#%PAM-1.0
auth    required      /lib/security/pam_userdb.so     db=/etc/vsftpd/virtusers
account required      /lib/security/pam_userdb.so     db=/etc/vsftpd/virtusers
以上兩條是手動添加的,上面的所有加#註釋了.內容是對虛擬用戶的安全和賬戶權限進行驗證。

!!!!!!!這裏有個要注意說明的:若是系統是64位系統在這裏的全部lib後面要加入64!!!!!!
!!!!!!!以下這樣才能夠:

#%PAM-1.0
auth    required      /lib64/security/pam_userdb.so     db=/etc/vsftpd/virtusers
account required      /lib64/security/pam_userdb.so     db=/etc/vsftpd/virtusers


五.虛擬用戶的配置
1.規劃好虛擬用戶的主路徑:
[root@localhost]# mkdir /opt/vsftp/
2.創建測試用戶的FTP用戶目錄:
[root@localhost]# mkdir /opt/vsftp/ftp001 /opt/vsftp/ftp002 /opt/vsftp/ftp003

3.創建虛擬用戶配置文件模版:

[root@localhost]# cp /etc/vsftpd/vsftpd.conf.backup /etc/vsftpd/vconf/vconf.tMP4.定製虛擬用戶模版配置文件:
[root@localhost]# vi /etc/vsftpd/vconf/vconf.tmp
--------------------------------
local_root=/opt/vsftp/virtuser
virtuser 這個就是之後要指定虛擬的具體主路徑。
anonymous_enable=NO
設定不容許匿名用戶訪問。
write_enable=YES
設定容許寫操做。
local_umask=022
設定上傳文件權限掩碼。
anon_upload_enable=NO
設定不容許匿名用戶上傳。
anon_mkdir_write_enable=NO
設定不容許匿名用戶創建目錄。
idle_session_timeout=600   (根據用戶要求.可選)
設定空閒鏈接超時時間。
data_connection_timeout=120
設定單次連續傳輸最大時間。
max_clients=10   (根據用戶要求.可選)
設定併發客戶端訪問個數。
max_per_ip=5     (根據用戶要求.可選)
設定單個客戶端的最大線程數,這個配置主要來照顧Flashget、迅雷等多線程下載軟件。
local_max_rate=50000   (根據用戶要求.可選)
設定該用戶的最大傳輸速率,單位b/s。
pam_service_name=vsftpd
chroot_local_user=YES
--------------------------------
這裏將原vsftpd.conf配置文件通過簡化後保存做爲虛擬用戶配置文件的模版。這裏將並不須要指定太多的配置內容,主要的

框架和限制交由Vsftpd的主配置文件vsftpd.conf來定義,即虛擬用戶配置文件當中沒有提到的配置項目將參考主配置文件中

的設定。而在這裏做爲虛擬用戶的配置文件模版只須要留一些和用戶流量控制,訪問方式控制的配置項目就能夠了。這裏的關

鍵項是local_root這個配置,用來指定這個虛擬用戶的FTP主路徑。5.更改虛擬用戶的主目錄的屬主爲虛擬宿主用戶:
[root@localhost]# chown -R virtusers.virtusers /opt/vsftp/

6.檢查權限:
[root@localhost]# ll /opt/vsftp/
total 24
drwxr-xr-x 2 overlord overlord 4096 Sep 16 05:14 ftp001
drwxr-xr-x 2 overlord overlord 4096 Sep 16 05:00 ftp002
drwxr-xr-x 2 overlord overlord 4096 Sep 16 05:00 ftp003


.給測試用戶定製:
1.從虛擬用戶模版配置文件複製:
[root@localhost]# cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/ftp001
2.針對具體用戶進行定製:
[root@localhost]# vi /etc/vsftpd/vconf/ftp001
---------------------------------

local_root=/opt/vsftp/ftp001             (FTP用戶ftp001 的登錄目錄文件)
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=300
data_connection_timeout=90
max_clients=1
max_per_ip=1
local_max_rate=25000
pam_service_name=vsftpd
chroot_local_user=YES
---------------------------------
七.啓動服務:
[root@localhost]# service vsftpd start
Starting vsftpd for vsftpd:                                [ OK ]
八.測試:
1.在虛擬用戶目錄中預先放入文件:
[root@localhost]# touch /opt/vsftp/ftp001/test.txt

2.從其餘機器做爲客戶端登錄FTP:
能夠IE或FTP客戶端軟直接訪問

ie裏輸入 ftp://127.0.0.1 (服務器IP)

彈出對話框後.輸入FTP用戶名和密碼
---------------------------------------------


注意:
在/etc/vsftpd/vsftpd.conf中,local_enable的選項必須打開爲Yes,使得虛擬用戶的訪問成爲可能,不然會出現如下現象:
----------------------------------
[root@localhost]# ftp
ftp> open 192.168.1.22
Connected to 192.168.1.22.
500 OOPS: vsftpd: both local and anonymous access disabled!
----------------------------------
緣由:虛擬用戶再豐富,其實也是基於它們的宿主用戶virtusers的,若是virtusers這個虛擬用戶的宿主被限制住了,那麼虛

擬用戶也將受到限制。

補充:
1.要查看服務器自帶的防火牆有無擋住FTP 21端口 致使不能訪問
2.查看 SELinux 禁用沒有.要禁用
3.500 OOPS:錯誤 有多是你的vsftpd.con配置文件中有不能被實別的命令,還有一種多是命令的YES 或 NO 後面有空格。
4.要仔細查看各個用到的文件夾權限,及用戶屬主權限等


1 如何新加FTP用戶

打開密碼文件里加入(一行是用戶.一是密碼.依次類推)
#vi /etc/vsftpd/virtusers
加入用戶後 保存退出

#db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db   (而後生成新的虛擬用數據文件)
#cp /etc/vsftpd/vconf/vconf.tmp d               (新建d用戶,用虛擬用戶模板vconf.tmp文件生成d虛擬用戶文件)
#vi /etc/vsftpd/vconf/d                         (打開D虛擬用戶文件.在第一行最後加入該用戶對應的FTP目錄)
#mkdir /opt/vsftp/WWW                          (新建WWW目錄爲d FTP用戶登錄目錄)
#service vsftpd restart
-------------------------------------------------------
2 如何修改FTP 用戶登錄密碼

打開密碼文件里加入(第一行是用戶.第二是密碼.依次類推,只要改對應用戶下面的密碼便可)
#vi /etc/vsftpd/virtusers   
#db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db   (而後生成新的虛擬用數據文件)

#service vsftpd restarthtml


原文連接:http://www.blogjava.net/Alpha/archive/2012/02/02/369246.html
java

相關文章
相關標籤/搜索