在RHEL4配置ftp服務(wù)詳細(xì)的五個(gè)步驟
Ftp在每個(gè)操作系統(tǒng)上都是必不可少的,在RHEL4上也不例外,RHEL4配置ftp服務(wù)是一個(gè)繁瑣的過(guò)程,下面把這個(gè)過(guò)程拆分成五大步驟進(jìn)行講解:
一、RHEL4配置ftp服務(wù)的基本配置
RHEL4自帶的ftp服務(wù)是vsftp,即very secure ftp。ftp配置文件是/etc/vsftpd/vsftpd.conf
chkconfig --list vsftpd可以看到 說(shuō)明在run level 5時(shí),ftp服務(wù)是隨著系統(tǒng)自動(dòng)啟動(dòng)的
service vsftpd start/stop/restart可以啟動(dòng)、停止、重啟ftp服務(wù)。
配置文件中做如下設(shè)置
anonymous_enable=YES 允許匿名用戶登錄
anon_upload_enable=YES 允許匿名用戶上載文件,此項(xiàng)有效還有一個(gè)前提,即write_enable=YES
anon_mkdir_write_enable=YES 允許匿名用戶創(chuàng)建新目錄
anon_root=/ftpbase/public 指定匿名用戶的根目錄
anon_other_write_enable=YES 允許匿名用戶刪除文件
local_enable=YES 允許本地用戶登錄
chroot_local_user=YES 本地用戶限制在家目錄
local_umask=002 本地用戶新增文件的umask值,取002是因?yàn)橄旅嬉黾拥钠胀ㄓ脩舳紝儆趂tp這個(gè)組,為了使這些用戶可以完全控制ftpbase目錄下的文件
anon_umask=002 匿名用戶新增文件的umask值
在系統(tǒng)中添加用戶
useradd -g ftp -d /ftpbase -c "Ftp user 1" ftpuser1
useradd -g ftp -d /ftpbase -c "Ftp user 2" ftpuser2
設(shè)置ftpuser1和ftpuser2的密碼
passwd ftpuser1
passwd ftpuser1
建立目錄
mkdir /ftpbase
mkdir /ftpbase/public
chown -R ftp:ftp /ftpbase
chown -R ftp:ftp /ftpbase/public
service vsftpd restart重啟服務(wù),之后就可以連接RHEL4上的ftp服務(wù)器了
二、RHEL4配置ftp服務(wù)的權(quán)限相關(guān)的若干問(wèn)題
有了上面的設(shè)置之后其實(shí)還有權(quán)限相關(guān)的問(wèn)題未解決
這里需要說(shuō)一下的是對(duì)于目錄而言,x權(quán)限表示的是可進(jìn)入目錄。
默認(rèn)情況下匿名用戶登錄ftp后使用的系統(tǒng)用戶名是ftp。public目錄的權(quán)限設(shè)為755之后,匿名用戶登錄總是失敗,報(bào)“500 OOPS: vsftpd: refusing to run with writable anonymous root”,此信息指出匿名用戶對(duì)根目錄不能有寫(xiě)權(quán)限,也就是只要public目錄有u+w的權(quán)限,那么就都會(huì)報(bào)這個(gè)錯(cuò),因此public目錄的u權(quán)限中不可以有w。經(jīng)檢驗(yàn)使匿名用戶可以看到此目錄下的文件,并可下載,但不可刪除的最小權(quán)限是504。有點(diǎn)奇怪的是為什么不是500,即other用戶為什么也一定要有r權(quán)限才能確保匿名用戶可以看到public下的內(nèi)容。這里public目錄的權(quán)限設(shè)成575,以便于屬于ftp組的普通用戶可以控制此目錄。
public下再建子目錄upload,upload目錄權(quán)限設(shè)為775,使普通用戶和匿名用戶都有upload下的所有文件控制權(quán)限。
三、RHEL4配置ftp服務(wù)的PASV模式和防火墻
在dos控制臺(tái)下使用windows自帶的ftp命令連接RHEL4上的FTP沒(méi)有問(wèn)題,使用CuteFtp連接則連不上,后發(fā)現(xiàn)CuteFtp客戶端在全局設(shè)置里使用了PASV模式來(lái)連接ftp服務(wù)器,改為PORT模式就可以正常連上了。
為了使用PASV模式,在/etc/vsftpd/vsftpd.conf中新增pasv_enable=YES一行并重啟vsftpd,但是客戶端使用PASV模式依然連不上服務(wù)器。發(fā)現(xiàn)是RHEL4的防火墻問(wèn)題,PASV模式不僅需要客戶端去連接服務(wù)器的控制端口(默認(rèn)是21),還需要通過(guò)服務(wù)器返回的數(shù)據(jù)端口號(hào)去連接數(shù)據(jù)端口,這樣RHEL4的防火墻必須允許客戶端訪問(wèn)服務(wù)器提供的數(shù)據(jù)端口。
在/etc/vsftpd/vsftpd.conf中新增兩行,把數(shù)據(jù)連接端口限制在55000~56000
pasv_min_port=55000
pasv_max_port=56000
在/etc/sysconfig/iptables中新增一行,允許客戶端對(duì)55000~56000端口的訪問(wèn)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 55000:56000 -j ACCEP
重啟iptables和vsftpd服務(wù)即可
另外,windows自帶的ftp工具是不支持PASV模式的,連接時(shí)就沒(méi)有PASV選項(xiàng)可選。連接上之后使用ls等命令之后會(huì)有提示“200 PORT command successful. Consider using PASV.”,使用quote pasv命令服務(wù)器會(huì)返回“227 Entering Passive Mode (144,24,17,4,220,74)”的提示,但是事實(shí)上客戶端并有把連接改為PASV模式,使用ls命令后還是會(huì)返回提示的。
四、RHEL4配置ftp服務(wù)的禁止為ftp而專(zhuān)設(shè)的用戶從遠(yuǎn)程登錄操作系統(tǒng)
新增的用戶ftpuser1和ftpuser2是專(zhuān)為ftp登錄而設(shè)的,需要禁止遠(yuǎn)程使用telnet和ssh等登錄,在/etc/passwd文件中把
ftpuser1:x:501:50:FTP User 1 for test:/ftpbase:/bin/bash
ftpuser2:x:502:50:FTP User 2 for test:/ftpbase:/bin/bash
修改為
ftpuser1:x:501:50:FTP User 1 for test:/ftpbase:/sbin/nologin
ftpuser2:x:502:50:FTP User 2 for test:/ftpbase:/sbin/nologin
五、RHEL4配置ftp服務(wù)的中文顯示問(wèn)題
ftp正常使用后通過(guò)客戶端上傳了幾個(gè)中文文件,但是使用telnet工具或ssh工具登錄后中文字符顯示為亂碼,很多顯示為問(wèn)號(hào)“?”,本地登錄后顯示中文是沒(méi)有問(wèn)題的。
RHEL4默認(rèn)的編碼方式是UTF-8,安裝時(shí)使用中文為默認(rèn)語(yǔ)言則/etc/sysconfig/i18n中的第一行為L(zhǎng)ANG="zh_CN.UTF-8",把這一行改為L(zhǎng)ANG="zh_CN"后重啟機(jī)器之后即可。必須注意的是客戶端連接工具中的相關(guān)設(shè)置也必須更改,以SecureCRT為例,Session Option->Terminal->Appearance->Character必須設(shè)為default或者none,如果是UTF-8的話,那么還是會(huì)顯示亂碼。也有改成LANG="zh_CN.18030"的做法。
已上是RHEL4配置ftp服務(wù)的五大步驟,筆者對(duì)其進(jìn)行了詳細(xì)的講解,對(duì)于在RHEL4配置ftp服務(wù)中所遇到的問(wèn)題幾乎都已解決,希望可以幫助大家完成RHEL4配置ftp服務(wù)。
【編輯推薦】