文中有不對或者有不清楚的地方,請你們告訴我,謝謝!
vsftp實例
在衆多網絡應用中,FTP(文件傳輸協議)有着很是重要的地位。它能夠用於文件的存儲和共享。與大多數Internet服務同樣,FTP也是一個客戶機/服務器系統。用戶經過一個支持FTP協議的客戶機程序,鏈接到主機上的FTP服務器程序。用戶經過客戶機程序向服務器程序發出命令,服務器程序執行用戶發出的命令,並將執行結果返回給客戶機。
如今咱們經過一個例子來看看FTP是如何搭建起來的。在此,咱們用著名的Vsftp來搭建FTP服務器。此FTP服務器主要用於公司內部文件的存儲和共享。
一.需求
1. 某公司有5個大部門,分別爲:人事行政部、財務部、技術部、市場部、生產部。
2. 各部門的文件夾只容許本部門員工有權訪問;各部門之間交流性質的文件放到公用文件夾中。
3. 每一個部門都有一個管理本部門文件夾的管理員帳號和一個只能上傳、下載和查看文件的普通用戶權限的帳號。
4. 公用文件夾中分爲存放工具的文件夾和存放文件的文件夾。
5. 用戶只能對本身的家目錄文件夾及其下面的目錄文件有操做權限,不容許切換到上級目錄,不容許匿名用戶訪問。
二.規劃
根據公司需求狀況,現作出以下規劃:
1. 在系統分區時單獨分一個Company的區,在該區下有如下幾個文件夾:HR、CaiWu、JiShu、ShiChang、ShengChan和Share。在Share下又有如下幾個文件夾:HR、CaiWu、JiShu、ShiChang、ShengChan和Tools。
2. 各部門對應的文件夾由各部門本身管理,Tools文件夾由管理員維護。
3. HR管理員帳號:hradmin;普通用戶帳號:hruser。
CaiWu管理員帳號:caiwuadmin;普通用戶帳號:caiwuuser。
JiShu管理員帳號:jishuadmin;普通用戶帳號:jishuuser。
ShiChang管理員帳號:shichangadmin;普通用戶帳號:shichanguser。
ShengChan管理員帳號:shengchanadmin;普通用戶帳號:shengchanuser。
Tools管理員帳號:admin。
4. 各部門管理員帳號有徹底控制本部門文件夾的權限以及下載Tools文件夾中工具的權限,普通用戶帳號只有上傳、下載和查看本部門文件夾的權限以及下載Tools文件夾中工具的權限。
5. 由於此FTP服務器主要用於公司內部使用,所以,FTP使用主動工做模式,在FTP服務器上將其餘不須要用到的端口屏蔽掉,增長服務器安全。
文件夾之間的關係請見下圖:
三.Vsftp RPM安裝和啓動
在系統中使用rpm –qa |grep vsftp來查看系統有沒有安裝該軟件,若是沒有安裝則掛載系統盤,找到vsftp軟件包,使用rpm –ivh vsftp*便可安裝。
使用RPM包安裝後,vsftp的配置文件默認在/etc/vsftpd/下。
使用service vsftpd start啓動vsftp。Vsftp默認容許匿名用戶訪問。
使用chkconfig --level 35 vsftpd .,可使vsftp隨系統一塊兒啓動。
在/etc/sysconfig/iptables中將20和21端口開放,而後用service iptables restart重啓iptables服務。
在/etc/selinux/config中將「SELINUX」項關閉,SELINUX=disabled。
四.新建用戶
使用useradd命令新建用戶,使用passwd命令添加密碼。
#useradd hradmin –r –m –d /Company/ –s /sbin/nologin
#useradd hruser –r –m –g hradmin –d /Company/ –s /sbin/nologin
#useradd caiwuadmin –r –m –d /Company/ –s /sbin/nologin
#useradd caiwuuser –r –m –g caiwuadmin –d /Company/ –s /sbin/nologin
#useradd jishuadmin –r –m –d /Company/ –s /sbin/nologin
#useradd jishuuser –r –m –g jishuadmin –d /Company/ –s /sbin/nologin
#useradd shichangadmin –r –m –d /Company/ –s /sbin/nologin
#useradd shichanguser –r –m –g shichangadmin –d /Company/ –s /sbin/nologin
#useradd shengchanadmin –r –m –d /Company/ –s /sbin/nologin
#useradd shengchanuser –r –m –g shangchanadmin –d /Company/ –s /sbin/nologin
#useradd admin –r –m –g root –d /Company/Share/Tools
五.新建目錄
在/Company中添加各部門的私密文件夾以及一個用於放置共享東西的共享文件夾。
#cd /Company/
#mkdir HR CaiWu JiShu ShiChang ShengChan Share
在/Company下的共享文件夾中,添加各部門的文件夾以及一個放置共享工具的文件夾,這些部門文件夾用於放置須要共享的文件。
#cd /Company/Share/
#mkdir HR CaiWu JiShu ShiChang ShengChan Tools
六.修改目錄屬性
修改/Company中的各部門文件夾的文件權限爲1770(實現效果:本部門管理員和普通用戶能夠進入,非本部門用戶禁止進入;本部門管理員上傳的文件,本部門的普通用戶只能下載和查看,不能修改;本部門普通用戶上傳的文件,本部門的管理員能夠查看,下載,刪除,重命名,可是不能修改裏面的內容;若是管理員想要修改普通用戶上傳的文件,能夠先下載該文件,而後在FTP上刪除該文件,在本機編輯好後再將該文件上傳),屬主和組爲各部門的管理員及管理員組。
#cd /Company/
#chmod –R 1770 HR CaiWu JiShu ShiChang ShengChan
#chown –R hradmin.hradmin HR/
#chown –R caiwuadmin.caiwuadmin CaiWu/
#chown –R jishuadmin.jishuadmin JiShu/
#chown –R shichangadmin.shichangadmin ShiChang/
#chown –R shengchanadmin.shengchanadmin ShengChan/
#chmod –R 1775 Share/
#chown admin.root Share/
#cd /Company/Share
#chown –R hradmin.hradmin HR/
#chown –R caiwuadmin.caiwuadmin CaiWu/
#chown –R jishuadmin.jishuadmin JiShu/
#chown –R shichangadmin.shichangadmin ShiChang/
#chown –R shengchanadmin.shengchanadmin ShengChan/
#chown –R admin.root Tools/
七.配置vsftp
Vsftp的配置文件在/etc/vsftpd/下。文件名爲vsftpd.conf。
#cd /etc/vsftpd/
#cp vsftpd.conf vsftpd.conf.bak
#vi vsftpd.conf
write_enable=YES #容許登入者有寫權限
anonymous_enable=NO #禁止匿名用戶訪問
local_enable=YES #容許本地用戶訪問
local_umask=022 #本地用戶新增檔案時的umask值
file_open_mode=0755 #本地用戶上傳檔案後的檔案權限
ftpd_banner=Welcome to BOB's FTP server. #定義歡迎話語的字符串
xferlog_enable=YES #啓用上傳/下載日誌記錄
xferlog_file=/var/log/vsftpd.log #日誌文件所在的路徑及名稱
xferlog_std_format=YES #將日誌文件寫成xferlog的標準格式
ascii_upload_enable=YES #啓用ASCII 模式上傳數據
ascii_download_enable=YES #啓用ASCII 模式下載數據
chroot_list_enable=YES #在chroot_list中列出的用戶不容許切換到家目錄的上級目錄
chroot_local_user=NO #
chroot_list_file=/etc/vsftpd/chroot_list #
userlist_enable=YES #在user_list中列出的用戶不能訪問FTP服務器,未列出的能夠訪問
userlist_deny=YES #
userlist_file=/etc/vsftpd/user_list #
tcp_wrappers=NO #不使用tcp wrapper來控制主機訪問
setproctitle_enable=YES #每一個與FTP服務器的鏈接,都以不一樣的進程表現出來
listen=YES #FTP服務器以standalone模式運行
port_enable=YES #FTP服務器啓用PORT模式
pasv_enable=NO #禁用FTP服務器的PASV模式
listen_port=21 #FTP服務器監聽21端口
connect_from_port_20=YES #指定FTP服務器使用20端口進行數據傳輸
ftp_data_port=20 #FTP服務器數據傳輸端口爲20
pam_service_name=vsftpd #使用PAM模塊控制,vsftpd文件在/etc/pam.d目錄下
idle_session_timeout=600 #600秒鐘不對FTP服務器進行任何操做,則斷開該FTP鏈接
data_connection_timeout=120 #創建FTP數據鏈接的超時時間爲120秒
max_clients=0 #不限制用戶的鏈接數量
max_per_ip=3 #每一個IP只能與FTP服務器同時創建3個鏈接
local_max_rate=512000 #本地用戶使用的最大傳輸速度
編輯chroot_list,一個用戶一行。此文件中列出的用戶不容許訪問其家目錄的上級目錄。
#vi /etc/vsftpd/chroot_list
hradmin
hruser
caiwuadmin
caiwuuser
jishuadmin
jishuuesr
shichangadmin
shichanguser
shengchanadmin
shengchanuser
編輯user_list,一個用戶一行。在此文件中列出的用戶不能訪問FTP服務器,未列出的能夠訪問。
#vi /etc/vsftpd/user_list
八.測試
使用flashFXP軟件做爲FTP客戶端。