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