CentOS FTP安装及配置
CentOS? FTP安裝及配置
LINUX下實(shí)現(xiàn)FTP服務(wù)的軟件很多,最常見的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默認(rèn)安裝的是vsftpd.
訪問(wèn)FTP服務(wù)器時(shí)需要經(jīng)過(guò)驗(yàn)證,只有經(jīng)過(guò)了FTP服務(wù)器的相關(guān)驗(yàn)證,用戶才能訪問(wèn)和傳輸文件.vsftpd提供了3種ftp登錄形式:
??? (1)anonymous(匿名帳號(hào))
使用anonymous是應(yīng)用廣泛的一種FTP服務(wù)器.如果用戶在FTP服務(wù)器上沒(méi)有帳號(hào),那么用戶可以以anonymous為用戶名,以自己的電子郵件地址為密碼進(jìn)行登錄.當(dāng)匿名用戶登錄FTP服務(wù)器后,其登錄目錄為匿名FTP服務(wù)器的根目錄/var/ftp.為了減輕FTP服務(wù)器的負(fù)載,一般情況下,應(yīng)關(guān)閉匿名帳號(hào)的上傳功能.
??? (2)real(真實(shí)帳號(hào))
real也稱為本地帳號(hào),就是以真實(shí)的用戶名和密碼進(jìn)行登錄,但前提條件是用戶在FTP服務(wù)器上擁有自己的帳號(hào).用真實(shí)帳號(hào)登錄后,其登錄的目錄為用戶自己的目錄,該目錄在系統(tǒng)建立帳號(hào)時(shí)系統(tǒng)就自動(dòng)創(chuàng)建.
??? (3)guest(虛擬帳號(hào))
如果用戶在FTP服務(wù)器上擁有帳號(hào),但此帳號(hào)只能用于文件傳輸服務(wù),那么該帳號(hào)就是guest,guest是真實(shí)帳號(hào)的一種形式,它們的不同之處在于,geust登錄FTP服務(wù)器后,不能訪問(wèn)除宿主目錄以外的內(nèi)容.
===================================================================
FTP的安裝?? (vsftp默認(rèn)安裝完之后,就允許匿名用戶和本地用戶登陸)
1、檢測(cè)是否安裝了FTP :[root@localhost ~]# rpm -q vsftpd
????? 如果安裝了會(huì)顯示版本信息:
????? [root@localhost ~]# vsftpd-2.0.5-16.el5_5.1
????? 否則顯示:[root@localhost ~]# package vsftpd is not installed
2、如果沒(méi)安裝FTP,運(yùn)行yum install vsftpd命令
具體的細(xì)節(jié)如下:(如果無(wú)法更新,你先配置能訪問(wèn)互聯(lián)網(wǎng),我有文檔叫 CentOS 在 VMware下,如何聯(lián)網(wǎng)到Internet的解決辦法 可以解決無(wú)法上網(wǎng)的問(wèn)題)
[root@localhost ~]# yum install vsftpd
[root@localhost ~]# touch /var/log/vsftpd.log??? ?#創(chuàng)建vsftp的日志文件
3、 不應(yīng)該給root用戶開啟 ftp的功能,因?yàn)閯e人就能用ftp一直測(cè)試你root的密碼 (默認(rèn)是禁止root用戶登錄的,此處只用于說(shuō)明,不需要操作) ?
?
4、執(zhí)行以下命令
#?setsebool -P ftp_home_dir=1??? (SELinux命令,Redhat從FC3開始,就使用了SELinux來(lái)增強(qiáng)安全。為防止出現(xiàn)下面 500 OOPS 的錯(cuò)誤)
???? -P 參數(shù)表示永久有效。
???? ftp連接的時(shí)候 出現(xiàn) "500 OOPS:cannot change directory:/" 錯(cuò)誤: 修改方法:? (會(huì)出現(xiàn)在虛擬用戶登錄的情況下)
???? setsebool -P ftp_home_dir on 或者 setsebool -P ftpd_disable_trans on
???? setsebool -P ftp_home_dir=1 或者 setsebool -P ftpd_disable_trans=1 效果同上
修改/etc/vsftpd/vsftpd.conf,在最后一行處添加local_root=/?????????? (本地用戶訪問(wèn)目錄)
5、重啟ftp進(jìn)程?? #service vsftpd restart
啟動(dòng)和關(guān)閉分別把restart改為start/stop即可.
如果是源碼安裝的,到安裝文件夾下找到start.sh和shutdown.sh文件,執(zhí)行它們就可以了.
注:每次修改過(guò)ftp相關(guān)的配置文件,都需要重啟ftp進(jìn)程來(lái)生效。ftp服務(wù)器就可以使用了。
最后為了防止服務(wù)器由于斷電、重啟等現(xiàn)象發(fā)生,導(dǎo)致ftp進(jìn)程在開機(jī)后未啟動(dòng),將其添加到開機(jī)啟動(dòng)文件中:
(1)找到/etc/rc.local文件
(2)打開該文件,在最后一行添加:service vsftpd start
(3)保存,退出
這樣就可以完成了一個(gè)簡(jiǎn)單的匿名FTP的搭建。你可以通過(guò)訪問(wèn)ftp://yourip來(lái)進(jìn)行,不過(guò)這個(gè)FTP沒(méi)有任何權(quán)限。
匿名用戶登錄,不需要輸入用戶名
windows doc 下登陸成功:
******************************************************************************************
******************************************************************************************
與vsftpd服務(wù)器有關(guān)的文件和文件夾
vsftpd服務(wù)器的配置文件的是:?/etc/vsftpd/vsftpd.conf
vsftpd服務(wù)器的根目錄,即FTP服務(wù)器的主目錄:/var/ftp/pub
如果你想修改服務(wù)器目錄的路徑,那么你只要修改/var/ftp到別處就行了
linux中vsftp修改默認(rèn)路徑:
******************************************************************************************
******************************************************************************************
虛擬賬戶
1.建立虛擬用戶口令庫(kù)文件
vi logins.txt //文件名隨意文件內(nèi)容:? (這些用戶在linux中不需要存在,虛擬的)
user1 passwd1 user2 passwd2 ..... .....2.生成vsftpd的認(rèn)證文件
db_load -T -t hash -f ./logins.txt /etc/vsftpd/ftp_login.db將用戶信息文件轉(zhuǎn)換為數(shù)據(jù)庫(kù)并用hash加密
說(shuō)明 : db_load : 觸發(fā)db4轉(zhuǎn)換程序,需要安裝db4_utils程序包
?????????? -T????????? : 允許應(yīng)用程序能夠?qū)⑽谋疚募D(zhuǎn)譯載入數(shù)據(jù)庫(kù)。? 由于我們之后是將虛擬用戶的信息(logins.txt)以文件方式存儲(chǔ)在這個(gè)文件里,為了讓vsftp應(yīng)用程序能夠通過(guò)文本來(lái)載入用戶數(shù)據(jù),必須要使用這個(gè)選項(xiàng)
?????????? -t????????? : 子選項(xiàng)-t,追加在-T選項(xiàng)后,用來(lái)指定轉(zhuǎn)譯載入的數(shù)據(jù)庫(kù)類型。 -t可以指定的數(shù)據(jù)類型有 Btree,Hash,Queue和Recon數(shù)據(jù)庫(kù)。
?????????? -f????????? : 參數(shù)后面接包含用戶名和密碼的文本文件,文件內(nèi)容是: 奇數(shù)行用戶名,偶數(shù)行密碼。
添加虛擬用戶口令數(shù)據(jù)庫(kù)的讀寫權(quán)限
chmod 600 /etc/vsftpd/ftp_login.db3.建立虛擬用戶所需的PAM配置文件
cd /etc/pam.d //進(jìn)入到這個(gè)目錄下 vi ftp.v //配置文件名 ftp.v 可以任取,例如 ftp.uv,ftpv,ftpvirtual配置文件內(nèi)容
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/ftp_login //指向的文件為第二步創(chuàng)建的vsftp認(rèn)證數(shù)據(jù)庫(kù)文件名 account required /lib/security/pam_userdb.so db=/etc/vsftpd/ftp_login4.建立虛擬用戶所需要訪問(wèn)的目錄,并設(shè)置相應(yīng)的權(quán)限
useradd virtual //用戶名任意chmod -R 755 /home/virtual //為要訪問(wèn)的目錄設(shè)置權(quán)限,如果沒(méi)有設(shè)置,虛擬用戶雖然能登陸,但看不到里面的文件,虛擬用戶為其它用戶范
5.設(shè)置vsftpd.conf 配置文件
pam_service _name=ftp_login guest_enable=YES guest_username=virtual //所有虛擬用戶登陸的時(shí)候,都映射為virtual用戶,訪問(wèn)該用戶的目錄之后可以再 window通過(guò)doc界面 或者? FLASHFXP.EXE 軟件,使用 user1,passwd1等虛擬用戶訪問(wèn) virtual用戶的目錄。
?------------------------------------------------------------------------------------------------------------------
對(duì)不同的虛擬用戶設(shè)置不同的權(quán)限??? (沒(méi)嘗試的欲望)
1) 設(shè)置主配置文件
在vsftpd.conf文件中添加用戶配置文件目錄設(shè)置
user_config_dir=/etc/vsftpd/vsftpd_user_conf
2)? 建立用戶配置文件目錄
# mkdir /etc/vsftpd/vsftpd_user_conf
3)? 為虛擬用戶建立單獨(dú)的配置文件
a.用戶配置文件名稱與用戶名相同
touch /etc/vsftpd/vsftpd_user_conf/zhangsan
touch /etc/vsftpd/vsftpd_user_conf/lisi
b.每個(gè)FTP虛擬用戶都可以獨(dú)立設(shè)置其權(quán)限
anon_world_readable_only=NO?? //如果是NO,說(shuō)明用戶還可以下載等權(quán)限
anon_upload_enable=YES????????? //是否可以上傳文件
anon_mkdir_write_enable=YES?? //是否可以創(chuàng)建文件
anon_other_write_enable=YES?? //是否可以修改文件包括刪除
******************************************************************************************
******************************************************************************************
本地帳號(hào)
vsftpd 使用默認(rèn)的vsftpd.conf 就能實(shí)現(xiàn) 本地賬號(hào)的登陸。
******************************************************************************************
******************************************************************************************
二、vsftpd的配置文件說(shuō)明:
vsftpd.ftpusers:位于/etc目錄下。它指定了哪些用戶賬戶不能訪問(wèn)FTP服務(wù)器,例如root等。vsftpd.user_list:位于/etc目錄下。該文件里的用戶賬戶在默認(rèn)情況下也不能訪問(wèn)FTP服務(wù)器,僅當(dāng)vsftpd .conf配置文件里啟用userlist_enable=NO選項(xiàng)時(shí)才允許訪問(wèn)。vsftpd.conf:位于/etc/vsftpd目錄下。來(lái)自定義用戶登錄控制、用戶權(quán)限控制、超時(shí)設(shè)置、服務(wù)器功能選項(xiàng)、服務(wù)器性能選項(xiàng)、服務(wù)器響應(yīng)消息等FTP服務(wù)器的配置。(1)用戶登錄控制anonymous_enable=YES,允許匿名用戶登錄。no_anon_password=YES,匿名用戶登錄時(shí)不需要輸入密碼。local_enable=YES,允許本地用戶登錄。deny_email_enable=YES,可以創(chuàng)建一個(gè)文件保存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。banned_email_file=/etc/vsftpd.banned_emails,當(dāng)啟用deny_email_enable功能時(shí),所需的電子郵件黑名單保存路徑(默認(rèn)為/etc/vsftpd.banned_emails)。(2)用戶權(quán)限控制write_enable=YES,開啟全局上傳權(quán)限。local_umask=022,本地用戶的上傳文件的umask設(shè)為022(系統(tǒng)默認(rèn)是077,一般都可以改為022)。anon_upload_enable=YES,允許匿名用戶具有上傳權(quán)限,很明顯,必須啟用write_enable=YES,才可以使用此項(xiàng)。同時(shí)我們還必須建立一個(gè)允許ftp用戶可以讀寫的目錄(前面說(shuō)過(guò),ftp是匿名用戶的映射用戶賬號(hào))。anon_mkdir_write_enable=YES,允許匿名用戶有創(chuàng)建目錄的權(quán)利。chown_uploads=YES,啟用此項(xiàng),匿名上傳文件的屬主用戶將改為別的用戶賬戶,注意,這里建議不要指定root賬號(hào)為匿名上傳文件的屬主用戶!chown_username=whoever,當(dāng)啟用chown_uploads=YES時(shí),所指定的屬主用戶賬號(hào),此處的whoever自然要用合適的用戶賬號(hào)來(lái)代替。chroot_list_enable=YES,可以用一個(gè)列表限定哪些本地用戶只能在自己目錄下活動(dòng),如果chroot_local_user=YES,那么這個(gè)列表里指定的用戶是不受限制的。chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的保存路徑(默認(rèn)是/etc/vsftpd.chroot_list)。nopriv_user=ftpsecure,指定一個(gè)安全用戶賬號(hào),讓FTP服務(wù)器用作完全隔離和沒(méi)有特權(quán)的獨(dú)立用戶。這是vsftpd系統(tǒng)推薦選項(xiàng)。async_abor_enable=YES,強(qiáng)烈建議不要啟用該選項(xiàng),否則將可能導(dǎo)致出錯(cuò)!ascii_upload_enable=YES;ascii_download_enable=YES,默認(rèn)情況下服務(wù)器會(huì)假裝接受ASCⅡ模式請(qǐng)求但實(shí)際上是忽略這樣的請(qǐng)求,啟用上述的兩個(gè)選項(xiàng)可以讓服務(wù)器真正實(shí)現(xiàn)ASCⅡ模式的傳輸。注意:啟用ascii_download_enable選項(xiàng)會(huì)讓惡意遠(yuǎn)程用戶們?cè)贏SCⅡ模式下用“SIZE/big/file”這樣的指令大量消耗FTP服務(wù)器的I/O資源。這些ASCⅡ模式的設(shè)置選項(xiàng)分成上傳和下載兩個(gè),這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳腳本等惡意文件而導(dǎo)致崩潰),而不會(huì)遭受拒絕服務(wù)攻擊的危險(xiǎn)。(3)用戶連接和超時(shí)選項(xiàng)idle_session_timeout=600,可以設(shè)定默認(rèn)的空閑超時(shí)時(shí)間,用戶超過(guò)這段時(shí)間不動(dòng)作將被服務(wù)器踢出。data_connection_timeout=120,設(shè)定默認(rèn)的數(shù)據(jù)連接超時(shí)時(shí)間。(4)服務(wù)器日志和歡迎信息dirmessage_enable=YES,允許為目錄配置顯示信息,顯示每個(gè)目錄下面的message_file文件的內(nèi)容。ftpd_banner=Welcome to blah FTP service,可以自定義FTP用戶登錄到服務(wù)器所看到的歡迎信息。xferlog_enable=YES,啟用記錄上傳/下載活動(dòng)日志功能。xferlog_file=/var/log/vsftpd.log,可以自定義日志文件的保存路徑和文件名,默認(rèn)是/var/log/vsftpd.log。anonymous_enable=YES 允許匿名登錄local_enable=YES 允許本地用戶登錄write_enable=YES 開放本地用戶寫權(quán)限local_umask=022 設(shè)置本地用戶生成文件的掩碼為022#anon_upload_enable=YES 此項(xiàng)設(shè)置允許匿名用戶上傳文件#anon_mkdir_write_enable=YES 開啟匿名用戶的寫和創(chuàng)建目錄的權(quán)限dirmessage_enable=YES 當(dāng)切換到目錄時(shí),顯示該目錄下的.message隱藏文件的內(nèi)容xferlog_enable=YES 激活上傳和下載日志connect_from_port_20=YES 啟用FTP數(shù)據(jù)端口的連接請(qǐng)求#chown_uploads=YES 是否具有上傳權(quán)限. 用戶由chown_username參數(shù)指定。#chown_username=whoever 指定擁有上傳文件權(quán)限的用戶。此參數(shù)與chown_uploads聯(lián)用。#xferlog_file=/var/log/vsftpd.logxferlog_std_format=YES 使用標(biāo)準(zhǔn)的ftpd xferlog日志格式#idle_session_timeout=600 此設(shè)置將在用戶會(huì)話空閑10分鐘后被中斷#data_connection_timeout=120 將在數(shù)據(jù)連接空閑2分鐘后被中斷#ascii_upload_enable=YES 啟用上傳的ASCII傳輸方式#ascii_download_enable=YES 啟用下載的ASCII傳輸方式#ftpd_banner=Welcome to blah FTP service 設(shè)置用戶連接服務(wù)器后顯示消息#deny_email_enable=NO 此參數(shù)默認(rèn)值為NO。當(dāng)值為YES時(shí),拒絕使用banned_email_file參數(shù)指定文件中所列出的e-mail地址用戶登錄。#banned_email_file=/etc/vsftpd.banned_emails 指定包含拒絕的e-mail地址的文件.#chroot_list_enable=YES 設(shè)置本地用戶登錄后不能切換到自家目錄以外的別的目錄#chroot_list_file=/etc/vsftpd.chroot_list#ls_recurse_enable=YESpam_service_name=vsftpd 設(shè)置PAM認(rèn)證服務(wù)的配置文件名稱,該文件存放在/etc/pam.d/userlist_enable=YES 此項(xiàng)配置/etc/vsftpd.user_list中指定的用戶也不能訪問(wèn)服務(wù)器,若添加userlist_deny=No,則僅僅/etc/vsftpd.user_list文件中的用戶可以訪問(wèn),其他用戶都不可以訪問(wèn)服務(wù)器。如過(guò)userlist_enable=NO,userlist_deny=YES,則指定使文件/etc/vsftpd.user_list中指定的用戶不可以訪問(wèn)服務(wù)器,其他本地用戶可以訪問(wèn)服務(wù)器。listen=YES 指明VSFTPD以獨(dú)立運(yùn)行方式啟動(dòng)tcp_wrappers=YES 在VSFTPD中使用TCP_Wrappers遠(yuǎn)程訪問(wèn)控制機(jī)制,默認(rèn)值為YES******************************************************************************************
******************************************************************************************
其它文獻(xiàn):
RedHat9-vsftp配置大全 http://doc.linuxpk.com/4231.html
轉(zhuǎn)載于:https://www.cnblogs.com/zhiqixue/archive/2012/12/04/2800803.html
總結(jié)
以上是生活随笔為你收集整理的CentOS FTP安装及配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java远程debug
- 下一篇: JQUERY学习第二天之制作横纵向导航菜