1、FTP伺服器的簡介
關於ftp的介紹,大家也一定不陌生了。我就直接把百度百科上的介紹拿過來,和大家一起溫習一下概念。
FTP 是File Transfer Protocol(檔案傳輸通訊協定)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制檔案的雙向傳輸。同時,它也是一個應用程式(Application)。基於不同的作業系統有不同的FTP應用程式,而所有這些應用程式都遵守同一種協議以傳輸檔案。在FTP的使用當中,使用者經常遇到兩個概念:"下載"(Download)和"上傳"(Upload)。"下載"檔案就是從遠程主機拷貝檔案至自己的電腦上;"上傳"檔案就是將檔案從自己的電腦中拷貝至遠程主機上。用Internet語言來說,使用者可通過客戶機程式向(從)遠程主機上傳(下載)檔案。
2、LINUX下FTP伺服器的搭建
一般在各種linux的發行版中,預設帶有的ftp軟體是vsftp,從各個linux發行版對vsftp的認可可以看出,vsftp應該是一款不錯的ftp軟體。
(1)檢查vsftpd軟體是否安裝
使用如下命令可以檢測出是否安裝了vsftpd軟體,rpm -qa |grep vsftpd ,例如在我的centos 5.6中顯示的結果如下:
如果沒有安裝的話,可以下載安裝,也可以使用軟體源進行安裝。這裡不再贅述。
(2)vsftpd軟體的使用
使用vsftpd軟體,主要包括如下幾個命令:
啟動ftp:service vsftpd start
停止ftp:service vsftpd stop
重啟ftp:service vsftpd restart
或者使用帶有路徑的命令:
(3)vsftpd的配置
ftp的設定檔主要有三個,在centos5.6中位於/etc/vsftpd/目錄下,分別是:
ftpusers 該檔案用來指定那些使用者不能訪問ftp伺服器。
user_list 該檔案用來指示的預設賬戶在預設情況下也不能訪問ftp
vsftpd.conf vsftpd的主設定檔
(4)下面我們使用vi編輯vsftpd.conf檔案
使用者登入控制:
anonymous_enable=YES,允許匿名使用者登入。
no_anon_password=YES,匿名使用者登入時不需要輸入密碼。
local_enable=YES,允許本機使用者登入。
deny_email_enable=YES,可以建立一個檔案儲存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。
banned_email_file=/etc/vsftpd/banned_emails,儲存電子郵件黑名單的目錄(預設)
使用者權限控制:
write_enable=YES,開啟全域上傳
local_umask=022,本地檔案上傳的umask設定為022,系統預設。
anon_upload_enable=YES,允許匿名使用者上傳,當然要在write_enable=YES的情況下。同時必須建立一個允許ftp使用者讀寫的目錄。
anon_mkdir_write_enable=YES,允許匿名用花建立目錄
chown_uploads=YES,匿名使用者上傳的檔案屬主轉換為別的使用者,一般建議為root。
chown_username=whoever,改此處的whoever為要轉換的屬主,建議root
chroot_list_enable=YES,用一個列表來限定哪些使用者只能在自己目錄下活動。
chroot_list_enable=/etc/vsftpd/chroot_list,指定使用者列表檔案
nopriv_user=ftpsecure,指定一個安全賬戶,讓ftp完全隔離和沒有特權的賬戶
其他的建議不要配置。
使用者串連和逾時設定:
idle_session_timeout=600,預設的逾時時間
data_connection_timeout=120,設定預設資料連線的逾時時間
(4)伺服器日誌和歡迎資訊
dirmessage_enable=YES,允許為配置目錄顯示資訊
ftpd_banner=Welcome to blah FTP service. ftp的歡迎資訊
xferlog_enable=YES 開啟日誌記錄功能
xferlog_file=/var/log/xferlog 日誌記錄檔案的位置
我們可以更改以上的各個設定,然後重啟ftp服務就可以實現對ftp的配置了。
**********************************************************************************************************************************************************
**********************************************************************************************************************************************************
*************FTP檔案說明*********************本FTP伺服器軟體包為vsftpd-2.3.4-1.fc14.i686.rpmFTP用戶端軟體包為ftp-0.17-51.fc12.i686.rpm1、vsftpd不再由xinetd控制;2、FTP使用port 21發起串連,使用por ...
*************FTP檔案說明*********************
本FTP伺服器軟體包為vsftpd-2.3.4-1.fc14.i686.rpm
FTP用戶端軟體包為ftp-0.17-51.fc12.i686.rpm
1、vsftpd不再由xinetd控制;
2、FTP使用port 21發起串連,使用port 20進行資料轉送;
3、vsftpd設定檔: /etc/vsftpd/vsftpd.conf #主設定檔
/etc/vsftpd/vsftpd/ftpusers #拒絕該檔案中列出的使用者登入FTP
/etc/vsftpd/vsftpd/user_list #預設同ftpusers相同
4、查看/etc/passwd檔案,可以看到FTP預設的共用目錄路徑為/var/ftp;
5、FTP記錄檔:/var/log/xferlog
6、相關軟體包:tcp_wrappers、ip_conntrack_ftp、ip_nat_ftp
(這3個軟體包是教材上列出的,我沒有測試過其用途,有興趣的朋友可以研究一下)
7、啟動和停止vsftp指令:
#service vsftpd start //啟動vsftpd服務
#service vsftpd stop //停止vsftpd服務
#service vsftpd restart //重啟vsftpd服務,每次更改FTP相關配置後,一定要用該命令重啟vsftpd服務
#chkconfig vsftpd on //使vsftpd服務開機啟動。(可選操作)
8、注意SElinux的安全性質:
一般SElinux是被強行啟用的,對許多服務都預設有許可權控制,如果在我們對FTP伺服器測試時碰到一些莫名奇妙的錯誤時,可以關閉SElinux,
也可以僅關閉SElinux對FTP服務的保護設定;
#sestatus //查看當前系統SElinux是否開啟
如果開啟了,則開啟/etc/selinux/config檔案,編輯:將SELINUX=enforcing改成SELINUX=disabled,並把SELINUXTYPE=targeted注釋掉!
或者#setsebool -P ftpd_disable_trans 1 //僅關閉SELinux對FTP的保護
*************FTP許可權需求**********************
a.允許匿名使用者登入;
b.允許匿名使用者上傳和下載資料(拒絕覆蓋已有資料);
c.允許本機使用者登入;(注意SElinux的影響)
d.FTP共用目錄/var/ftp/
e.拒絕匿名使用者建立新檔案或者檔案夾;
f.使登入使用者可以下載共用資料
************************************************
1、查詢本機是否已經安裝ftp-server和ftp-client;
#rpm -qa vsftpd
#rpm -qa ftp
2、如果沒有安裝,則下載相應軟體包,或者yum線上安裝;
#yum install vsftpd //ftp伺服器軟體包
#yum install ftp //ftp用戶端軟體包
3、編輯/etc/vsftpd/vsftpd.conf
anonymous_enable=YES //允許匿名使用者登入
local_enable=YES //允許本機使用者登入
write_enable=YES //允許登入到FTP的使用者執行寫操作
local_umask=022
anon_umask=077 //匿名使用者上傳的檔案許可權都會進行umask的計算,變成-rw- --- ---
anon_upload_enable=YES //允許匿名使用者上傳檔案
xferlog_file=/var/log/vsftpd.log //FTP伺服器記錄檔預設路徑
ftpd_banner=***********Welcome to My FTP Server***********
4、開啟vsftpd服務
#service vsftpd start
5、在FTP共用目錄下建立檔案夾
#mkdir /var/ftp/pub //用於存放共用檔案資料
#mkdir /var/ftp/incoming //用於存放匿名使用者上傳的資料
#ls -l /var/ftp/
drwxr-xr-x. 2 root root 4096 5月 8 14:13 incoming
drwxr-xr-x. 2 root root 4096 5月 8 14:15 pub
//新建立的檔案夾預設歸屬於root使用者和使用者組,需要更正!
#chown ftp.ftp /var/ftp/incoming //改為所屬使用者為ftp,使用者組為ftp組
#chown ftp.ftp /var/ftp/pub
#ls -l /var/ftp
drwxr-xr-x. 2 ftp ftp 4096 5月 8 14:13 incoming
drwxr-xr-x. 2 ftp ftp 4096 5月 8 14:15 pub
6、登入到FTP伺服器
#ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 ************Welcome to My FTP Server*************.
Name (127.0.0.1:root): ftp //這裡的登入使用者名稱輸入ftp或者anonymous或者本地有效賬戶名
331 Please specify the password.
Password: //匿名登入時,直接斷行符號
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
還有一種方法也可以登入到FTP伺服器:開啟Firefox瀏覽器,輸入ftp://127.0.0.1,即可匿名登入;
或者ftp://ligang@127.0.0.1,使用本地賬戶登入,斷行符號後會彈出輸入密碼的對話方塊!
7、允許登入使用者下載/var/ftp/pub中的檔案資料
使用管理員帳號:
#chmod +r /var/ftp/pub/* //修改pub目錄下檔案的讀許可權
本文出自 “一切皆有口可能!” 部落格,請務必保留此出處http://287416363.blog.51cto.com/2189452/629848